fang 1 год назад
Родитель
Сommit
c679f60152

+ 6 - 0
app/adminapi/controller/works/ServiceWorkController.php

@@ -23,6 +23,7 @@ use app\adminapi\logic\master_worker\MasterWorkerLogic;
 use app\adminapi\logic\works\ServiceWorkLogic;
 use app\adminapi\validate\works\ServiceWorkValidate;
 use app\api\logic\ServiceOrderLogic;
+use app\common\logic\ThirdOrderLogic;
 
 
 /**
@@ -140,8 +141,13 @@ class ServiceWorkController extends BaseAdminController
         $result = ServiceWorkLogic::cancel($params);
         if (true === $result) {
             UserEquityLogic::cancelServiceWorkRestoredNumber($params);
+
+            //判断是否是美团订单,如果是,则取消美团订单
+            ThirdOrderLogic::merchantcancelorder($params['id']);
+
             return $this->success('取消工单成功!', [], 1, 1);
         }
+
         return $this->fail(ServiceWorkLogic::getError());
     }
     public function settlementMaster()

+ 1 - 1
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -692,7 +692,7 @@ class ServiceWorkLogic extends BaseLogic
 
             //工单如果存在费用情况,不允许取消
             $paid_amount = RechargeOrder::where('work_id', $params['id'])->where('pay_status', 1)->value('paid_amount');
-            if($paid_amount > 0){
+            if($paid_amount > 0 and $serviceWorkInfo['third_type'] == 0){
                 // 4=已上门,5=服务中,6=待结算, 即工程师已上门服务过
                 throw new Exception('工单存在费用情况,不允许取消,请走退费流程');
             }

+ 23 - 19
app/common/logic/ThirdOrderLogic.php

@@ -531,25 +531,29 @@ class ThirdOrderLogic extends BaseLogic
      */
     public static function merchantcancelorder($data)
     {
-        $url = 'https://api-open-cater.meituan.com/ddzh/yuding/lifereserve/merchantcancelorder';
-        $opBizCode = !empty($data['request_msg'])?json_decode($data['request_msg'],true)['opBizCode']:'';
-        $accessToken = $opBizCode == 'AE7MKOJAV67338LIC3UD0K5TGIO' ? self::shop_token2['accessToken'] : self::shop_token1['accessToken'];
-        $data = [
-            'timestamp'=>time(),
-            'appAuthToken'=>$accessToken,
-            'charset'=>'utf-8',
-            'version'=>'2',
-            'developerId'=>self::developerId,
-            'businessId'=>58,
-            'biz'=>json_encode([
-                'orderId'=>$data['orderId'],
-                'cancelReason'=>'取消预定',
-                "type"=>2,
-            ],JSON_UNESCAPED_UNICODE)
-        ];
-        $sign_data = self::get_sign(self::assessKey, $data);
-        $data['sign'] = $sign_data;
-        return http_request($url,http_build_query($data));
+        $third_order = ThirdOrders::where('word_id',$data['id'])->findOrEmpty();
+        if(!$third_order->isEmpty() && !empty($third_order['request_msg'])){
+            $url = 'https://api-open-cater.meituan.com/ddzh/yuding/lifereserve/merchantcancelorder';
+            $opBizCode = !empty($third_order['request_msg'])?json_decode($third_order['request_msg'],true)['opBizCode']:'';
+            $accessToken = $opBizCode == 'AE7MKOJAV67338LIC3UD0K5TGIO' ? self::shop_token2['accessToken'] : self::shop_token1['accessToken'];
+            $data = [
+                'timestamp'=>time(),
+                'appAuthToken'=>$accessToken,
+                'charset'=>'utf-8',
+                'version'=>'2',
+                'developerId'=>self::developerId,
+                'businessId'=>58,
+                'biz'=>json_encode([
+                    'orderId'=>$data['orderId'],
+                    'cancelReason'=>'取消预定',
+                    "type"=>2,
+                ],JSON_UNESCAPED_UNICODE)
+            ];
+            $sign_data = self::get_sign(self::assessKey, $data);
+            $data['sign'] = $sign_data;
+            return http_request($url,http_build_query($data));
+        }
+
 
     }