瀏覽代碼

Merge branch 'master' of http://git.9026.com/swdz-WangHaijun/BaoMa

wanghaijun 4 年之前
父節點
當前提交
9907e9c3d9

+ 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){

+ 1 - 1
app/Console/Commands/packExpiredCheck.php

xqd
@@ -69,7 +69,7 @@ class packExpiredCheck extends Command
             $expire_type_arr = [1,2,3];
             $expire_type_new = 4;
         }
-        $orderPack = OrderPack::with(['user'])->whereIn('expire_type', $expire_type_arr)->where('end_time', '<', $end_time)->get()->toArray();
+        $orderPack = OrderPack::with(['user'])->join('orders', 'order_packs.order_id', '=', 'orders.id')->whereIn('order_packs.expire_type', $expire_type_arr)->where('order_packs.end_time', '<', $end_time)->where('orders.payment_status', 2)->get()->toArray();
         if (!empty($orderPack)) {
             foreach ($orderPack as $k => $v) {
                 //更新订单服务包过期类型

+ 1 - 2
app/Http/Controllers/Api/V1/CommonController.php

xqd
@@ -334,9 +334,8 @@ class CommonController extends Controller
     {
         $systemConfig = SystemConfig::whereIn('key', ['phone_notice', 'chat_notice', 'clinic_notice', 'vaccine_notice', 'nurse_notice', 'poster', 'phone', 'protocol', 'recharge_notice', 'service_protocol', 'login_protocol', 'recharge_protocol'])->pluck('value', 'key')->toArray();
         $banners = Banner::get();
-        $notices_arr = [];
         $notices = SystemConfig::where('key','notices')->value('value');
-        array_push($notices_arr,$notices);
+        $notices_arr = explode(',',$notices);
         $data = [
             'banners' => $banners,
             'notices' => $notices_arr,

+ 1 - 1
app/Http/Controllers/Api/V1/PatientController.php

xqd
@@ -108,7 +108,7 @@ class PatientController extends AuthController
         $data = [];
         $data['patient'] = Patient::where('id', $req['patient_id'])->where('user_id', $user['id'])->first()->append(['order_num', 'pack_docter_num', 'perfectd_degree']);
 
-        $data['orders']['cases'] = Order::with(['docter.office', 'docter.qualification', 'organization.docter'])->where('user_id', $user['id'])->where('patient_id', $req['patient_id'])->whereIn('order_status', [2,3])->where('product_type', '<', 6)->orderBy('id', 'desc')->get();
+        $data['orders']['cases'] = Order::with(['docter.office', 'docter.qualification', 'organization.docter'])->where('user_id', $user['id'])->where('patient_id', $req['patient_id'])->whereIn('order_status', [4])->where('product_type', '<', 6)->orderBy('id', 'desc')->get();
 
         //只输出未过期的服务包
         $orderIds = OrderPack::where('user_id', $user['id'])->where('end_time', '<=', time())->pluck('order_id')->toArray();