فهرست منبع

Merge branch 'develop' of ssh://git.9026.com:2212/swdz-WangHaijun/BaoMa

Mike 4 سال پیش
والد
کامیت
e58e2b120c
1فایلهای تغییر یافته به همراه29 افزوده شده و 20 حذف شده
  1. 29 20
      app/Console/Commands/overTimeOrder.php

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

xqd xqd xqd xqd xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Console\Commands;
 
 use App\Http\Controllers\Api\V2\PatientController;
+use App\Models\Docter;
 use App\Models\DocterOrganization;
 use App\Models\Order;
 use App\Models\SystemConfig;
@@ -81,21 +82,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 +181,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');
         // 换算为秒
@@ -184,16 +191,17 @@ class overTimeOrder extends Command
         foreach ($inOrder as $k=>$v){
             if ($v['product_type']==1){
                 if ((time()-$v['receiving_time'])>=$config_chat){
+                    Docter::where('id', '=', $v['docter_id'])->increment('service_persons');
                     $catNewIds[$k] = $v['id'];
                     $this->ReceivingReminderOK($v['id']);
                 }
             }else if($v['product_type']==2){
                 if ((time()-$v['receiving_time'])>=$config_phone){
+                    Docter::where('id', '=', $v['docter_id'])->increment('service_persons');
                     $catNewIds[$k] = $v['id'];
                     $this->ReceivingReminderOK($v['id']);
                 }
             }
-
         }
         if ($catNewIds){
             // 操作图文和电话订单为已完成
@@ -208,17 +216,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){
             // 操作门诊订单为已超时
@@ -320,6 +328,7 @@ class overTimeOrder extends Command
         }elseif ($Order['product_type']==3){
             $type = '门诊预约';
         }
+
         order_trace(['订单类型'=>$type,'订单id'=>$Order,'操作时间'=>date('Ymd His',time())],'info');
 
         if ($Order){