From cbb596cf0277ba587295e41de76342948b061f87 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 11 Nov 2025 15:24:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=8D=E7=A9=B9=E5=A4=96=E5=8D=96--=E8=8F=9C?= =?UTF-8?q?=E5=93=81=E7=AE=A1=E7=90=86-=E4=BF=AE=E6=94=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sky/controller/admin/DishController.java | 17 ++++++++ .../java/com/sky/mapper/DishFlavorMapper.java | 9 ++++ .../main/java/com/sky/mapper/DishMapper.java | 7 ++++ .../java/com/sky/service/DishService.java | 14 +++++++ .../com/sky/service/impl/DishServiceImpl.java | 41 +++++++++++++++++++ sky-server/src/main/resources/application.yml | 2 + .../src/main/resources/mapper/DishMapper.xml | 16 ++++++++ 7 files changed, 106 insertions(+) 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 4d39e90..c08323a 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 @@ -5,6 +5,7 @@ import com.sky.dto.DishPageQueryDTO; import com.sky.result.PageResult; 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; @@ -52,4 +53,20 @@ public class DishController { dishService.deleteBath(ids); return Result.success(); } + + @GetMapping("/{id}") + @ApiOperation("根据id查询菜品") + public Result getById(@PathVariable Long id){ //@RequestParam:能够使用springmvc框架,对1,2,3 参数进行切割 + log.info("根据id查询菜品:{}",id); + DishVO dishVO = dishService.getByIdWithFlavor(id); + return Result.success(dishVO); + } + + @PutMapping + @ApiOperation("修改菜品") + public Result getById(@RequestBody DishDTO dishDTO){ //@RequestParam:能够使用springmvc框架,对1,2,3 参数进行切割 + log.info("修改菜品:{}",dishDTO); + dishService.updateWithFlavor(dishDTO); + return Result.success(); + } } diff --git a/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java b/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java index d125f3e..fe79f58 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java @@ -2,6 +2,7 @@ package com.sky.mapper; import com.sky.entity.DishFlavor; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -18,4 +19,12 @@ public interface DishFlavorMapper { * @param ids */ void deleteBath(List ids); + + /** + * 根据菜品id,查询对应口味数据 + * @param dishId + * @return + */ + @Select("select * from dish_flavor where dish_id = #{dishId}") + List getByDishId(Long dishId); } diff --git a/sky-server/src/main/java/com/sky/mapper/DishMapper.java b/sky-server/src/main/java/com/sky/mapper/DishMapper.java index 6311fae..3663eb6 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -50,4 +50,11 @@ public interface DishMapper { * @param ids */ void deleteBath(List ids); + + /** + * 更新菜品表 + * @param dish + */ + @AutoFill(OperationType.UPDATE) + void update(Dish dish); } 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 6d3ecd9..c103c01 100644 --- a/sky-server/src/main/java/com/sky/service/DishService.java +++ b/sky-server/src/main/java/com/sky/service/DishService.java @@ -3,6 +3,7 @@ package com.sky.service; import com.sky.dto.DishDTO; import com.sky.dto.DishPageQueryDTO; import com.sky.result.PageResult; +import com.sky.vo.DishVO; import java.util.List; @@ -24,4 +25,17 @@ public interface DishService { * @param ids */ void deleteBath(List ids); + + /** + * 根据id查询菜品 + * @param id + * @return + */ + DishVO getByIdWithFlavor(Long id); + + /** + * 修改菜品 + * @param dishDTO + */ + void updateWithFlavor(DishDTO dishDTO); } 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 39b4b8c..a9d8f15 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.Arrays; import java.util.List; @Service @@ -97,4 +98,44 @@ public class DishServiceImpl implements DishService { dishMapper.deleteBath(ids); dishFlavorMapper.deleteBath(ids); } + + /** + * 根据id查询菜品 + * @param id + * @return + */ + @Override + public DishVO getByIdWithFlavor(Long id) { + //1.查询2张表:菜品表和口味表 + Dish dish = dishMapper.getById(id); + + List flavors = dishFlavorMapper.getByDishId(id); + //对象属性拷贝 + DishVO dishVO = new DishVO(); + BeanUtils.copyProperties(dish,dishVO); + dishVO.setFlavors(flavors); + return dishVO; + } + + /** + * 修改菜品 + * @param dishDTO + */ + @Override + public void updateWithFlavor(DishDTO dishDTO) { + //1.修改的表:Dish Dish_flavor + Dish dish = new Dish(); + BeanUtils.copyProperties(dishDTO,dish); + //2.修改菜品表 + dishMapper.update(dish); + //3.修改口味表:先执行删除对应菜品的全部口味,再重新插入 + dishFlavorMapper.deleteBath(Arrays.asList(dishDTO.getId())); + List flavors = dishDTO.getFlavors(); + //确保口味的菜品id必须有 + flavors.forEach(dishFlavor -> dishFlavor.setDishId(dishDTO.getId())); + if (flavors != null && flavors.size() > 0) { + dishFlavorMapper.insertBath(flavors); + } + + } } diff --git a/sky-server/src/main/resources/application.yml b/sky-server/src/main/resources/application.yml index b682adc..1576b1f 100644 --- a/sky-server/src/main/resources/application.yml +++ b/sky-server/src/main/resources/application.yml @@ -28,6 +28,7 @@ logging: mapper: debug service: info controller: info + org.springframework.jdbc.support.JdbcTransactionManager: debug #spring事务管理日志 sky: jwt: @@ -41,3 +42,4 @@ sky: endpoint: ${sky.alioss.endpoint} bucket-name: ${sky.alioss.bucket-name} region: ${sky.alioss.region} + diff --git a/sky-server/src/main/resources/mapper/DishMapper.xml b/sky-server/src/main/resources/mapper/DishMapper.xml index 68eed59..3cbb36b 100644 --- a/sky-server/src/main/resources/mapper/DishMapper.xml +++ b/sky-server/src/main/resources/mapper/DishMapper.xml @@ -8,6 +8,7 @@ values (#{name},#{categoryId},#{price},#{image},#{description},#{createTime},#{updateTime},#{createUser},#{updateUser},#{status}) +