Browse Source

新客专享

gorden 5 months ago
parent
commit
268a4ce394

+ 13 - 33
app/admin/controller/order/NewCustomerController.php

@@ -202,9 +202,9 @@ class NewCustomerController extends Curd
     public function insert(Request $request): Response
     {
         $params = $request->post();
-        // 判断餐品是否连带着服务或实体
         $goodsClassifys = array_unique(array_column($params['goodsContentList'], 'goods_classify'));
         $params['goods_classify'] = $goodsClassifys[0];
+        $params['submit_goods_classify'] = $goodsClassifys[0];
         Db::beginTransaction();
         try {
             // 验证线下付款密码
@@ -228,8 +228,9 @@ class NewCustomerController extends Curd
             if (empty($params['join_order_member_id'])) {
                 throw new BusinessException('检查下单账户');
             }
+            // 检查库存            
+            OrderService::checkGoodsStorage($params);
 
-            $qrcodePayAmount = 0;
             $params['orderId'] = 'OD' . date('ymdHi') . random_string(4, 'up');
             $params['orderGroupId'] = 'OD' . date('ymdHi') . random_string(4, 'up');
             // 查询是否有未完全支付订单
@@ -244,10 +245,8 @@ class NewCustomerController extends Curd
             $systemStatus = 'PAYING';
             // 立即结算
             if ($params['settlement_now'] == 'Y') {
-                if ($params['goods_classify'] == 'COMBINE') {
-                    $params['order_is_complete'] = 'Y';
-                    $systemStatus = 'DONE';
-                }
+                $params['order_is_complete'] = 'Y';
+                $systemStatus = 'DONE';
             }
 
             if ($params['settlement_now'] == 'Y' && ($params['pay_category'] == 'OFFLINE' || $params['pay_category'] == 'MONEY')) {
@@ -632,9 +631,6 @@ class NewCustomerController extends Curd
                 if (isset($params['submit_premises_id'])) {
                     $extendJson['premises'] = $params['submit_premises_id'];
                 }
-                if (isset($params['submit_goods_classify']) && $params['submit_goods_classify'] == 'MEALS') {
-                    $extendJson['table'] = null;
-                }
                 $orderSheetStatus = 'PAYING';
                 if ($params['settlement_now'] == 'Y' && $params['order_status_payment'] == 'SUCCESS') {
                     if (floatval($params['order_amount_pay']) >= floatval($params['order_amount_total'])) {
@@ -643,6 +639,14 @@ class NewCustomerController extends Curd
                         $orderSheetStatus = 'BEING';
                     }
                 }
+                // 减库存
+                $goodsRunning = GoodsRunning::where('join_running_goods_id', $goods['goods_id'])->first();
+                $goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
+                if ($goodsRunning->goods_running_storage < 0) {
+                    throw new BusinessException('库存不足');
+                }
+                $goodsRunning->goods_running_sale = $goodsRunning->goods_running_sale + $goods['nbr'];
+                $goodsRunning->save();
                 $data = [
                     'join_sheet_member_id' => $params['join_order_member_id'],
                     'join_sheet_order_id' => $params['orderId'],
@@ -662,30 +666,6 @@ class NewCustomerController extends Curd
 
                 $orderSheetId = OrderSheet::insertGetId($data);
                 $orderSheetIds[] = $orderSheetId;
-
-                // 减库存,规格和总库存
-                if (!isset($params['submit_goods_classify']) || !in_array($params['submit_goods_classify'], ['MEALS', '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'])) {
-                        $skuStorageJson['storage'] = $skuStorageJson['storage'] - $goods['nbr'];
-                    }
-
-                    if (!isset($skuStorageJson['storage']) || (!empty($skuStorageJson['storage']) && $skuStorageJson['storage'] < 0)) {
-                        throw new BusinessException('库存不足');
-                    }
-                    $goodsSku->goods_sku_storage_json = json_encode($skuStorageJson);
-                    $goodsSku->save();
-                }
-
-
-                $goodsRunning = GoodsRunning::where('join_running_goods_id', $goods['goods_id'])->first();
-                $goodsRunning->goods_running_storage = $goodsRunning->goods_running_storage - $goods['nbr'];
-                if ($goodsRunning->goods_running_storage < 0) {
-                    throw new BusinessException('库存不足');
-                }
-                $goodsRunning->goods_running_sale = $goodsRunning->goods_running_sale + $goods['nbr'];
-                $goodsRunning->save();
             }
             return $orderSheetIds;
         } catch (\support\exception\BusinessException $e) {

+ 1 - 1
app/admin/service/order/OrderService.php

@@ -405,7 +405,7 @@ class OrderService
     {
         foreach ($params['goodsContentList'] as $goods) {
             // 减库存,规格和总库存
-            if (!isset($params['submit_goods_classify']) || !in_array($params['submit_goods_classify'], ['MEALS', 'PACKAGE'])) {
+            if (!isset($params['submit_goods_classify']) || !in_array($params['submit_goods_classify'], ['MEALS', 'PACKAGE','COMBINE'])) {
                 $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'])) {