diff --git a/app/Http/Controllers/Shop/ShopsController.php b/app/Http/Controllers/Shop/ShopsController.php index 2ae90be..6300fba 100644 --- a/app/Http/Controllers/Shop/ShopsController.php +++ b/app/Http/Controllers/Shop/ShopsController.php @@ -13,6 +13,7 @@ use App\Models\ShopShip; use App\Services\Business\KuaiTuanTuan\FaceSheet; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Validator; use App\Services\Business\BusinessFactory; use Illuminate\Validation\Rule; @@ -131,6 +132,7 @@ class ShopsController extends Controller $business->bindGoods($request->get('data')); } if ('orders' === $request->get('type')) { + Log::info('order',[$request->get('data')]); $business->saveOrders($request->get('data')); } diff --git a/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php b/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php index 7b08551..a8be2d4 100644 --- a/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php +++ b/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php @@ -2,8 +2,10 @@ namespace App\Services\Business\KuaiTuanTuan; +use App\Events\BusinessOrdersUpdate; use App\Models\BusinessAfterSaleOrder; use App\Models\BusinessGoodsSku; +use App\Models\BusinessOrderItem; use App\Models\GoodsSku; use App\Models\GroupGoods; use App\Models\Shop; @@ -185,11 +187,37 @@ class KuaiTuanTuan extends BusinessClient } $queryOrder = $res[$responseName]['order_info']; + $needUpdate = false; if ($order->shipping_status != $queryOrder['shipping_status']) { $order->shipping_status = $queryOrder['shipping_status']; + $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) diff --git a/app/Services/GoodSku/GoodSkuService.php b/app/Services/GoodSku/GoodSkuService.php index b42aef8..16d26bf 100644 --- a/app/Services/GoodSku/GoodSkuService.php +++ b/app/Services/GoodSku/GoodSkuService.php @@ -121,8 +121,11 @@ class GoodSkuService ->select("external_sku_id", DB::raw("SUM(goods_number) - SUM(already_cancel_number) as number")) ->whereIn("external_sku_id", $externalSkuIds) ->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(); + + Log::info("盘点未发货数据".implode(",",$externalSkuIds),[$unshippedDataCollect]); + //重组订单 foreach ($unshippedDataCollect as $businessOrderItem) { if (is_null($businessOrderItem['goods_sku'])) {