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['mer_id']) && $params['mer_id'] !== '' && (int)$params['mer_id'] > 0,function($query) use ($params){ $query->where('mer_id', (int)$params['mer_id']); }) ->when(isset($params['staff_id']) && $params['staff_id'] !== '' && (int)$params['staff_id'] > 0,function($query) use ($params){ $query->where('staff_id', (int)$params['staff_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([ 'mer' => function($query){ $query->field(['mer_id','mer_name'])->bind(['mer_name']); }, 'vipInfo' => function($query){ $query->field(['group_data_id','value','value as svip_name'])->withAttr('svip_name',function($val){ $value = json_decode($val,TRUE); return $value['svip_name'] ?? ''; })->bind(['svip_name']); }, 'user' => function($query){ $query->field('uid,nickname,avatar'); }, 'staff' => function($query){ $query->field('service_id,nickname as staff_nickname,avatar as staff_avatar')->bind(['staff_nickname','staff_avatar']); }, ]) ->order('create_time DESC,id DESC'); } }