From 10ec82276628df89d0f2edaf05ef795b9a21cef7 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 18 Nov 2025 16:20:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=8D=E7=A9=B9=E5=A4=96=E5=8D=96--=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E7=94=A8=E6=88=B7=E7=AB=AF=E5=95=86=E5=93=81=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=8A=9F=E8=83=BD=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sky/controller/admin/DishController.java | 2 +- .../controller/admin/SetmealController.java | 2 +- .../controller/user/CategoryController.java | 33 ++++++++++++ .../sky/controller/user/DishController.java | 43 +++++++++++++++ .../controller/user/SetmealController.java | 53 +++++++++++++++++++ .../java/com/sky/mapper/SetmealMapper.java | 20 +++++++ .../java/com/sky/service/DishService.java | 7 +++ .../java/com/sky/service/SetmealService.java | 16 ++++++ .../com/sky/service/impl/DishServiceImpl.java | 25 +++++++++ .../sky/service/impl/SetmealServiceImpl.java | 20 +++++++ .../main/resources/mapper/SetmealMapper.xml | 15 ++++++ 11 files changed, 234 insertions(+), 2 deletions(-) create mode 100644 sky-server/src/main/java/com/sky/controller/user/CategoryController.java create mode 100644 sky-server/src/main/java/com/sky/controller/user/DishController.java create mode 100644 sky-server/src/main/java/com/sky/controller/user/SetmealController.java diff --git a/sky-server/src/main/java/com/sky/controller/admin/DishController.java b/sky-server/src/main/java/com/sky/controller/admin/DishController.java index fa1bae3..1bc2457 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/DishController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/DishController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; -@RestController +@RestController("adminDishController") @Slf4j @Api(tags = "菜品相关接口") @RequestMapping("/admin/dish") diff --git a/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java b/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java index 844a669..eff3f33 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java @@ -17,7 +17,7 @@ import java.util.List; /** * 套餐管理 */ -@RestController +@RestController("adminSetmealController") @RequestMapping("/admin/setmeal") @Api(tags = "套餐相关接口") @Slf4j diff --git a/sky-server/src/main/java/com/sky/controller/user/CategoryController.java b/sky-server/src/main/java/com/sky/controller/user/CategoryController.java new file mode 100644 index 0000000..ab80e1f --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/user/CategoryController.java @@ -0,0 +1,33 @@ +package com.sky.controller.user; + +import com.sky.entity.Category; +import com.sky.result.Result; +import com.sky.service.CategoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +@RestController("userCategoryController") +@RequestMapping("/user/category") +@Api(tags = "C端-分类接口") +public class CategoryController { + + @Autowired + private CategoryService categoryService; + + /** + * 查询分类 + * @param type + * @return + */ + @GetMapping("/list") + @ApiOperation("查询分类") + public Result> list(Integer type) { + List list = categoryService.list(type); + return Result.success(list); + } +} diff --git a/sky-server/src/main/java/com/sky/controller/user/DishController.java b/sky-server/src/main/java/com/sky/controller/user/DishController.java new file mode 100644 index 0000000..53782aa --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/user/DishController.java @@ -0,0 +1,43 @@ +package com.sky.controller.user; + +import com.sky.constant.StatusConstant; +import com.sky.entity.Dish; +import com.sky.result.Result; +import com.sky.service.DishService; +import com.sky.vo.DishVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +@RestController("userDishController") +@RequestMapping("/user/dish") +@Slf4j +@Api(tags = "C端-菜品浏览接口") +public class DishController { + @Autowired + private DishService dishService; + + /** + * 根据分类id查询菜品 + * + * @param categoryId + * @return + */ + @GetMapping("/list") + @ApiOperation("根据分类id查询菜品") + public Result> list(Long categoryId) { + Dish dish = new Dish(); + dish.setCategoryId(categoryId); + dish.setStatus(StatusConstant.ENABLE);//查询起售中的菜品 + + List list = dishService.listWithFlavor(dish); + + return Result.success(list); + } + +} diff --git a/sky-server/src/main/java/com/sky/controller/user/SetmealController.java b/sky-server/src/main/java/com/sky/controller/user/SetmealController.java new file mode 100644 index 0000000..5557e7c --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/user/SetmealController.java @@ -0,0 +1,53 @@ +package com.sky.controller.user; + +import com.sky.constant.StatusConstant; +import com.sky.entity.Setmeal; +import com.sky.result.Result; +import com.sky.service.SetmealService; +import com.sky.vo.DishItemVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +@RestController("userSetmealController") +@RequestMapping("/user/setmeal") +@Api(tags = "C端-套餐浏览接口") +public class SetmealController { + @Autowired + private SetmealService setmealService; + + /** + * 条件查询 + * + * @param categoryId + * @return + */ + @GetMapping("/list") + @ApiOperation("根据分类id查询套餐") + public Result> list(Long categoryId) { + Setmeal setmeal = new Setmeal(); + setmeal.setCategoryId(categoryId); + setmeal.setStatus(StatusConstant.ENABLE); + + List list = setmealService.list(setmeal); + return Result.success(list); + } + + /** + * 根据套餐id查询包含的菜品列表 + * + * @param id + * @return + */ + @GetMapping("/dish/{id}") + @ApiOperation("根据套餐id查询包含的菜品列表") + public Result> dishList(@PathVariable("id") Long id) { + List list = setmealService.getDishItemById(id); + return Result.success(list); + } +} diff --git a/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java b/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java index d0a7a25..3c47419 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java @@ -5,11 +5,14 @@ import com.sky.annotation.AutoFill; import com.sky.dto.SetmealPageQueryDTO; import com.sky.entity.Setmeal; import com.sky.enumeration.OperationType; +import com.sky.vo.DishItemVO; import com.sky.vo.SetmealVO; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; +import java.util.List; + @Mapper public interface SetmealMapper { @@ -55,4 +58,21 @@ public interface SetmealMapper { * @param setmeal */ void update(Setmeal setmeal); + + /** + * 动态条件查询套餐 + * @param setmeal + * @return + */ + List list(Setmeal setmeal); + + /** + * 根据套餐id查询菜品选项 + * @param setmealId + * @return + */ + @Select("select sd.name, sd.copies, d.image, d.description " + + "from setmeal_dish sd left join dish d on sd.dish_id = d.id " + + "where sd.setmeal_id = #{setmealId}") + List getDishItemBySetmealId(Long setmealId); } diff --git a/sky-server/src/main/java/com/sky/service/DishService.java b/sky-server/src/main/java/com/sky/service/DishService.java index b76b210..8cd2b63 100644 --- a/sky-server/src/main/java/com/sky/service/DishService.java +++ b/sky-server/src/main/java/com/sky/service/DishService.java @@ -53,4 +53,11 @@ public interface DishService { * @return */ List list(Long categoryId); + + /** + * 条件查询菜品和口味 + * @param dish + * @return + */ + List listWithFlavor(Dish dish); } diff --git a/sky-server/src/main/java/com/sky/service/SetmealService.java b/sky-server/src/main/java/com/sky/service/SetmealService.java index b957bd4..8048e28 100644 --- a/sky-server/src/main/java/com/sky/service/SetmealService.java +++ b/sky-server/src/main/java/com/sky/service/SetmealService.java @@ -2,7 +2,9 @@ package com.sky.service; import com.sky.dto.SetmealDTO; import com.sky.dto.SetmealPageQueryDTO; +import com.sky.entity.Setmeal; import com.sky.result.PageResult; +import com.sky.vo.DishItemVO; import com.sky.vo.SetmealVO; import java.util.List; @@ -47,4 +49,18 @@ public interface SetmealService { * @param id */ void startOrStop(Integer status, Long id); + + /** + * 条件查询 + * @param setmeal + * @return + */ + List list(Setmeal setmeal); + + /** + * 根据id查询菜品选项 + * @param id + * @return + */ + List getDishItemById(Long id); } \ No newline at end of file diff --git a/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java index 895e271..fa4d6dd 100644 --- a/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -161,4 +162,28 @@ public class DishServiceImpl implements DishService { .build(); return dishMapper.list(dish); } + + /** + * 条件查询菜品和口味 + * @param dish + * @return + */ + public List listWithFlavor(Dish dish) { + List dishList = dishMapper.list(dish); + + List dishVOList = new ArrayList<>(); + + for (Dish d : dishList) { + DishVO dishVO = new DishVO(); + BeanUtils.copyProperties(d,dishVO); + + //根据菜品id查询对应的口味 + List flavors = dishFlavorMapper.getByDishId(d.getId()); + + dishVO.setFlavors(flavors); + dishVOList.add(dishVO); + } + + return dishVOList; + } } diff --git a/sky-server/src/main/java/com/sky/service/impl/SetmealServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/SetmealServiceImpl.java index 263487c..ce37d02 100644 --- a/sky-server/src/main/java/com/sky/service/impl/SetmealServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/SetmealServiceImpl.java @@ -16,6 +16,7 @@ import com.sky.mapper.SetmealDishMapper; import com.sky.mapper.SetmealMapper; import com.sky.result.PageResult; import com.sky.service.SetmealService; +import com.sky.vo.DishItemVO; import com.sky.vo.SetmealVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -168,4 +169,23 @@ public class SetmealServiceImpl implements SetmealService { .build(); setmealMapper.update(setmeal); } + + /** + * 条件查询 + * @param setmeal + * @return + */ + public List list(Setmeal setmeal) { + List list = setmealMapper.list(setmeal); + return list; + } + + /** + * 根据id查询菜品选项 + * @param id + * @return + */ + public List getDishItemById(Long id) { + return setmealMapper.getDishItemBySetmealId(id); + } } diff --git a/sky-server/src/main/resources/mapper/SetmealMapper.xml b/sky-server/src/main/resources/mapper/SetmealMapper.xml index 915b173..fe6fa83 100644 --- a/sky-server/src/main/resources/mapper/SetmealMapper.xml +++ b/sky-server/src/main/resources/mapper/SetmealMapper.xml @@ -61,4 +61,19 @@ where id = #{id} + + \ No newline at end of file