new-admin-api/app/common/dao/system/merchant/MerchantQuotaDao.php

66 lines
2.3 KiB
PHP

<?php
namespace app\common\dao\system\merchant;
use app\common\dao\BaseDao;
use app\common\model\system\merchant\MerchantQuota;
use crmeb\services\VicWordService;
class MerchantQuotaDao extends BaseDao{
protected function getModel(): string{
return MerchantQuota::class;
}
/**
* Common: 公共搜索模型
* Author: wu-hui
* Time: 2024/06/04 14:44
* @param array $params
* @param string|array $field
* @return MerchantQuota
*/
public function searchList(array $params, $field = '*'){
return (new MerchantQuota())
->alias('mqr')
->join('merchant m','m.mer_id = mqr.mer_id','right')
->field($field)
->where('is_del', 0)
->where('status', 1)
->when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){
$query->where('mqr.id',(int)$params['id']);
})
->when(isset($params['mer_id']) && $params['mer_id'] !== '',function($query) use ($params){
$query->where('mqr.mer_id',(int)$params['mer_id']);
})
->when(isset($params['merchant_type']) && $params['merchant_type'] !== '',function($query) use ($params){
$query->where('m.merchant_type',(int)$params['merchant_type']);
})
->when(isset($params['keyword']) && $params['keyword'] !== '',function($query) use ($params){
if (is_numeric($params['keyword'])) {
$query->whereLike('mer_name|mer_keyword|mer_phone', "%{$params['keyword']}%");
} else {
$word = app()->make(VicWordService::class)->getWord($params['keyword']);
$query->where(function ($query) use ($word, $params) {
foreach ($word as $item) {
if(mb_strlen($item) > 1) $query->whereOr('mer_name', 'LIKE', "%$item%");
}
$query->whereOr('mer_name|mer_keyword', 'LIKE', "%{$params['keyword']}%");
});
}
})
->with([
'merchant' => function($query){
$query->field('mer_id,mer_name,mer_avatar');
},
])
->order('m.sort DESC,m.create_time DESC');
}
}