Browse Source

同步组合支付

gorden 6 months ago
parent
commit
e95b9ae791
1 changed files with 56 additions and 50 deletions
  1. 56 50
      app/admin/controller/order/WholeController.php

+ 56 - 50
app/admin/controller/order/WholeController.php

@@ -2783,55 +2783,61 @@ class WholeController extends Curd
             }
 
             // 买的单个服务
-            // $writeOffDate = [];
-            // $applyData = [];
-            // // 服务已完成,生成核销数据
-            // if ($params['order_status_payment'] == 'SUCCESS' && in_array($goods['goods_classify'], ['SERVICE','CHNMED','CHNNCD', 'PACKAGE'])) {
-            //     $writeOffDate = OrderService::generateWriteOffData($params);
-            //     $applyData = OrderService::generateAppointmentApplyData($params);
-            // }
-            // if (in_array($goods['goods_classify'],['SERVICE','CHNMED','CHNNCD'])) {
-            //     // 预约表
-            //     for ($i = 0; $i < intval($params['order_sheet_num']); $i++) {
-            //         $params['appointmentId'] = 'AP' . date('YmdHis') . random_string(6, 'up');
-            //         // 入预约记录
-            //         $this->insertAppointment($params, $writeOffDate,$applyData);
-            //     }
-            //     $goods['skuId'] = $params['join_sheet_goods_sku_id'];
-            //     $goods['category'] = $goods['goods_classify'];
-            //     // 权益表
-            //     $this->insertMemberBenefit($params, $goods);
-            // } elseif ($goods['goods_classify'] == 'PACKAGE') {  // 一个套餐买多个
-            //     $params['packageId'] = $params['join_sheet_goods_id'];
-            //     $components = GoodsComponent::with([
-            //         'goods' => function ($query) {
-            //             $query->select('goods_id', 'goods_name', 'goods_classify');
-            //         }
-            //     ])->where('join_component_master_goods_id', $params['join_sheet_goods_id'])
-            //         ->get()
-            //         ->toArray();
-            //     $orderSheetNum = $params['order_sheet_num'];
-            //     foreach ($components as $component) {
-            //         $params['order_sheet_num'] = $orderSheetNum;
-            //         $componentJson = json_decode($component['goods_component_json'], true);
-            //         $params['join_sheet_goods_sku_id'] = $componentJson['sku_id'];
-            //         $params['join_sheet_goods_id'] = $component['join_component_goods_id'];
-            //         $params['benefitId'] = 'BF' . date('YmdHis') . random_string(6, 'up');
-            //         $params['order_sheet_num'] = $params['order_sheet_num'] * $componentJson['nbr'];
-            //         for ($i = 0; $i < intval($params['order_sheet_num']); $i++) {
-            //             $params['appointmentId'] = 'AP' . date('YmdHis') . random_string(8, 'up');
-            //             // 入预约记录
-            //             $this->insertAppointment($params, $writeOffDate);
-            //         }
-            //         $goods['goods_id'] = $component['join_component_goods_id'];
-            //         $goods['goods_name'] = $component['goods']['goods_name'];
-            //         $goods['goods_classify'] = $component['goods']['goods_classify'];
-            //         $goods['skuId'] = $params['join_sheet_goods_sku_id'];
-            //         $goods['category'] = 'SERVICE';
-            //         // 权益表
-            //         $this->insertMemberBenefit($params, $goods);
-            //     }
-            // }
+            $writeOffDate = [];
+            $applyData = [];
+            // 服务已完成,生成核销数据
+//             if ($params['order_status_payment'] == 'SUCCESS' && in_array($goods['goods_classify'], ['SERVICE','CHNMED','CHNNCD', 'PACKAGE'])) {
+//                 $writeOffDate = OrderService::generateWriteOffData($params);
+//                 $applyData = OrderService::generateAppointmentApplyData($params);
+//             }
+            if ($params['order_status_payment'] == 'SUCCESS') {
+                foreach ($params['goodsContentList'] as $goods) {
+                    $params['join_sheet_goods_id'] = $goods['goods_id'];
+                    if (isset($goods['goods_classify']) && in_array($goods['goods_classify'], ['SERVICE', 'CHNMED', 'CHNNCD'])) {
+                        $params['benefitId'] = 'BF' . date('YmdHis') . random_string(6, 'up');
+                        $params['join_sheet_goods_sku_id'] = $goods['sku_id'];
+                        $params['goods_id'] = $goods['goods_id'];
+                        $params['order_sheet_num'] = $goods['nbr'];
+                        // 预约表
+                        for ($i = 0; $i < intval($params['order_sheet_num']); $i++) {
+                            $params['appointmentId'] = 'AP' . date('YmdHis') . random_string(6, 'up');
+                            // 入预约记录
+                            $this->insertAppointment($params, $writeOffDate, $applyData);
+                        }
+                        $goods['skuId'] = $goods['sku_id'];
+                        $goods['category'] = $goods['goods_classify'];
+                        // 权益表
+                        $this->insertMemberBenefit($params, $goods);
+                    } elseif (isset($goods['goods_classify']) && $goods['goods_classify'] == 'PACKAGE') {  // 一个套餐买多个
+                        $params['packageId'] = $goods['goods_id'];
+                        $components = GoodsComponent::with([
+                            'goods' => function ($query) {
+                                $query->select('goods_id', 'goods_name', 'goods_classify');
+                            }
+                        ])->where('join_component_master_goods_id', $params['packageId'])
+                            ->get()
+                            ->toArray();
+                        foreach ($components as $component) {
+                            $componentJson = json_decode($component['goods_component_json'], true);
+                            $params['join_sheet_goods_sku_id'] = $componentJson['sku_id'];
+                            $params['benefitId'] = 'BF' . date('YmdHis') . random_string(6, 'up');
+                            $params['order_sheet_num'] = $goods['nbr'] * $componentJson['nbr'];
+                            for ($i = 0; $i < intval($params['order_sheet_num']); $i++) {
+                                $params['appointmentId'] = 'AP' . date('YmdHis') . random_string(8, 'up');
+                                // 入预约记录
+                                $this->insertAppointment($params, $writeOffDate);
+                            }
+                            $goods['goods_id'] = $component['join_component_goods_id'];
+                            $goods['goods_name'] = $component['goods']['goods_name'];
+                            $goods['goods_classify'] = $component['goods']['goods_classify'];
+                            $goods['skuId'] = $goods['sku_id'];
+                            $goods['category'] = 'SERVICE';
+                            // 权益表
+                            $this->insertMemberBenefit($params, $goods);
+                        }
+                    }
+                }
+            }
 
             // 2.4W 康养城
             if ($params['goods_classify'] == 'VIP' && intval($params['order_amount_pay']) == 24000 && $params['order_status_payment'] == 'SUCCESS') {
@@ -3021,7 +3027,7 @@ class WholeController extends Curd
                 $orderSheetIds[] = $orderSheetId;
 
                 // 减库存,规格和总库存
-                if (!isset($params['submit_goods_classify']) || $params['submit_goods_classify'] != 'MEALS') {
+                if (!isset($params['submit_goods_classify']) || ($params['submit_goods_classify'] != 'MEALS' && $params['submit_goods_classify'] != 'PACKAGE')) {
                     $goodsSku = GoodsSku::where('goods_sku_id', $goods['sku_id'])->first();
                     $skuStorageJson = json_decode($goodsSku->goods_sku_storage_json, true);
                     if (isset($skuStorageJson['storage']) && !empty($skuStorageJson['storage'])) {