库存扣减

This commit is contained in:
杨建炊 2024-12-02 17:24:01 +08:00
parent 3f776c8d58
commit 5a58e4f144
3 changed files with 35 additions and 2 deletions

View File

@ -13,6 +13,7 @@ use App\Models\ShopShip;
use App\Services\Business\KuaiTuanTuan\FaceSheet; use App\Services\Business\KuaiTuanTuan\FaceSheet;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use App\Services\Business\BusinessFactory; use App\Services\Business\BusinessFactory;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@ -131,6 +132,7 @@ class ShopsController extends Controller
$business->bindGoods($request->get('data')); $business->bindGoods($request->get('data'));
} }
if ('orders' === $request->get('type')) { if ('orders' === $request->get('type')) {
Log::info('order',[$request->get('data')]);
$business->saveOrders($request->get('data')); $business->saveOrders($request->get('data'));
} }

View File

@ -2,8 +2,10 @@
namespace App\Services\Business\KuaiTuanTuan; namespace App\Services\Business\KuaiTuanTuan;
use App\Events\BusinessOrdersUpdate;
use App\Models\BusinessAfterSaleOrder; use App\Models\BusinessAfterSaleOrder;
use App\Models\BusinessGoodsSku; use App\Models\BusinessGoodsSku;
use App\Models\BusinessOrderItem;
use App\Models\GoodsSku; use App\Models\GoodsSku;
use App\Models\GroupGoods; use App\Models\GroupGoods;
use App\Models\Shop; use App\Models\Shop;
@ -185,11 +187,37 @@ class KuaiTuanTuan extends BusinessClient
} }
$queryOrder = $res[$responseName]['order_info']; $queryOrder = $res[$responseName]['order_info'];
$needUpdate = false;
if ($order->shipping_status != $queryOrder['shipping_status']) { if ($order->shipping_status != $queryOrder['shipping_status']) {
$order->shipping_status = $queryOrder['shipping_status']; $order->shipping_status = $queryOrder['shipping_status'];
$order->save(); $needUpdate = true;
}
if ($order->cancel_status != $queryOrder['cancel_status']) {
$order->cancel_status = $queryOrder['cancel_status'];
$needUpdate = true;
}
if ($needUpdate) {
$goodsSkuNum = 0;
foreach ($queryOrder['sub_order_list'] as $item) {
$orderItem = BusinessOrderItem::firstOrNew(['shop_id' => $order->shop_id, 'business_order_id' => $order->id, 'goods_id' => $item['goods_id'], 'sku_id' => $item['sku_id']], $item);
if ($item['external_sku_id']) {
$goodsSku = GoodsSku::query()
->with('combinationGoods')
->where('external_sku_id', $item['external_sku_id'])
->first('external_sku_id');
$combinationNum = $goodsSku ? ($goodsSku->combinationGoods->count() ?: 1) : 1;
$goodsSkuNum += $combinationNum;
} else {
$goodsSkuNum++;
} }
if (!empty($orderItem->id)) {
$orderItem->update($item);
}
}
$order->goods_sku_num = $goodsSkuNum;
$order->save();
}
} }
public function getOrderInfo($orderSn) public function getOrderInfo($orderSn)

View File

@ -121,8 +121,11 @@ class GoodSkuService
->select("external_sku_id", DB::raw("SUM(goods_number) - SUM(already_cancel_number) as number")) ->select("external_sku_id", DB::raw("SUM(goods_number) - SUM(already_cancel_number) as number"))
->whereIn("external_sku_id", $externalSkuIds) ->whereIn("external_sku_id", $externalSkuIds)
->where("b.shipping_status", "=", BusinessOrderShippingStatus::UNSHIP) ->where("b.shipping_status", "=", BusinessOrderShippingStatus::UNSHIP)
->where("business_order_items.created_at", ">=", $startTime)->where("business_order_items.cancel_status", "=", 0) ->where("business_order_items.created_at", ">=", $startTime)->where("b.cancel_status", "=", 0)
->groupBy('external_sku_id')->get()->toArray(); ->groupBy('external_sku_id')->get()->toArray();
Log::info("盘点未发货数据".implode(",",$externalSkuIds),[$unshippedDataCollect]);
//重组订单 //重组订单
foreach ($unshippedDataCollect as $businessOrderItem) { foreach ($unshippedDataCollect as $businessOrderItem) {
if (is_null($businessOrderItem['goods_sku'])) { if (is_null($businessOrderItem['goods_sku'])) {