瀏覽代碼

门诊超时定时修复

刘远航 4 年之前
父節點
當前提交
0c772ffadd
共有 1 個文件被更改,包括 25 次插入20 次删除
  1. 25 20
      app/Console/Commands/overTimeOrder.php

+ 25 - 20
app/Console/Commands/overTimeOrder.php

xqd xqd xqd xqd
@@ -81,21 +81,30 @@ class overTimeOrder extends Command
     public function AppointReminder($id=''){
         if (!empty($id)){
 //            order_trace(['类型'=>'订单超时提醒','订单id'=>$id,'记录时间'=>date('Ymd His',time())],'info');
-
-            $Order = Order::with(['orderPatient','docter','user'])->where(['id'=>$id,'order_status'=>3,'payment_status'=>2])->first();
+            $Order = Order::with(['orderPatient','docter','user'])->where(['id'=>$id])->first();
             $send = send_wechatSubscription_message('appoint_reminder',[$Order['docter']['openid'], "pages/index/index",$Order['order_sn'],$Order['user']['nickname'],$Order['user']['phone'],$Order['created_at']]);
         }else{
-            $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
-            $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
-            $Order = Order::with(['orderPatient','docter','user'])->where(['order_status'=>3,'payment_status'=>2,'product_type'=>3])->whereBetween('receiving_time',[$beginToday,$endToday])->get();
+            $menNewIds = [];
+//            $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
+//            $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
+            $Order = Order::with(['orderPatient','docter','user'])->where(['order_status'=>7,'payment_status'=>2])->orWhere(function ($query){
+                $query->where(['order_status'=>3,'payment_status'=>2]);
+            })->get();
             foreach ($Order as $k=>$v){
-                if ($v['docter']){
-                    if ($v['docter']['openid']){
-//                        order_trace(['类型'=>'订单超时提醒','订单id'=>$v['id'],'记录时间'=>date('Ymd His',time())],'info');
-                        $send = send_wechatSubscription_message('appoint_reminder',[$v['docter']['openid'], "pages/index/index",$v['order_sn'],$v['user']['nickname'],$v['user']['phone'],$v['created_at']]);
+                if($v['product_type']==3 || $v['product_type']==4 || $v['product_type']==5){
+                    if (time() > $v['appoint_end_time']){
+                        if ($v['docter']['openid']){
+                            $menNewIds[$k] = $v['id'];
+                            $send = send_wechatSubscription_message('appoint_reminder',[$v['docter']['openid'], "pages/index/index",$v['order_sn'],$v['user']['nickname'],$v['user']['phone'],$v['created_at']]);
+                        }
                     }
                 }
             }
+            if ($menNewIds){
+                // 操作门诊订单为已超时
+                order_trace(['订单类型'=>'预约订单','订单id组'=>$menNewIds,'超时时间'=>date('Ymd His',time())],'info');
+                Order::whereIn('id',$menNewIds)->update(['order_status'=>6]);
+            }
         }
     }
 
@@ -171,9 +180,6 @@ class overTimeOrder extends Command
      * DateTime: 2021/3/4 17:44
      */
     public function timeOrdersComplete(){
-//        $user = $this->user;
-//        $docter_id = $user['id'];
-//        $patient = new PatientController();
         $config_chat =  SystemConfig::get('docter_config','chat_complete_time');
         $config_phone =  SystemConfig::get('docter_config','phone_complete_time');
         // 换算为秒
@@ -193,7 +199,6 @@ class overTimeOrder extends Command
                     $this->ReceivingReminderOK($v['id']);
                 }
             }
-
         }
         if ($catNewIds){
             // 操作图文和电话订单为已完成
@@ -208,17 +213,17 @@ class overTimeOrder extends Command
      * DateTime: 2021/3/4 17:48
      */
     public function clinicOverTimeOrders(){
-        $inOrder = Order::with('orderPatient')->where(['order_status'=>7,'payment_status'=>2])->get();
+        $inOrder = Order::with('orderPatient')->where(['order_status'=>7,'payment_status'=>2])->orWhere(function ($query){
+            $query->where(['order_status'=>3,'payment_status'=>2]);
+        })->get();
         $menNewIds = [];
-
         foreach ($inOrder as $k=>$v){
             if($v['product_type']==3 || $v['product_type']==4 || $v['product_type']==5){
-//                if ((time()-$v['receiving_time'])>=(1*60*60*24)){
-                $menNewIds[$k] = $v['id'];
-                $this->AppointReminder($v['id']);
-//                }
+                if (time() > $v['appoint_end_time']){
+                    $menNewIds[$k] = $v['id'];
+                    $this->AppointReminder($v['id']);
+                }
             }
-
         }
         if ($menNewIds){
             // 操作门诊订单为已超时