From 6e8ca109fc53adeaffa22e8e66e0987e2f2d597f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BB=BA=E7=82=8A?= <924182103@qq.com> Date: Wed, 21 Aug 2024 18:30:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=B2=9C=E8=8A=B12.0-=E6=96=87=E6=A1=88?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Goods/GoodsCombinationController.php | 3 ++- app/Http/Controllers/Goods/GoodsController.php | 6 +++--- app/Http/Controllers/Goods/GoodsSkusController.php | 11 ++++++++--- app/Services/Good/GoodService.php | 11 +++++++++++ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Goods/GoodsCombinationController.php b/app/Http/Controllers/Goods/GoodsCombinationController.php index 6887302..4d8a324 100644 --- a/app/Http/Controllers/Goods/GoodsCombinationController.php +++ b/app/Http/Controllers/Goods/GoodsCombinationController.php @@ -25,7 +25,7 @@ class GoodsCombinationController extends Controller $skus = GoodsSku::query() ->with([ 'combinationGoods:id,goods_sku_id,item_id,item_num', - 'combinationGoods.goodsSkuItem:id,goods_id,title,stock,external_sku_id,updated_at,yesterday_num,reference_price,status', + 'combinationGoods.goodsSkuItem:id,goods_id,title,stock,sale_stock,external_sku_id,updated_at,yesterday_num,reference_price,status', 'combinationGoods.goodsSkuItem.goods:id,title,img_url', ]) ->where('is_combination', 1) @@ -76,6 +76,7 @@ class GoodsCombinationController extends Controller 'reference_price' => $combinationItem['goodsSkuItem']['reference_price'], 'status' => $combinationItem['goodsSkuItem']['status'], 'stock' => $combinationItem['goodsSkuItem']['stock'], + 'sale_stock' => $combinationItem['goodsSkuItem']['sale_stock'], 'thumb_url' => $combinationItem['goodsSkuItem']['goods']['img_url'], 'img_url' => $combinationItem['goodsSkuItem']['goods']['img_url'], 'title' => $combinationItem['goodsSkuItem']['goods']['title'] . $combinationItem['goodsSkuItem']['title'], diff --git a/app/Http/Controllers/Goods/GoodsController.php b/app/Http/Controllers/Goods/GoodsController.php index 68b4b4c..0d58b0f 100644 --- a/app/Http/Controllers/Goods/GoodsController.php +++ b/app/Http/Controllers/Goods/GoodsController.php @@ -56,9 +56,9 @@ class GoodsController extends Controller $item['goods_id'] = $goods->id; $item['stock'] = $item['num'] ?? 0; $item['reference_price'] = $item['cost'] * 1.5; - $item['sku_code'] = !empty($item['sku_code']) ? $item['sku_code'] : $goodService->getRandomCode(); - $item['external_sku_id'] = $goods->goods_code . '_' .$item['sku_code']; - $item['name'] = $goods->title ." ". $item['title']; + $item['sku_code'] = !empty($item['external_sku_id']) ? $item['external_sku_id'] : $goodService->getRandomCode(); + $item['external_sku_id'] = !empty($item['external_sku_id']) ? $item['external_sku_id'] : ($goods->goods_code . '_' . $item['sku_code']); + $item['name'] = $goods->title . " " . $item['title']; $goodsSkus[] = $item; } diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php index 87f8816..ef85d4f 100644 --- a/app/Http/Controllers/Goods/GoodsSkusController.php +++ b/app/Http/Controllers/Goods/GoodsSkusController.php @@ -18,6 +18,7 @@ use App\Models\Goods; use App\Models\Log; use App\Models\Log as LogModel; use App\Services\DeveloperConfig\DeveloperConfigService; +use App\Services\Good\GoodService; use App\Services\GoodSku\GoodSkuService; use App\Services\Ship\WayBillService; use App\Utils\ArrayUtils; @@ -198,8 +199,8 @@ class GoodsSkusController extends Controller $sku = GoodsSku::query()->find($id); $this->setBeforeUpdateForLog($sku->toArray()); $skuInfo = $request->sku; - $skuInfo['external_sku_id'] = $request->goods['goods_code'] . '_' . $request->sku['sku_code']; - $skuInfo['name'] = $request->goods['title'] . $request->sku['title']; + $goodService = new GoodService(); + $skuInfo['name'] = $goodService->getTypeFormatName($request->goods['type_id']) . $request->sku['title']; $sku->update($skuInfo); $this->setAfterUpdateForLog($sku->toArray()); $this->addLog($id, 'update'); @@ -257,6 +258,7 @@ class GoodsSkusController extends Controller */ private function saleStock($request) { + $updateIds = []; DB::beginTransaction(); try { $logs = []; @@ -276,11 +278,14 @@ class GoodsSkusController extends Controller $goodsSku->save(); $costLog['after_update'] = $goodsSku->sale_stock; $logs[] = $costLog; + $updateIds[] = $sku['id']; } $log = new LogModel(); $log->batchInsert($logs); DB::commit(); - + if(!empty($updateIds)){ + event(new BatchStockUpdateEvent($updateIds)); + } } catch (\Exception $exception) { DB::rollBack(); $this->res = [ diff --git a/app/Services/Good/GoodService.php b/app/Services/Good/GoodService.php index f965c06..4f43cb0 100644 --- a/app/Services/Good/GoodService.php +++ b/app/Services/Good/GoodService.php @@ -33,6 +33,17 @@ class GoodService return Goods::query()->firstOrCreate($params, $saveData); } + public function getTypeFormatName($typeId) + { + $goodsType = GoodsType::query()->with("parentType")->where('id', "=", $typeId) + ->first()->toArray(); + $parentName = ""; + if (!empty($goodsType['parent_type']['name'])) { + $parentName = $goodsType['parent_type']['name'] ?? ''; + } + return $goodsType['name'] . " " .$parentName; + } + public function getRandomCode() { $time = time();