when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){ $query->where('id', (int)$params['id']); }) ->when(isset($params['uid']) && $params['uid'] !== '',function($query) use ($params){ $query->where('uid', (int)$params['uid']); }) ->when(isset($params['write_off_mer_id']) && $params['write_off_mer_id'] !== '',function($query) use ($params){ $query->where('write_off_mer_id', (int)$params['write_off_mer_id']); }) ->with([ 'user' => function($query){ $query->field('uid,nickname,avatar'); }, 'coupon' => function($query){ $query->field('coupon_id,type,send_type'); }, 'couponUser' => function($query){ $query->field('coupon_user_id,write_code,brand_id')->with([ 'brand' => function($query){ $query->field('id,title')->bind(['title']); } ]); } ]) ->order('create_time DESC,id DESC'); } }