|
@@ -157,7 +157,7 @@ class ShopOrderLogic extends BaseLogic
|
|
|
{
|
|
{
|
|
|
Db::startTrans();
|
|
Db::startTrans();
|
|
|
try {
|
|
try {
|
|
|
- $orderModel = ShopOrders::where([
|
|
|
|
|
|
|
+ $orderModel = ShopOrders::with('orderGoods.goodsSpecsInventory')->where([
|
|
|
'shop_order_type' => 1,
|
|
'shop_order_type' => 1,
|
|
|
'worker_id' => $params['worker_id'],
|
|
'worker_id' => $params['worker_id'],
|
|
|
'sn'=>$params['sn']
|
|
'sn'=>$params['sn']
|
|
@@ -165,6 +165,18 @@ class ShopOrderLogic extends BaseLogic
|
|
|
if($orderModel->isEmpty()){
|
|
if($orderModel->isEmpty()){
|
|
|
throw new \Exception('订单不存在或不是待支付状态');
|
|
throw new \Exception('订单不存在或不是待支付状态');
|
|
|
}
|
|
}
|
|
|
|
|
+ if($orderModel->orderGoods()->count() === 0){
|
|
|
|
|
+ throw new \Exception('订单商品不存在');
|
|
|
|
|
+ }
|
|
|
|
|
+ $updateData = [];
|
|
|
|
|
+ foreach($orderModel->orderGoods as $goods){
|
|
|
|
|
+ if(isset($goods->goodsSpecsInventory->remaining_inventory)){
|
|
|
|
|
+ $updateData[$goods->goodsSpecsInventory->id] = ['remaining_inventory'=> $goods->goodsSpecsInventory->remaining_inventory+= $goods['number']];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!empty($updateData)){
|
|
|
|
|
+ ShopGoodSpecsInventory::updateWhenCase($updateData);
|
|
|
|
|
+ }
|
|
|
$orderModel->shop_order_type = 0;
|
|
$orderModel->shop_order_type = 0;
|
|
|
$orderModel->save();
|
|
$orderModel->save();
|
|
|
Db::commit();
|
|
Db::commit();
|