From 6d9fbe57e1d365c851dc2b2d986ef2b7673d4cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Mon, 31 Oct 2022 14:14:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#10000=20=E4=BC=98=E5=8C=96=E5=BF=AB?= =?UTF-8?q?=E5=9B=A2=E5=9B=A2=E5=95=86=E5=93=81=E5=85=B3=E8=81=94=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Business/BusinessGoodsSkusController.php | 3 ++- app/Http/Controllers/Shop/ShopsController.php | 3 +++ app/Listeners/UpdateBusinessGoodsStock.php | 2 +- app/Models/BusinessGoodsSku.php | 1 + app/Services/Business/KuaiTuanTuan/Goods.php | 3 +++ app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php | 6 ------ 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Business/BusinessGoodsSkusController.php b/app/Http/Controllers/Business/BusinessGoodsSkusController.php index 70e1314..ee796c9 100644 --- a/app/Http/Controllers/Business/BusinessGoodsSkusController.php +++ b/app/Http/Controllers/Business/BusinessGoodsSkusController.php @@ -29,6 +29,7 @@ class BusinessGoodsSkusController extends Controller { $businessGoodsSkus = BusinessGoodsSku::query() ->filter() + ->where('quantity_type', 0) ->with(['shop:id,name']) ->paginate($request->get('per_page')); @@ -77,7 +78,7 @@ class BusinessGoodsSkusController extends Controller public function syncStock($id, Request $request) { - $businessGoodsSku = BusinessGoodsSku::query()->find($id); + $businessGoodsSku = BusinessGoodsSku::query()->where('is_sync', 1)->find($id); [$goodsCode, $skuCode] = explode('_', $businessGoodsSku->external_sku_id); $sku = GoodsSku::query()->where('sku_code', $skuCode) ->whereHas('goods', function ($query) use ($goodsCode) { diff --git a/app/Http/Controllers/Shop/ShopsController.php b/app/Http/Controllers/Shop/ShopsController.php index 527eca4..0f7873b 100644 --- a/app/Http/Controllers/Shop/ShopsController.php +++ b/app/Http/Controllers/Shop/ShopsController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Shop; use App\Http\Controllers\Controller; +use App\Models\BusinessGoodsSku; use App\Models\GoodsSku; use App\Models\Shop; use App\Http\Resources\ShopsResource; @@ -171,6 +172,8 @@ class ShopsController extends Controller public function downloadGoods($id, Request $request) { $shop = Shop::query()->find($id); + // 删除已下载的商品数据 + BusinessGoodsSku::query()->where('shop_id', $shop->id)->delete(); $business = BusinessFactory::init()->make($shop->plat_id); $business->setShop($shop); $business->downloadGoodsListAndBind(); diff --git a/app/Listeners/UpdateBusinessGoodsStock.php b/app/Listeners/UpdateBusinessGoodsStock.php index 3920617..992cc21 100644 --- a/app/Listeners/UpdateBusinessGoodsStock.php +++ b/app/Listeners/UpdateBusinessGoodsStock.php @@ -62,7 +62,7 @@ class UpdateBusinessGoodsStock implements ShouldQueue foreach ($shops as $shop) { $num = $event->goodsSku->stock; - $businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('external_sku_id', $event->businessGoods['external_sku_id'])->get(); + $businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('is_sync', 1)->where('external_sku_id', $event->businessGoods['external_sku_id'])->get(); foreach ($businessGoodsSkus as $businessGoodsSku) { BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false); } diff --git a/app/Models/BusinessGoodsSku.php b/app/Models/BusinessGoodsSku.php index ba93acc..1fdc5da 100644 --- a/app/Models/BusinessGoodsSku.php +++ b/app/Models/BusinessGoodsSku.php @@ -70,6 +70,7 @@ class BusinessGoodsSku extends Model 'theoretically_refund_amount', 'thumb_url', 'verification_number', + 'quantity_type' ]; public function shop() diff --git a/app/Services/Business/KuaiTuanTuan/Goods.php b/app/Services/Business/KuaiTuanTuan/Goods.php index 95bd224..a7eed1b 100644 --- a/app/Services/Business/KuaiTuanTuan/Goods.php +++ b/app/Services/Business/KuaiTuanTuan/Goods.php @@ -31,6 +31,9 @@ class Goods $businessGood['goods_image_list'] = json_encode($businessGood['goods_image_list'], 256); foreach ($skuList as $sku) { $sku['spec_list'] = json_encode($sku['spec_list'], 256); + if ((int)$businessGood['quantity_type']) { + $businessGood['is_sync'] = 0; + } $data = array_merge($businessGood, $sku); $businessGoodSku = BusinessGoodsSku::firstOrNew( ['shop_id' => $shopId, 'goods_id' => $businessGood['goods_id'], 'sku_id' => $sku['sku_id']], diff --git a/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php b/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php index c645c4a..b2a0e57 100644 --- a/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php +++ b/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php @@ -123,12 +123,6 @@ class KuaiTuanTuan extends BusinessClient $publicParams['sign'] = $this->getSign($publicParams); $res = $this->formDataPostRequest($url, $publicParams); if (isset($res['error_response'])) { - // ToDo 重构异常处理 - if ('业务服务错误' === $res['error_response']['error_msg'] && '该店铺下不存在该商品' === $res['error_response']['sub_msg']) { - BusinessGoodsSku::query()->where('goods_id', $appendParams['goods_id'])->where('sku_id', $appendParams['sku_id'])->delete(); - } else { -// throw new \RuntimeException($res['error_response']['error_msg'] . ':' . $res['error_response']['error_msg']); - } Log::info(json_encode($res, 256)); }