From a3218d4b3ad28ec6752a234ecb2a2d308540d9ee Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Mon, 8 Jan 2024 09:28:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8F=9C=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sky/controller/admin/DishController.java | 13 ++++++++ .../main/java/com/sky/mapper/DishMapper.java | 7 ++++ .../java/com/sky/service/DishService.java | 6 ++++ .../com/sky/service/impl/DishServiceImpl.java | 28 ++++++++++++++++ .../src/main/resources/mapper/DishMapper.xml | 32 +++++++++++++++++++ 5 files changed, 86 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 570748e..f7a536b 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 @@ -75,4 +75,17 @@ public class DishController { DishVO dishVO = dishService.getByIdWithFlavor(id); return Result.success(dishVO); } + + /** + * 修改菜品 + * @param dishDTO DishDTO + * @return Result + */ + @ApiOperation("修改菜品") + @PutMapping() + public Result update(@RequestBody DishDTO dishDTO) { + log.info("修改菜品:{}", dishDTO); + dishService.updateWithFlavor(dishDTO); + return Result.success(); + } } 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 eaf8216..f8c9140 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -55,4 +55,11 @@ public interface DishMapper { * @param ids List */ void deleteByIds(List ids); + + /** + * 删除原有口味数据 + * @param dish Dish + */ + @AutoFill(value = 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 57426c6..6670a00 100644 --- a/sky-server/src/main/java/com/sky/service/DishService.java +++ b/sky-server/src/main/java/com/sky/service/DishService.java @@ -34,4 +34,10 @@ public interface DishService { * @return DishVO */ DishVO getByIdWithFlavor(Long id); + + /** + * 修改菜品 + * @param dishDTO 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 e4cb57e..2737400 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 @@ -13,12 +13,15 @@ import com.sky.mapper.DishFlavorMapper; import com.sky.mapper.DishMapper; import com.sky.mapper.SetMealDishMapper; import com.sky.result.PageResult; +import com.sky.result.Result; import com.sky.service.DishService; import com.sky.vo.DishVO; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PutMapping; import javax.annotation.Resource; import java.util.List; @@ -117,4 +120,29 @@ public class DishServiceImpl implements DishService { return dishVO; } + + /** + * 修改菜品 + * + * @param dishDTO DishDTO + */ + @Override + public void updateWithFlavor(DishDTO dishDTO) { + // 修改菜品基本信息 + Dish dish = new Dish(); + BeanUtils.copyProperties(dishDTO, dish); + // 删除原有口味数据 + dishMapper.update(dish); + // 重新插入口味数据 + dishFlavorMapper.deleteByDishId(dishDTO.getId()); + // 重新插入新的口味数据 + List flavors = dishDTO.getFlavors(); + if (flavors != null && !flavors.isEmpty()) { + flavors.forEach(dishFlavor -> { + dishFlavor.setDishId(dishDTO.getId()); + }); + // 向表中插入n条数据 + dishFlavorMapper.insertBatch(flavors); + } + } } diff --git a/sky-server/src/main/resources/mapper/DishMapper.xml b/sky-server/src/main/resources/mapper/DishMapper.xml index d4bf12a..d77e9c7 100644 --- a/sky-server/src/main/resources/mapper/DishMapper.xml +++ b/sky-server/src/main/resources/mapper/DishMapper.xml @@ -10,6 +10,38 @@ #{updateTime}, #{createUser}, #{updateUser}); + + + update dish + + + name = #{name}, + + + category_id = #{categoryId}, + + + price = #{price}, + + + image = #{image}, + + + description = #{description}, + + + status = #{status}, + + + update_time = #{updateTime}, + + + update_user = #{updateUser}, + + + where id = #{id} + + delete