liugc 11 месяцев назад
Родитель
Сommit
176c17f17f

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

@@ -343,4 +343,11 @@ class ServiceWorkController extends BaseAdminController
         return $this->success('操作成功', [], 1, 1);
     }
 
+    public function shareOrder()
+    {
+        $params = request()->post();
+        $result = ServiceWorkLogic::shareOrderToNative($params);
+        return $this->success('', $result, 1, 1);
+    }
+
 }

+ 48 - 9
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -1540,15 +1540,6 @@ class ServiceWorkLogic extends BaseLogic
             }
             return  [];
         }
-        // $externalShareOrder->work_id with([])->
-/*        `work_sn` varchar(200) NOT NULL COMMENT '工单编号',
-  `real_name` varchar(50) DEFAULT NULL COMMENT '姓名',
-  `mobile` varchar(50) NOT NULL COMMENT '手机号',
-  `address` varchar(255) NOT NULL COMMENT '客户地址',
-  `title` varchar(200) NOT NULL COMMENT '工单名称',
-  `category_type` int(11) NOT NULL COMMENT '服务类别',
-  `goods_category_ids` varchar(50) NOT NULL COMMENT '服务类目',
-  `goods_category_id` int(10) NOT NULL COMMENT '服务产品',*/
 
         $result = ServiceWork::field('id as work_id,work_sn,real_name,mobile,address,title')
             ->where('id',$externalShareOrder->work_id)
@@ -1588,4 +1579,52 @@ class ServiceWorkLogic extends BaseLogic
         $result['tip'] = '测试提示';
         return  $result;
     }
+
+    public static function shareOrderToNative($params){
+
+        // 创建分享单Id
+        $is_share = true;
+        $params['amount'] = (float)$params['amount']??0;
+        $shareOrder = ExternalShareOrder::where(['work_id'=>$params['id']])->findOrEmpty();
+        if($shareOrder->isEmpty()){
+            $work = ServiceWork::where(['id'=>$params['id']])->findOrEmpty();
+            $work->work_status = 4;
+            $work->master_worker_id = 2;
+            $work->save();
+            //amount user_id work_sn user_info.worker_number real_name master_worker_id
+            self::confirmPrice([
+                'amount'=>$params['amount']??0,
+                'user_id'=>$work->master_worker_id,
+                'work_sn'=>$work->work_sn,
+                'user_info'=>['worker_number'=>'分享报价','real_name'=>'分享报价']
+            ]);
+
+            $shareOrder = ExternalShareOrder::create(['order_status'=>1,'work_id'=>$params['id'],'paid_amount'=>$params['amount']??0]);
+        }else{
+            if($shareOrder->order_status === 1 && empty($shareOrder->openid) && $params['amount']>0){ // 可以改价
+
+                $work = ServiceWork::where(['id'=>$params['id']])->findOrEmpty();
+                $work->work_status = 4;
+                $work->master_worker_id = 2;
+                $work->save();
+                //amount user_id work_sn user_info.worker_number real_name master_worker_id
+                self::confirmPrice([
+                    'amount'=>$params['amount']??0,
+                    'user_id'=>$work->master_worker_id,
+                    'work_sn'=>$work->work_sn,
+                    'user_info'=>['worker_number'=>'分享报价','real_name'=>'分享报价']
+                ]);
+
+                $shareOrder->paid_amount= $params['amount']??0;
+                $shareOrder->save();
+            }else{ // 已结束 - 不用分享二维码
+                if((float)$shareOrder->paid_amount>0 && empty($params['amount'])) $is_share = true;
+                else $is_share = false;
+            }
+        }
+        $share_url = $is_share?(env('project.share_quoted_host','').'?id='.$shareOrder->id):'';
+        return ['info'=>$shareOrder->toArray(),'share_url'=>$share_url];
+    }
+
+
 }

+ 1 - 0
app/common/logic/PayNotifyLogic.php

@@ -161,6 +161,7 @@ class PayNotifyLogic extends BaseLogic
                     $externalShareOrder = ExternalShareOrder::where('work_id',$order->work_id)->findOrEmpty();
                     if(!$externalShareOrder->isEmpty() && empty($externalShareOrder->openid)){
                         $externalShareOrder->openid = $extra['openid'];
+                        $externalShareOrder->order_status = 2;
                         $externalShareOrder->save();
                     }
                 }

+ 1 - 0
app/common/service/pay/WorkerWeChatPayService.php

@@ -204,6 +204,7 @@ class WorkerWeChatPayService extends BasePayService
                 $message['out_trade_no'] = mb_substr($message['out_trade_no'], 0, 18);
                 $openid = '';
                 isset($message['payer']) && $message['payer'] && $openid = $message['payer']['openid']??'';
+                $extra['openid'] = $openid;
                 switch ($attach) {
                     case 'recharge':
                         $order = RechargeOrder::where(['sn' => $message['out_trade_no']])->findOrEmpty();