when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) { $query->where('uid', $where['uid']); })->when(isset($where['mer_id']) && $where['mer_id'] !== '', function ($query) use ($where) { $query->where('mer_id', $where['mer_id']); })->when(isset($where['service_id']) && $where['service_id'] !== '', function ($query) use ($where) { $query->where('service_id', $where['service_id']); })->when(isset($where['keyword']) && $where['keyword'] !== '', function ($query) use ($where) { $uid = app()->make(UserRepository::class)->search(['keyword' => $where['keyword']])->limit(30)->column('uid'); $uid = array_merge($uid, app()->make(ExtendRepository::class)->search([ 'keyword' => $where['keyword'], 'type' => ExtendRepository::TYPE_SERVICE_USER_MARK, 'mer_id' => $where['mer_id'] ?? null ])->column('link_id'), [0]); $query->whereIn('uid', array_unique($uid)); }); } }