['mw.sn', 'mw.real_name', 'mw.account', 'mw.password', 'mw.mobile', 'mw.sex', 'mw.channel', 'mw.is_disable', 'mw.is_new_user', 'mw.create_time', 'mw.update_time'], ]; } public function queryWhere(){ $where = []; // 用户昵称 if (isset($this->params['nickname']) && !empty($this->params['nickname'])) { $where[] = ['mw.nickname|mw.worker_number', 'like','%' .$this->params['nickname'] . '%']; } if (isset($this->params['worker_exp_type']) && !empty($this->params['worker_exp_type'])) { $where[] = ['mwr.maintain_exp_type', '=', $this->params['worker_exp_type']]; } return $where; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2024/07/10 18:17 */ public function lists(): array { return MasterWorker::alias('mw') ->join('master_worker_register mwr', 'mwr.master_worker_id = mw.id') ->leftJoin('service_work sw','sw.master_worker_id = mw.id and sw.service_status !=4') ->where($this->searchWhere) ->where($this->queryWhere()) // ->field(['mw.id', 'mw.sn', 'mw.avatar', 'mw.real_avatar','mw.worker_number', 'mw.real_name', 'mw.nickname', 'mw.account', 'mw.password', 'mw.mobile', 'mw.sex', 'mw.channel', 'mw.is_disable', 'mw.login_ip', 'mw.login_time', 'mw.is_new_user', 'mw.estimate_money', 'mw.user_money', 'mw.earnest_money', 'mw.exp']) ->field([ 'mw.*', 'mwr.maintain_exp_type', 'mwr.other_exp_type', 'SUM(CASE WHEN sw.work_status NOT IN (7,8) THEN 1 ELSE 0 END) work_total']) ->limit($this->limitOffset, $this->limitLength) ->order(['mw.id' => 'desc']) ->group(['sw.master_worker_id']) ->select() ->toArray(); } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2024/07/10 18:17 */ public function count(): int { return MasterWorker::alias('mw') ->join('master_worker_register mwr', 'mwr.master_worker_id = mw.id') ->leftJoin('service_work sw','sw.master_worker_id = mw.id and sw.service_status !=4') ->where($this->searchWhere)->where($this->queryWhere()) ->group(['sw.master_worker_id'])->count(); } }