From e9bdc8baeb5656c18b1ef0b87110743467802652 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Mon, 8 Jan 2024 22:53:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A5=97=E9=A4=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/sky/dto/SetmealDTO.java | 22 ++++++--------- .../controller/admin/CategoryController.java | 1 + .../controller/admin/SetmealController.java | 27 +++++++++++++++++++ .../com/sky/mapper/SetMealDishMapper.java | 8 ++++++ .../java/com/sky/mapper/SetmealMapper.java | 14 +++++++++- .../java/com/sky/service/SetmealService.java | 17 ++++++++---- .../sky/service/impl/SetmealServiceImpl.java | 25 +++++++++++++++++ .../resources/mapper/SetMealDishMapper.xml | 10 +++++++ .../main/resources/mapper/SetmealMapper.xml | 8 ++++++ 9 files changed, 112 insertions(+), 20 deletions(-) diff --git a/sky-pojo/src/main/java/com/sky/dto/SetmealDTO.java b/sky-pojo/src/main/java/com/sky/dto/SetmealDTO.java index 3754aca..3c1d019 100644 --- a/sky-pojo/src/main/java/com/sky/dto/SetmealDTO.java +++ b/sky-pojo/src/main/java/com/sky/dto/SetmealDTO.java @@ -2,6 +2,7 @@ package com.sky.dto; import com.sky.entity.SetmealDish; import lombok.Data; + import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; @@ -11,26 +12,19 @@ import java.util.List; public class SetmealDTO implements Serializable { private Long id; - - //分类id + // 分类id private Long categoryId; - - //套餐名称 + // 套餐名称 private String name; - - //套餐价格 + // 套餐价格 private BigDecimal price; - - //状态 0:停用 1:启用 + // 状态 0:停用 1:启用 private Integer status; - - //描述信息 + // 描述信息 private String description; - - //图片 + // 图片 private String image; - - //套餐菜品关系 + // 套餐菜品关系 private List setmealDishes = new ArrayList<>(); } diff --git a/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java b/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java index 34c31f2..971f0a2 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java @@ -104,6 +104,7 @@ public class CategoryController { @GetMapping("/list") @ApiOperation("根据类型查询分类") public Result> list(Integer type) { + log.info("根据类型查询分类 type:{}", type); List list = categoryService.list(type); return Result.success(list); } 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 7796ec5..b009666 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 @@ -1,9 +1,36 @@ package com.sky.controller.admin; +import com.sky.dto.SetmealDTO; +import com.sky.result.Result; +import com.sky.service.SetmealService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + @RestController +@RequestMapping("/admin/setmeal") +@Api(tags = "套餐相关接口") @Slf4j public class SetmealController { + @Resource + private SetmealService setmealService; + + /** + * 新增套餐 + * + * @param setmealDTO SetmealDTO + * @return Result + */ + @ApiOperation("新增套餐") + @PostMapping() + public Result save(@RequestBody SetmealDTO setmealDTO) { + setmealService.saveWithDish(setmealDTO); + return Result.success(); + } } diff --git a/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java b/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java index bf04f04..2eeeeb4 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java @@ -2,6 +2,7 @@ package com.sky.mapper; import com.sky.annotation.AutoFill; import com.sky.entity.Setmeal; +import com.sky.entity.SetmealDish; import com.sky.enumeration.OperationType; import com.sky.vo.DishItemVO; import org.apache.ibatis.annotations.Mapper; @@ -33,4 +34,11 @@ public interface SetMealDishMapper { */ @AutoFill(OperationType.UPDATE) void update(Setmeal setmeal); + + /** + * 保存套餐和菜品的关联关系 + * + * @param setmealDishes List + */ + void insertBatch(List setmealDishes); } 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 82c6f9c..478b6cf 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java @@ -1,9 +1,10 @@ package com.sky.mapper; +import com.sky.annotation.AutoFill; import com.sky.entity.Setmeal; +import com.sky.enumeration.OperationType; import com.sky.vo.DishItemVO; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Select; import java.util.List; @@ -11,6 +12,7 @@ import java.util.List; public interface SetmealMapper { /** * 根据分类id查询套餐的数量 + * * @param id Long * @return Integer */ @@ -18,6 +20,7 @@ public interface SetmealMapper { /** * 动态条件查询套餐 + * * @param setmeal Setmeal * @return List */ @@ -25,8 +28,17 @@ public interface SetmealMapper { /** * 根据套餐id查询菜品选项 + * * @param setmealId * @return */ List getDishItemBySetmealId(Long setmealId); + + /** + * 向套餐表插入数据 + * + * @param setmeal Setmeal + */ + @AutoFill(OperationType.INSERT) + void insert(Setmeal setmeal); } 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 419f382..677c0d8 100644 --- a/sky-server/src/main/java/com/sky/service/SetmealService.java +++ b/sky-server/src/main/java/com/sky/service/SetmealService.java @@ -1,27 +1,34 @@ 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; public interface SetmealService { /** * 条件查询 - * @param setmeal - * @return + * + * @param setmeal Setmeal + * @return List */ List list(Setmeal setmeal); /** * 根据id查询菜品选项 + * * @param id * @return */ List getDishItemById(Long id); + + /** + * 新增套餐,同时需要保存套餐和菜品的关联关系 + * + * @param setmealDTO SetmealDTO + */ + void saveWithDish(SetmealDTO setmealDTO); } 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 8ac37bf..e264a36 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 @@ -1,12 +1,15 @@ package com.sky.service.impl; +import com.sky.dto.SetmealDTO; import com.sky.entity.Setmeal; +import com.sky.entity.SetmealDish; import com.sky.mapper.DishMapper; import com.sky.mapper.SetMealDishMapper; import com.sky.mapper.SetmealMapper; import com.sky.service.SetmealService; import com.sky.vo.DishItemVO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -45,4 +48,26 @@ public class SetmealServiceImpl implements SetmealService { public List getDishItemById(Long id) { return setmealMapper.getDishItemBySetmealId(id); } + + /** + * 新增套餐,同时需要保存套餐和菜品的关联关系 + * + * @param setmealDTO SetmealDTO + */ + @Override + public void saveWithDish(SetmealDTO setmealDTO) { + Setmeal setmeal = new Setmeal(); + BeanUtils.copyProperties(setmealDTO, setmeal); + + // 向套餐表插入数据 + setmealMapper.insert(setmeal); + // 获取生成的套餐id + Long setmealId = setmeal.getId(); + List setmealDishes = setmealDTO.getSetmealDishes(); + setmealDishes.forEach(setmealDish -> { + setmealDish.setSetmealId(setmealId); + }); + // 保存套餐和菜品的关联关系 + setmealDishMapper.insertBatch(setmealDishes); + } } diff --git a/sky-server/src/main/resources/mapper/SetMealDishMapper.xml b/sky-server/src/main/resources/mapper/SetMealDishMapper.xml index 7b9b186..ae53299 100644 --- a/sky-server/src/main/resources/mapper/SetMealDishMapper.xml +++ b/sky-server/src/main/resources/mapper/SetMealDishMapper.xml @@ -2,6 +2,16 @@ + + + insert into setmeal_dish + (setmeal_id,dish_id,name,price,copies) + values + + (#{sd.setmealId},#{sd.dishId},#{sd.name},#{sd.price},#{sd.copies}) + + + update setmeal diff --git a/sky-server/src/main/resources/mapper/SetmealMapper.xml b/sky-server/src/main/resources/mapper/SetmealMapper.xml index baa4a8b..aa05be4 100644 --- a/sky-server/src/main/resources/mapper/SetmealMapper.xml +++ b/sky-server/src/main/resources/mapper/SetmealMapper.xml @@ -2,6 +2,14 @@ + + + insert into setmeal + (category_id, name, price, status, description, image, create_time, update_time, create_user, update_user) + values (#{categoryId}, #{name}, #{price}, #{status}, #{description}, #{image}, #{createTime}, #{updateTime}, + #{createUser}, #{updateUser}) + +