when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){ $query->where('id',(int)$params['id']); }) ->when(isset($params['agent_id']) && $params['agent_id'] !== '',function($query) use ($params){ $query->where('agent_id',(int)$params['agent_id']); }) ->when(isset($params['mer_id']) && $params['mer_id'] !== '',function($query) use ($params){ $query->where('mer_id',(int)$params['mer_id']); }) ->when(isset($params['status']) && $params['status'] !== '',function($query) use ($params){ $query->where('status',$params['status']); }) ->when(isset($params['order_id']) && $params['order_id'] !== '',function($query) use ($params){ $query->where('order_id',$params['order_id']); }) ->when(isset($params['is_bind']) && $params['is_bind'] !== '',function($query) use ($params){ // 判断:缴费记录是否绑定商户 $query->where('mer_id', $params['is_bind'] == 'bind' ? '>' : '<=' , 0); }) ->with([ 'agent' => function($query){ $query->field('id,uid,contact_name,contact_phone') ->with([ 'user' => function($query){ $query->field('uid,nickname,avatar,phone')->bind(['nickname','avatar','phone']); } ]); }, 'mer' => function($query){ $query->field('mer_id,mer_name,mer_avatar'); }, 'store_order' => function($query){ $query->field('order_id,order_sn,pay_price,group_order_id,status'); }, ]) ->order('create_time DESC,id DESC'); } }