From 25cf3769ec1fde953e5427b68085a44ccef9c2d2 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Tue, 9 Jan 2024 09:57:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A5=97=E9=A4=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/SetmealController.java | 14 +++++++++++ .../com/sky/mapper/SetMealDishMapper.java | 7 ++++++ .../java/com/sky/mapper/SetmealMapper.java | 16 ++++++++++++ .../java/com/sky/service/SetmealService.java | 7 ++++++ .../sky/service/impl/SetmealServiceImpl.java | 25 +++++++++++++++++++ .../resources/mapper/SetMealDishMapper.xml | 7 ++++++ .../main/resources/mapper/SetmealMapper.xml | 14 +++++++++++ 7 files changed, 90 insertions(+) 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 7391ea1..d13f3f2 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 @@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; @RestController @RequestMapping("/admin/setmeal") @@ -59,4 +60,17 @@ public class SetmealController { setmealService.startOrStop(status, id); return Result.success(); } + + /** + * 批量删除套餐 + * + * @param ids 删除集合 + * @return Null + */ + @ApiOperation("批量删除套餐") + @DeleteMapping("") + public Result delete(@RequestParam List ids) { + setmealService.delete(ids); + 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 bcf9b39..1f36e08 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java @@ -52,4 +52,11 @@ public interface SetMealDishMapper { * @return Page */ Page pageQuery(SetmealPageQueryDTO setmealPageQueryDTO); + + /** + * 根据套餐id删除套餐和菜品的关联关系 + * + * @param setmealId Long + */ + void deleteBySetmealId(Long setmealId); } 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 9d90bac..53fac70 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java @@ -49,4 +49,20 @@ public interface SetmealMapper { */ @AutoFill(OperationType.UPDATE) void update(Setmeal setmeal); + + + /** + * 根据id获取套餐 + * + * @param id Long + * @return Setmeal + */ + Setmeal getById(Long id); + + /** + * 删除套餐表中的数据 + * + * @param setmealId Long + */ + void deleteById(Long setmealId); } 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 02c9448..2791c3d 100644 --- a/sky-server/src/main/java/com/sky/service/SetmealService.java +++ b/sky-server/src/main/java/com/sky/service/SetmealService.java @@ -49,4 +49,11 @@ public interface SetmealService { * @param id Long */ void startOrStop(Integer status, Long id); + + /** + * 批量删除套餐 + * + * @param ids List + */ + void delete(List ids); } 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 8cc4b95..89f51c0 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 @@ -9,6 +9,7 @@ import com.sky.dto.SetmealPageQueryDTO; import com.sky.entity.Dish; import com.sky.entity.Setmeal; import com.sky.entity.SetmealDish; +import com.sky.exception.DeletionNotAllowedException; import com.sky.exception.SetmealEnableFailedException; import com.sky.mapper.DishMapper; import com.sky.mapper.SetMealDishMapper; @@ -119,4 +120,28 @@ public class SetmealServiceImpl implements SetmealService { Setmeal setmeal = Setmeal.builder().id(id).status(status).build(); setmealMapper.update(setmeal); } + + /** + * 批量删除套餐 + * + * @param ids List + */ + @Override + public void delete(List ids) { + ids.forEach(id -> { + // 根据id获取套餐 + Setmeal setmeal = setmealMapper.getById(id); + // 起售中商品不能删除 + if (setmeal.getStatus().equals(StatusConstant.ENABLE)) { + throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE); + } + }); + + ids.forEach(setmealId -> { + // 删除套餐表中的数据 + setmealMapper.deleteById(setmealId); + // 删除套餐菜品关系表中的数据 + setmealDishMapper.deleteBySetmealId(setmealId); + }); + } } diff --git a/sky-server/src/main/resources/mapper/SetMealDishMapper.xml b/sky-server/src/main/resources/mapper/SetMealDishMapper.xml index 7133a6c..ae83653 100644 --- a/sky-server/src/main/resources/mapper/SetMealDishMapper.xml +++ b/sky-server/src/main/resources/mapper/SetMealDishMapper.xml @@ -44,6 +44,13 @@ where id = #{id} + + + delete + from setmeal_dish + where setmeal_id = #{setmealId} + + select count(id) @@ -78,4 +85,11 @@ left join dish d on sd.dish_id = d.id where sd.setmeal_id = #{setmealId} + + +