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

feat(order): 添加1688商品预下单接口集成

- 集成1688预下单功能,支持获取商品价格和运费信息
- 添加地址参数构建逻辑,包括收货人姓名、电话、地区和详细地址
- 实现商品参数列表构建,包含商品ID、规格ID和数量信息
- 添加订单服务调用,处理预下单请求并验证返回结果
- 实现运费计算逻辑,将1688返回的运费加入总邮费中
- 添加订单金额计算,将1688返回的商品总价加入订单价格中
- 注释掉原有重复的1688运费获取代码以避免重复计算
shichen месяцев назад: 2
Родитель
Сommit
a02c7cc73d
1 измененных файлов с 56 добавлено и 26 удалено
  1. 56 26
      app/common/repositories/store/order/StoreOrderRepository.php

+ 56 - 26
app/common/repositories/store/order/StoreOrderRepository.php

@@ -2394,6 +2394,36 @@ class StoreOrderRepository extends BaseRepository
2394 2394
             }
2395 2395
 
2396 2396
             $orderpri = bcmul($cartInfo['list'][$_k]['productAttr']['price'], $cartInfo['list'][$_k]['cart_num'], 2);
2397
+
2398
+            if($cart['product']['is_alibaba'] == 1) {
2399
+                $addressParam = [
2400
+                    'fullName' => $address['real_name'],
2401
+                    'mobile' => $address['phone'],
2402
+                    'provinceText' => $address['province'],
2403
+                    'cityText' => $address['city'],
2404
+                    'areaText' => $address['district'],
2405
+                    'address' => $address['detail'],
2406
+                ];
2407
+                $cargoParamList = [
2408
+                    'offerId' => $cart['product']['spu_id'],
2409
+                    'specId' => $cart['productAttr']['spec_id'],
2410
+                    'quantity' => $cart['cart_num']
2411
+                ];
2412
+                if (!$cart['product']['spu_id'] || !$cart['productAttr']['spec_id']) {
2413
+                    throw new ValidateException('1688预下单接口请求失败');
2414
+                }
2415
+                $orderService = new OrderService();
2416
+                $ailOrder = $orderService->previewOrder(['cargoParamList' => $cargoParamList, 'addressParam' => $addressParam]);
2417
+                if (!$ailOrder['success']) {
2418
+                    throw new ValidateException($ailOrder['preview']['msg']);
2419
+                }
2420
+                if ($ailOrder['preview']['sumCarriage'] > 0) {
2421
+                    $postage_price = bcadd($postage_price, $ailOrder['preview']['sumCarriage'] / 100, 2);
2422
+                }
2423
+
2424
+                $orderpri = bcadd($orderpri, $ailOrder['preview']['sumPrice'] / 100, 2);
2425
+            }
2426
+
2397 2427
             //var_dump($ss);
2398 2428
             //支付组合
2399 2429
             $num_yl = 0;
@@ -2621,32 +2651,32 @@ class StoreOrderRepository extends BaseRepository
2621 2651
 
2622 2652
 
2623 2653
             // 1688商品获取运费
2624
-            if($cart['product']['is_alibaba'] == 1) {
2625
-                $addressParam = [
2626
-                    'fullName' => $address['real_name'],
2627
-                    'mobile' => $address['phone'],
2628
-                    'provinceText' => $address['province'],
2629
-                    'cityText' => $address['city'],
2630
-                    'areaText' => $address['district'],
2631
-                    'address' => $address['detail'],
2632
-                ];
2633
-                $cargoParamList = [
2634
-                    'offerId' => $cart['product']['spu_id'],
2635
-                    'specId' => $cart['productAttr']['spec_id'],
2636
-                    'quantity' => $cart['cart_num']
2637
-                ];
2638
-                if (!$cart['product']['spu_id'] || !$cart['productAttr']['spec_id']) {
2639
-                    throw new ValidateException('1688预下单接口请求失败');
2640
-                }
2641
-                $orderService = new OrderService();
2642
-                $ailOrder = $orderService->previewOrder(['cargoParamList' => $cargoParamList, 'addressParam' => $addressParam]);
2643
-                if (!$ailOrder['success']) {
2644
-                    throw new ValidateException($ailOrder['preview']['msg']);
2645
-                }
2646
-                if ($ailOrder['preview']['sumCarriage'] > 0) {
2647
-                    $postage_price = bcadd($postage_price, $ailOrder['preview']['sumCarriage'] / 100, 2);
2648
-                }
2649
-            }
2654
+            // if($cart['product']['is_alibaba'] == 1) {
2655
+            //     $addressParam = [
2656
+            //         'fullName' => $address['real_name'],
2657
+            //         'mobile' => $address['phone'],
2658
+            //         'provinceText' => $address['province'],
2659
+            //         'cityText' => $address['city'],
2660
+            //         'areaText' => $address['district'],
2661
+            //         'address' => $address['detail'],
2662
+            //     ];
2663
+            //     $cargoParamList = [
2664
+            //         'offerId' => $cart['product']['spu_id'],
2665
+            //         'specId' => $cart['productAttr']['spec_id'],
2666
+            //         'quantity' => $cart['cart_num']
2667
+            //     ];
2668
+            //     if (!$cart['product']['spu_id'] || !$cart['productAttr']['spec_id']) {
2669
+            //         throw new ValidateException('1688预下单接口请求失败');
2670
+            //     }
2671
+            //     $orderService = new OrderService();
2672
+            //     $ailOrder = $orderService->previewOrder(['cargoParamList' => $cargoParamList, 'addressParam' => $addressParam]);
2673
+            //     if (!$ailOrder['success']) {
2674
+            //         throw new ValidateException($ailOrder['preview']['msg']);
2675
+            //     }
2676
+            //     if ($ailOrder['preview']['sumCarriage'] > 0) {
2677
+            //         $postage_price = bcadd($postage_price, $ailOrder['preview']['sumCarriage'] / 100, 2);
2678
+            //     }
2679
+            // }
2650 2680
 
2651 2681
             $take = $merchantTakeRepository->get($cartInfo['mer_id']);
2652 2682
             $org_price = bcadd(bcsub($total_price, $valid_total_price, 2), max($_pay_price, 0), 2);