['user_id', 'coupon_id', 'coupon_target', 'voucher_status', 'voucher_count', 'amount', 'amount_require', 'begin_use', 'discount_ratio', 'event_name', 'expire_time', 'max_deductible_price', 'mold_type', 'server_category_name', 'property_activity_id'], '%like%' => ['code','event_name'], ]; } public function queryWhere() { $where = []; if (isset($this->params['mobile']) && !empty($this->params['mobile'])) { $user_ids = User::where([['mobile|real_name', 'like','%' .$this->params['mobile'] . '%']])->column('id')??[0]; $where[] = ['user_id','in' ,$user_ids]; } return $where; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2025/05/28 11:42 */ public function lists(): array { return UserCoupon::with(['user'])->where($this->searchWhere)->where($this->queryWhere()) ->field(['*']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2025/05/28 11:42 */ public function count(): int { return UserCoupon::where($this->searchWhere)->where($this->queryWhere())->count(); } }