From c027c7ef0a1d1b70f2acdff76d395084674e344b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BB=BA=E7=82=8A?= <924182103@qq.com> Date: Tue, 12 Nov 2024 13:49:03 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Exports/GoodsSkusExport.php | 20 +++++++------ app/Filters/GoodsSkuFilter.php | 30 +++++++++++++++++++ .../Goods/GoodsCombinationController.php | 5 +++- .../Controllers/Goods/GoodsSkusController.php | 11 ++++--- .../CombinationGoodsStockUpdateListener.php | 5 ++-- app/Models/GoodsSku.php | 8 ++++- app/Providers/EventServiceProvider.php | 3 +- 7 files changed, 63 insertions(+), 19 deletions(-) diff --git a/app/Exports/GoodsSkusExport.php b/app/Exports/GoodsSkusExport.php index c9d311f..8c760fe 100644 --- a/app/Exports/GoodsSkusExport.php +++ b/app/Exports/GoodsSkusExport.php @@ -38,7 +38,8 @@ class GoodsSkusExport implements FromCollection, ShouldAutoSize $headTitle = [ '商品编码', '商品名称', - '可售库存', + '在售库存', + "剩余库存", '创建时间', ]; $map = [ @@ -91,17 +92,18 @@ class GoodsSkusExport implements FromCollection, ShouldAutoSize foreach ($data as $item) { $arr[0] = $item['external_sku_id']; $arr[1] = $item['name']; - $arr[2] = $item['sale_stock'] ?? 0; - $arr[3] = $item['created_at']; + $arr[2] = $item['sale_stock'] ?? '0'; + $arr[3] = $item['stock'] ?? '0'; + $arr[4] = $item['created_at']; if ('cost' === $this->type) { - $arr[4] = (string)$item['cost']; - $arr[5] = (string)$update[$item['id']]['before_update']; - $arr[6] = (string)$update[$item['id']]['after_update']; + $arr[5] = (string)$item['cost']; + $arr[6] = (string)$update[$item['id']]['before_update']; + $arr[7] = (string)$update[$item['id']]['after_update']; } if ('inventory' === $this->type) { - $arr[4] = (string)$item['stock']; - $arr[5] = (string)$update[$item['id']]['inventory']; - $arr[6] = (string)$update[$item['id']]['arrived_today_num']; + $arr[5] = (string)$item['stock']; + $arr[6] = (string)$update[$item['id']]['inventory']; + $arr[7] = (string)$update[$item['id']]['arrived_today_num']; } $bodyData[] = $arr; } diff --git a/app/Filters/GoodsSkuFilter.php b/app/Filters/GoodsSkuFilter.php index ef64a1e..d7226c2 100644 --- a/app/Filters/GoodsSkuFilter.php +++ b/app/Filters/GoodsSkuFilter.php @@ -42,4 +42,34 @@ class GoodsSkuFilter extends Filters $end = Carbon::parse($value)->endOfDay()->toDateTimeString(); return $this->builder->where('created_at', "<=", $end); } + + protected function minStock($value) + { + return $this->builder->where('stock',">=", $value); + } + + protected function maxStock($value) + { + return $this->builder->where('stock',"<=", $value); + } + + protected function minSaleStock($value) + { + return $this->builder->where('sale_stock',">=", $value); + } + + protected function maxSaleStock($value) + { + return $this->builder->where('sale_stock',"<=", $value); + } + + protected function neqSaleStock($value) + { + return $this->builder->where('sale_stock',"!=", $value); + } + + protected function neqStock($value) + { + return $this->builder->where('stock',"!=", $value); + } } diff --git a/app/Http/Controllers/Goods/GoodsCombinationController.php b/app/Http/Controllers/Goods/GoodsCombinationController.php index 553a14b..0af6eaa 100644 --- a/app/Http/Controllers/Goods/GoodsCombinationController.php +++ b/app/Http/Controllers/Goods/GoodsCombinationController.php @@ -34,8 +34,11 @@ class GoodsCombinationController extends Controller $orderRestTime = DeveloperConfig::query() ->where('key', DeveloperConfig::$ORDER_RESET_TIME) ->value('value'); + $time = date('Y-m-d 07:00:00'); if (is_null($orderRestTime)) { - $orderRestTime = date('Y-m-d 07:00:00'); + $orderRestTime = $time; + } else { + $orderRestTime = Carbon::parse($orderRestTime)->lt(Carbon::parse($time)) ? $time : $orderRestTime; } $businessOrderItems = BusinessOrderItem::query() diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php index 9a170ba..5e8bd47 100644 --- a/app/Http/Controllers/Goods/GoodsSkusController.php +++ b/app/Http/Controllers/Goods/GoodsSkusController.php @@ -59,8 +59,11 @@ class GoodsSkusController extends Controller $orderRestTime = DeveloperConfig::query() ->where('key', DeveloperConfig::$ORDER_RESET_TIME) ->value('value'); + $time = date('Y-m-d 07:00:00'); if (is_null($orderRestTime)) { - $orderRestTime = date('Y-m-d 07:00:00'); + $orderRestTime = $time; + } else { + $orderRestTime = Carbon::parse($orderRestTime)->lt(Carbon::parse($time)) ? $time : $orderRestTime; } $businessOrderItems = BusinessOrderItem::query() ->select(DB::raw($fields)) @@ -119,9 +122,9 @@ class GoodsSkusController extends Controller foreach ($ids as $id => $number) { $finalIds[] = $id; } - if(empty($finalIds)){ - $goodsSkusBuilder->orderBy("id",$sortValue); - }else{ + if (empty($finalIds)) { + $goodsSkusBuilder->orderBy("id", $sortValue); + } else { $idField = implode(',', $finalIds); $goodsSkusBuilder->orderByRaw("FIELD(id,{$idField}) {$sortValue}"); } diff --git a/app/Listeners/CombinationGoodsStockUpdateListener.php b/app/Listeners/CombinationGoodsStockUpdateListener.php index 80ea3b2..c378d55 100644 --- a/app/Listeners/CombinationGoodsStockUpdateListener.php +++ b/app/Listeners/CombinationGoodsStockUpdateListener.php @@ -74,9 +74,10 @@ class CombinationGoodsStockUpdateListener implements ShouldQueue $goodsSku->stock = $stock; $goodsSku->sale_stock = $saleStock; $goodsSku->save(); + Log::info("sku 业务订单库存更:{$goodsSku->id},num:{$num}", [$stock, $saleStock]); $mainGoodsSku = GoodsSku::query()->find($item['goods_sku_id']); - $mainGoodsSku->stock = min($mainGoodsSku->stock,(int)($stock / $item['item_num'])); - $mainGoodsSku->sale_stock = min($mainGoodsSku->sale_stock,(int)($saleStock / $item['item_num'])); + $mainGoodsSku->stock = min($mainGoodsSku->stock, (int)($stock / $item['item_num'])); + $mainGoodsSku->sale_stock = min($mainGoodsSku->sale_stock, (int)($saleStock / $item['item_num'])); $mainGoodsSku->save(); $updateIds[] = $goodsSku->id; }); diff --git a/app/Models/GoodsSku.php b/app/Models/GoodsSku.php index debf7eb..73f9ef8 100644 --- a/app/Models/GoodsSku.php +++ b/app/Models/GoodsSku.php @@ -16,7 +16,13 @@ class GoodsSku extends Model 'external_sku_id', 'is_combination', "create_time_start", - "create_time_end" + "create_time_end", + 'min_stock', + 'max_stock', + 'min_sale_stock', + 'max_sale_stock', + "neq_stock", + "neq_sale_stock", ]; protected $fillable = [ diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 78eaf43..4947c35 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -28,8 +28,7 @@ class EventServiceProvider extends ServiceProvider protected $listen = [ BusinessOrdersUpdate::class => [ UpdateBusinessGoodsStock::class, - CombinationGoodsStockUpdateListener::class, - BusinessOrderUpdateListener::class + CombinationGoodsStockUpdateListener::class ], BatchStockUpdateEvent::class => [ BatchStockUpdateListener::class,