|
@@ -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) {
|