From c2fcd229cfed28329b9cbb353bc3720c139394a6 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Thu, 10 Apr 2025 17:49:54 +0800 Subject: [PATCH] feat : chef name --- .../ServiceTrait/Api/CateringTrait.php | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/Service/ServiceTrait/Api/CateringTrait.php b/app/Service/ServiceTrait/Api/CateringTrait.php index 71d38b5..61ba2b8 100644 --- a/app/Service/ServiceTrait/Api/CateringTrait.php +++ b/app/Service/ServiceTrait/Api/CateringTrait.php @@ -10,6 +10,7 @@ use App\Model\OrderOptionCateringLog; use App\Model\Sku; use App\Model\Spu; use App\Service\ServiceTrait\Common\CycleTrait; +use Hyperf\DbConnection\Db; use Hyperf\Di\Annotation\Inject; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; @@ -112,10 +113,11 @@ trait CateringTrait */ private function manageSubMealCateringLog(): void { - $orderGoods = $this->orderGoodModel->where('order_id',$this->orderInfo->id)->pluck('copies','sku_id')->toArray(); + $orderGoods = $this->orderGoodModel->where('order_id',$this->orderInfo->id)->select('sku_id',Db::raw('SUM(`quantity`) as quantity'))->groupBy('sku_id')->get(); + if ($orderGoods->isEmpty()) return; - foreach ($orderGoods as $key => $orderGood) { - $logInfo = $this->orderMealCateringLogModel->getInfoBySiteIdAndCycleIdAndSkuId($this->orderInfo->site_id,$this->orderInfo->cycle_id,(int)$key); + foreach ($orderGoods->toArray() as $orderGood) { + $logInfo = $this->orderMealCateringLogModel->getInfoBySiteIdAndCycleIdAndSkuId($this->orderInfo->site_id,$this->orderInfo->cycle_id,(int)$orderGood['sku_id']); if (empty($logInfo)) { $this->log->error(__CLASS__.':Function:refundCallBackHandle:manageSubMealCateringLog:订单套餐配餐记录不存在,订单信息:'.json_encode($this->orderInfo->toArray()).':订单商品信息:'.json_encode($orderGoods)); @@ -127,7 +129,7 @@ trait CateringTrait continue; } - $logInfo->quantity = $logInfo->quantity - $orderGood; + $logInfo->quantity = $logInfo->quantity - $orderGood['quantity']; if (!$logInfo->save()) { $this->log->error(__CLASS__.':Function:refundCallBackHandle:manageSubMealCateringLog:修改配餐记录失败,订单信息:'.json_encode($this->orderInfo->toArray()).':订单商品信息:'.json_encode($orderGoods)); @@ -191,24 +193,25 @@ trait CateringTrait */ private function manageAddMealCateringLog(): bool { - $orderGoods = $this->orderGoodModel->where('order_id',$this->orderInfo->id)->pluck('copies','sku_id')->toArray(); + $orderGoods = $this->orderGoodModel->where('order_id',$this->orderInfo->id)->select('sku_id',Db::raw('SUM(`quantity`) as quantity'))->groupBy('sku_id')->get(); + if ($orderGoods->isEmpty()) return false; - foreach ($orderGoods as $key => $orderGood) { - $logInfo = $this->orderMealCateringLogModel->getInfoBySiteIdAndCycleIdAndSkuId($this->orderInfo->site_id,$this->orderInfo->cycle_id,(int)$key); + foreach ($orderGoods->toArray() as $orderGood) { + $logInfo = $this->orderMealCateringLogModel->getInfoBySiteIdAndCycleIdAndSkuId($this->orderInfo->site_id,$this->orderInfo->cycle_id,(int)$orderGood['sku_id']); if (empty($logInfo)) { $logInfo = new OrderMealCateringLog(); $logInfo->site_id = $this->orderInfo->site_id; $logInfo->cycle_id = $this->orderInfo->cycle_id; - $logInfo->sku_id = (int)$key; + $logInfo->sku_id = (int)$orderGood['sku_id']; $logInfo->quantity = 0; $logInfo->status = CateringCode::CATERING_STATUS_UNDERWAY; } if ($logInfo->status == CateringCode::CATERING_STATUS_FINISH) return false; - $logInfo->quantity = $logInfo->quantity + $orderGood; + $logInfo->quantity = $logInfo->quantity + $orderGood['quantity']; if (!$logInfo->save()) return false; }