From a2d081d387d3b3f0b2ab4cbb1563f5ef23ed2707 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Mon, 24 Mar 2025 14:51:46 +0800 Subject: [PATCH] feat : caterer --- app/Controller/Admin/CatererController.php | 53 +++++++++++ app/Service/Admin/System/CatererService.php | 97 +++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 app/Controller/Admin/CatererController.php create mode 100644 app/Service/Admin/System/CatererService.php diff --git a/app/Controller/Admin/CatererController.php b/app/Controller/Admin/CatererController.php new file mode 100644 index 0000000..61ad24c --- /dev/null +++ b/app/Controller/Admin/CatererController.php @@ -0,0 +1,53 @@ +catererList(); + } + + /** + * 配餐详细列表 + * @return array + */ + #[RequestMapping(path: "caterer_detail_list", methods: "GET")] + #[Scene(scene: "caterer_detail_list")] + public function catererDetailList() + { + return (new CatererService)->handle(); + } + + /** + * 设置配餐数据 + * @return array + */ + #[RequestMapping(path: "setting_caterer", methods: "POST")] + #[Scene(scene: "setting_caterer")] + public function settingCaterer() + { + return (new CatererService)->edit(); + } +} diff --git a/app/Service/Admin/System/CatererService.php b/app/Service/Admin/System/CatererService.php new file mode 100644 index 0000000..2b38672 --- /dev/null +++ b/app/Service/Admin/System/CatererService.php @@ -0,0 +1,97 @@ +request->input('city_id',0); + $limit = (int)$this->request->input('limit',10); + if (empty($cityId)) return $this->return->success('success',['list' => []]); + + $list = $this + ->catererModel + ->leftJoin('admin_user', 'admin_user.id', '=', 'caterer.user_id') + ->where('admin_user.is_del',UserCode::IS_NO_DEL) + ->where('admin_user.status',UserCode::ENABLE) + ->whereIn('admin_user.role_id',[RoleCode::MEAL_CATERING,RoleCode::OPTION_CATERING]) + ->where('admin_user.city_id', $cityId) + ->paginate($limit,['admin_user.id','admin_user.chinese_name','caterer.kitchen_id','caterer.type','admin_user.role_id','admin_user.status']); + + if ($list->isEmpty()) return $this->return->success('success',['list' => []]); + $list = $list->toArray(); + $kitchenIds = array_unique(array_column($list,'kitchen_id')); + $kitchenList = $this->kitchenModel->getDataByIds($kitchenIds); + $kitchenList = array_column($kitchenList,null,'id'); + + foreach ($list as &$item){ + $item['kitchen_name'] = $kitchenList[$item['kitchen_id']]['name'] ?? ''; + } + + return $this->return->success('success',['list' => $list]); + } + + /** + * @return array + */ + public function catererList() + { + return $this->return->success('success',['list' => []]); + } + + /** + * @return array + */ + public function edit(): array + { + $userId = (int)$this->request->input('user_id'); + $kitchenId = $this->request->input('kitchen_id'); + + $kitchenInfo = $this->kitchenModel->getInfoById($kitchenId); + if (empty($kitchenInfo)) throw new ErrException('该厨房信息为空'); + + $info = $this->catererModel->where('user_id',$userId)->first(); + if (empty($info)) throw new ErrException('该用户信息为空'); + + $info->kitchen_id = $kitchenId; + if (!$info->save()) throw new ErrException('设置配餐信息失败'); + + return $this->return->success(); + } +} \ No newline at end of file