when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){ $query->where('id', (int)$params['id']); }) ->when(isset($params['batch_title']) && $params['batch_title'] !== '',function($query) use ($params){ $query->where('batch_title', $params['batch_title']); }) ->when(isset($params['batch_unique']) && $params['batch_unique'] !== '',function($query) use ($params){ $query->where('batch_unique', $params['batch_unique']); }) ->when(isset($params['exchange_code']) && $params['exchange_code'] !== '',function($query) use ($params){ $query->where('exchange_code', $params['exchange_code']); }) ->when(isset($params['status']) && $params['status'] !== '',function($query) use ($params){ $query->where('status', (int)$params['status']); }) ->when(isset($params['activate_uid']) && $params['activate_uid'] !== '',function($query) use ($params){ $query->where('activate_uid', (int)$params['activate_uid']); }) ->when(isset($params['use_user_id']) && $params['use_user_id'] !== '',function($query) use ($params){ $query->where('use_user_id', (int)$params['use_user_id']); }) ->when(isset($params['group_data_id']) && $params['group_data_id'] !== '',function($query) use ($params){ $query->where('group_data_id', (int)$params['group_data_id']); }) ->with([ 'vipInfo' => function($query){ $query->field(['group_data_id','value','value as svip_name','value as svip_price','value as svip_info'])->withAttr('svip_name',function($val){ $value = json_decode($val,TRUE); return $value['svip_name'] ?? ''; })->withAttr('svip_price',function($val){ $value = json_decode($val,TRUE); return $value['price'] ?? ''; })->withAttr('svip_info',function($val){ $value = json_decode($val,TRUE); return $value ?? []; })->bind(['svip_name','svip_price','svip_info']); }, 'activateUser' => function($query){ $query->field('uid,nickname,avatar'); }, 'useUser' => function($query){ $query->field('uid,nickname,avatar'); }, ]) ->order('create_time DESC,id DESC') ->append(['qr_code_text']); } }