Просмотр исходного кода

调整预约逻辑--即时预约

liugc 9 месяцев назад
Родитель
Сommit
f35dc322f4
1 измененных файлов с 25 добавлено и 5 удалено
  1. 25 5
      app/api/service/DouYinService.php

+ 25 - 5
app/api/service/DouYinService.php

@@ -217,7 +217,11 @@ class DouYinService
                     "outShopId" => self::EXTERNAL_PLATFORM_ID,
                     "skuId" => (string)$platformGoods['external_goods_sn'],
                     "quantity" => $quantity,
-                    "user_id" => $params['user_id']
+                    "user_id" => $params['user_id'],
+                    "user_address" => $params['user_address'],
+                    "lon" => $params['lon'],
+                    "lat" => $params['lat'],
+                    "appointment_time" => $params['appointment_time']
                 ]),
                 "goods_list" => [
                     [
@@ -301,6 +305,10 @@ class DouYinService
                     "quantity" => $quantity,
                     "user_id" => $params['user_id'],
                     "douyinOrderId" => $douyinOrderId?:0,
+                    "user_address" => $params['user_address']??'',
+                    "lon" => $params['lon']??'',
+                    "lat" => $params['lat']??'',
+                    "appointment_time" => $params['appointment_time']??''
                 ],
                 /*"tradeOption" => json_encode([
                     "life_trade_flag" => 1,
@@ -434,6 +442,7 @@ class DouYinService
         Log::write(json_encode($params));
         // 查询抖音订单是否完成支付
         if ($params['status'] === 'SUCCESS') {
+            $params['cp_extra'] = json_decode($params['cp_extra'], true);
             $transaction_id = $params['order_id']??'';
             $paid_amount = bcdiv(bcsub($params['total_amount'] ,$params['discount_amount']), '100', 2)??0;
             $out_order_no = $params['out_order_no'];
@@ -465,6 +474,17 @@ class DouYinService
                 ]);
                 $order->consultation_id = $consultation->id;
                 $order->save();
+
+                //order_number user_address lon lat appointment_time
+                self::reservation([
+                    'order_number' => $out_order_no,
+                    'user_address' => $params['cp_extra']['user_address'],
+                    'lon' => $params['cp_extra']['lon'],
+                    'lat' => $params['cp_extra']['lat'],
+                    'appointment_time' => $params['cp_extra']['appointment_time'],
+                ]);
+
+
                 return true;
             }
         }elseif ($params['status'] === 'CANCEL' && $params['message'] == 'TIME_OUT'){
@@ -559,7 +579,7 @@ class DouYinService
         $params['lon'] = $lon_lat['lon'];
         $params['lat'] = $lon_lat['lat'];*/
 
-        // $params['order_number']
+        // $params['order_number'] user_address lon lat appointment_time
         Db::startTrans();
         try {
             $order = DouyinOrder::where('order_number', $params['order_number'])->findOrEmpty();
@@ -590,14 +610,14 @@ class DouYinService
             Db::commit();
 
             // 抖音创建预约单
-            $url = 'api/apps/trade/v2/book/create_book';
-            $resData = self::toDyRequestUrl($url,self::getCreateBookParams($params));
+            //$url = 'api/apps/trade/v2/book/create_book';
+            //$resData = self::toDyRequestUrl($url,self::getCreateBookParams($params));
 
             //book_id result
             // 抖音预约接单结果回调
             $bookurl = 'api/apps/trade/v2/book/book_result_callback';
             $res = self::toDyRequestUrl($bookurl,[
-                'book_id' => $resData['book_id']??'',
+                'book_id' => $resData['book_id']??$params['dy_order_id'],
                 'result' => 1,
             ]);