From e3ecd93b2dd70055015d3249dd553b1c5371ae85 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Mon, 10 Mar 2025 18:00:55 +0800 Subject: [PATCH] feat : catering --- app/Controller/Admin/CateringController.php | 4 ++-- .../Admin/Catering/CateringBaseService.php | 2 +- .../Admin/Catering/CycleOrderCountService.php | 19 +++++++++++++++++++ .../Admin/Catering/Meal/CycleListService.php | 17 +++++++++++++++-- .../Catering/Option/CycleListService.php | 12 ++++++++++++ .../ServiceTrait/Api/GoodOrderTrait.php | 11 ----------- app/Service/ServiceTrait/CateringTrait.php | 13 +++++++++++++ 7 files changed, 62 insertions(+), 16 deletions(-) create mode 100644 app/Service/Admin/Catering/CycleOrderCountService.php diff --git a/app/Controller/Admin/CateringController.php b/app/Controller/Admin/CateringController.php index 8384b20..b6ffd49 100644 --- a/app/Controller/Admin/CateringController.php +++ b/app/Controller/Admin/CateringController.php @@ -36,13 +36,13 @@ class CateringController #[Scene(scene: "meal_remain_count")] public function remainMealCateringCount() { - + return (new MealCycleListService)->remainCount(); } #[RequestMapping(path: "option/remain_count", methods: "GET")] #[Scene(scene: "option_remain_count")] public function remainOptionCateringCount() { - + return (new OptionCycleListService)->remainCount(); } } diff --git a/app/Service/Admin/Catering/CateringBaseService.php b/app/Service/Admin/Catering/CateringBaseService.php index 277358d..cb7ddcd 100644 --- a/app/Service/Admin/Catering/CateringBaseService.php +++ b/app/Service/Admin/Catering/CateringBaseService.php @@ -34,7 +34,7 @@ abstract class CateringBaseService extends BaseService protected int $cycleId; /** - * @var int + * @var int todo 厨房id 自选的需要 */ protected int $kitchenId; diff --git a/app/Service/Admin/Catering/CycleOrderCountService.php b/app/Service/Admin/Catering/CycleOrderCountService.php new file mode 100644 index 0000000..706c302 --- /dev/null +++ b/app/Service/Admin/Catering/CycleOrderCountService.php @@ -0,0 +1,19 @@ +return->success('success',['list' => array_values($res)]); } + + /** + * @return array + */ + public function remainCount(): array + { + $skuInfo = $this->skuModel->getInfoById((int)$this->request->input('sku_id')); + if (empty($skuInfo)) throw new ErrException('该套餐不存在,请刷新后重试'); + $count = $this->orderMealCateringLogModel + ->where('cycle_id',$this->cycleId) + ->where('sku_id',$skuInfo->id) + ->sum('quantity') ?? 0; + + return $this->return->success('success',['count' => $count]); + } } \ No newline at end of file diff --git a/app/Service/Admin/Catering/Option/CycleListService.php b/app/Service/Admin/Catering/Option/CycleListService.php index eb8922f..1419ad3 100644 --- a/app/Service/Admin/Catering/Option/CycleListService.php +++ b/app/Service/Admin/Catering/Option/CycleListService.php @@ -43,4 +43,16 @@ class CycleListService extends CateringBaseService return $this->return->success('success',['list' => array_values($res)]); } + + /** + * @return array + */ + public function remainCount(): array + { + $count = $this->orderOptionCateringLogModel + ->where('cycle_id',$this->cycleId) + ->sum('quantity') ?? 0; + + return $this->return->success('success',['count' => $count]); + } } \ No newline at end of file diff --git a/app/Service/ServiceTrait/Api/GoodOrderTrait.php b/app/Service/ServiceTrait/Api/GoodOrderTrait.php index 0badca6..898edd7 100644 --- a/app/Service/ServiceTrait/Api/GoodOrderTrait.php +++ b/app/Service/ServiceTrait/Api/GoodOrderTrait.php @@ -44,17 +44,6 @@ trait GoodOrderTrait #[Inject] protected OrderGood $orderGoodModel; - /** - * @var OrderOptionCateringLog - */ - #[Inject] - protected OrderOptionCateringLog $orderOptionCateringLogModel; - - /** - * @var OrderMealCateringLog - */ - #[Inject] - protected OrderMealCateringLog $orderMealCateringLogModel; /** * @return void diff --git a/app/Service/ServiceTrait/CateringTrait.php b/app/Service/ServiceTrait/CateringTrait.php index 15b0c6c..5b81f8a 100644 --- a/app/Service/ServiceTrait/CateringTrait.php +++ b/app/Service/ServiceTrait/CateringTrait.php @@ -5,12 +5,23 @@ namespace App\Service\ServiceTrait; use App\Constants\Common\OrderCode; use App\Model\OrderMealCateringLog; use App\Model\OrderOptionCateringLog; +use Hyperf\Di\Annotation\Inject; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; trait CateringTrait { + /** + * @var OrderOptionCateringLog + */ + #[Inject] + protected OrderOptionCateringLog $orderOptionCateringLogModel; + /** + * @var OrderMealCateringLog + */ + #[Inject] + protected OrderMealCateringLog $orderMealCateringLogModel; /** * @return bool 添加失败需要退款 @@ -49,6 +60,7 @@ trait CateringTrait // todo 减少可以不减少根据订单 cycle_id 获取加一碗米饭 的数量 减少查询压力 // $addStapleFoodNum = 0; + //todo 需要绑定一个 kitchen_id $logInfo = $this->orderOptionCateringLogModel->getInfoBySiteIdAndCycleId($this->orderInfo->site_id, $this->orderInfo->cycle_id); if (empty($logInfo)) { @@ -108,6 +120,7 @@ trait CateringTrait //todo 根据订单 cycle_id 获取加一碗米饭 的数量 $addStapleFoodNum = 0; + //todo 需要绑定一个 kitchen_id $logInfo = $this->orderOptionCateringLogModel->getInfoBySiteIdAndCycleId($this->orderInfo->site_id, $this->orderInfo->cycle_id); if (empty($logInfo)) {