66 lines
2.3 KiB
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');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|