结束订单排序问题
This commit is contained in:
parent
3b8681034a
commit
8277a6530f
@ -444,9 +444,13 @@ class OrderInquiry extends Model
|
|||||||
* @param int|null $per_page
|
* @param int|null $per_page
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function getInquiryEndPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array
|
public static function getInquiryEndPage(array $params, int $page = null, ?int $per_page = 10): array
|
||||||
{
|
{
|
||||||
$query = self::select(["user_id","family_id"])
|
// 参考sql
|
||||||
|
// SELECT t1.* FROM test t1 INNER JOIN (
|
||||||
|
// SELECT user_id, MAX(create_at) AS max_create_at FROM test GROUP BY user_id
|
||||||
|
// ) t2 ON t1.user_id = t2.user_id AND t1.create_at = t2.max_create_at;
|
||||||
|
$subQuery = self::select(["user_id","family_id",Db::raw('max(reception_time) as at')])
|
||||||
->whereNotIn('user_id', function ($query) use ($params){
|
->whereNotIn('user_id', function ($query) use ($params){
|
||||||
$query->select('user_id')
|
$query->select('user_id')
|
||||||
->from('order_inquiry')
|
->from('order_inquiry')
|
||||||
@ -454,12 +458,42 @@ class OrderInquiry extends Model
|
|||||||
->where($params)
|
->where($params)
|
||||||
->groupBy(["user_id"]);
|
->groupBy(["user_id"]);
|
||||||
})
|
})
|
||||||
->whereIn('inquiry_status', [5,6])
|
|
||||||
->where($params)
|
->where($params)
|
||||||
->orderBy('complete_time')
|
|
||||||
->groupBy(["user_id","family_id"]);
|
->groupBy(["user_id","family_id"]);
|
||||||
|
|
||||||
|
|
||||||
|
$query = self:: joinSub($subQuery, 'sub_query', function($join) {
|
||||||
|
$join->on('order_inquiry.user_id', '=', 'sub_query.user_id')
|
||||||
|
->on('order_inquiry.family_id', '=', 'sub_query.family_id')
|
||||||
|
->on('order_inquiry.reception_time', '=', 'sub_query.at');
|
||||||
|
})
|
||||||
|
->whereIn('inquiry_status', [5,6])
|
||||||
|
->where($params)
|
||||||
|
->orderBy("sub_query.at",'desc');
|
||||||
|
|
||||||
|
|
||||||
|
$fields = [
|
||||||
|
'order_inquiry.order_inquiry_id',
|
||||||
|
'order_inquiry.user_id',
|
||||||
|
'order_inquiry.patient_id',
|
||||||
|
'order_inquiry.doctor_id',
|
||||||
|
'order_inquiry.family_id',
|
||||||
|
'order_inquiry.inquiry_type',
|
||||||
|
'order_inquiry.inquiry_mode',
|
||||||
|
'order_inquiry.inquiry_status',
|
||||||
|
'order_inquiry.inquiry_no',
|
||||||
|
'order_inquiry.reception_time',
|
||||||
|
'order_inquiry.complete_time',
|
||||||
|
'order_inquiry.finish_time',
|
||||||
|
'order_inquiry.cancel_time',
|
||||||
|
'order_inquiry.cancel_reason',
|
||||||
|
'order_inquiry.cancel_remarks',
|
||||||
|
'order_inquiry.patient_name',
|
||||||
|
'order_inquiry.patient_sex',
|
||||||
|
'order_inquiry.patient_age',
|
||||||
|
'order_inquiry.created_at',
|
||||||
|
];
|
||||||
|
|
||||||
$result = $query->paginate($per_page, $fields, "page", $page);
|
$result = $query->paginate($per_page, $fields, "page", $page);
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
|
|||||||
@ -837,34 +837,9 @@ class InquiryService extends BaseService
|
|||||||
|
|
||||||
$params = array();
|
$params = array();
|
||||||
$params['doctor_id'] = $user_info['client_user_id'];
|
$params['doctor_id'] = $user_info['client_user_id'];
|
||||||
|
$result = OrderInquiry::getInquiryEndPage($params, $page, $per_page);
|
||||||
|
|
||||||
$inquiry_status_params = ["5", "6"];
|
if (empty($result['data'])) {
|
||||||
|
|
||||||
$fields = [
|
|
||||||
'order_inquiry_id',
|
|
||||||
'user_id',
|
|
||||||
'patient_id',
|
|
||||||
'doctor_id',
|
|
||||||
'family_id',
|
|
||||||
'inquiry_type',
|
|
||||||
'inquiry_mode',
|
|
||||||
'inquiry_status',
|
|
||||||
'inquiry_no',
|
|
||||||
'reception_time',
|
|
||||||
'complete_time',
|
|
||||||
'finish_time',
|
|
||||||
'cancel_time',
|
|
||||||
'cancel_reason',
|
|
||||||
'cancel_remarks',
|
|
||||||
'patient_name',
|
|
||||||
'patient_sex',
|
|
||||||
'patient_age',
|
|
||||||
'created_at',
|
|
||||||
];
|
|
||||||
|
|
||||||
$result = OrderInquiry::getInquiryEndPage($params, $fields, $page, $per_page);
|
|
||||||
|
|
||||||
if (!empty($result['data'])) {
|
|
||||||
foreach ($result['data'] as &$item) {
|
foreach ($result['data'] as &$item) {
|
||||||
$params = array();
|
$params = array();
|
||||||
$params['doctor_id'] = $user_info['client_user_id'];
|
$params['doctor_id'] = $user_info['client_user_id'];
|
||||||
@ -872,6 +847,29 @@ class InquiryService extends BaseService
|
|||||||
$params['family_id'] = $item['family_id'];
|
$params['family_id'] = $item['family_id'];
|
||||||
|
|
||||||
$inquiry_status_params = [5,6];
|
$inquiry_status_params = [5,6];
|
||||||
|
|
||||||
|
$fields = [
|
||||||
|
'order_inquiry_id',
|
||||||
|
'user_id',
|
||||||
|
'patient_id',
|
||||||
|
'doctor_id',
|
||||||
|
'family_id',
|
||||||
|
'inquiry_type',
|
||||||
|
'inquiry_mode',
|
||||||
|
'inquiry_status',
|
||||||
|
'inquiry_no',
|
||||||
|
'reception_time',
|
||||||
|
'complete_time',
|
||||||
|
'finish_time',
|
||||||
|
'cancel_time',
|
||||||
|
'cancel_reason',
|
||||||
|
'cancel_remarks',
|
||||||
|
'patient_name',
|
||||||
|
'patient_sex',
|
||||||
|
'patient_age',
|
||||||
|
'created_at',
|
||||||
|
];
|
||||||
|
|
||||||
$order_inquiry = OrderInquiry::getInquiryStatusLastOne($params,$inquiry_status_params,$fields);
|
$order_inquiry = OrderInquiry::getInquiryStatusLastOne($params,$inquiry_status_params,$fields);
|
||||||
|
|
||||||
unset($item['user_id']);
|
unset($item['user_id']);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user