From ece5ee273152558798d1fa8a63f7c208238fc228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=B3=E5=90=AC?= <1515639932@qq.com> Date: Fri, 22 Jul 2022 22:01:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90=E6=89=B9=E9=87=8F=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/SetmealController.java | 16 ++++++++++ .../com/reggie/mapper/SetmealDishMapper.java | 5 ++++ .../java/com/reggie/mapper/SetmealMapper.java | 6 ++++ .../com/reggie/service/SetmealService.java | 5 ++++ .../service/impl/SetmealServiceImpl.java | 29 +++++++++++++++++++ .../resources/mapper/SetmealDishMapper.xml | 10 ++++++- .../main/resources/mapper/SetmealMapper.xml | 17 +++++++++++ 7 files changed, 87 insertions(+), 1 deletion(-) diff --git a/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java b/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java index 4a1658f..81a386e 100644 --- a/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java +++ b/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java @@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/admin/setmeal") @Slf4j @@ -47,5 +49,19 @@ public R page(SetmealPageQueryDTO setmealPageQueryDTO) { return R.success(pageResult); } + /** + * 批量删除的套餐 + * + * @param ids 批量删除的套餐id + * @return success + */ + @DeleteMapping + @ApiOperation("批量删除的套餐") + public R delete(@RequestParam List ids) { + log.info("批量删除:{}", ids); + setmealService.deleteBatch(ids); + return R.success("删除成功"); + } + } diff --git a/reggie_server/src/main/java/com/reggie/mapper/SetmealDishMapper.java b/reggie_server/src/main/java/com/reggie/mapper/SetmealDishMapper.java index b0bf411..9d041dc 100644 --- a/reggie_server/src/main/java/com/reggie/mapper/SetmealDishMapper.java +++ b/reggie_server/src/main/java/com/reggie/mapper/SetmealDishMapper.java @@ -8,9 +8,14 @@ @Mapper public interface SetmealDishMapper { + + //根据菜品ids找套餐 List getSetmealIdsByDishIds(List ids); //保存套餐和菜品的关联关系 void insertBatch(List setmealDishes); + + //套餐id删除套餐菜品关系表中的数据 + void deleteBySetmealId(List ids); } diff --git a/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java b/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java index 5010348..33e4fcb 100644 --- a/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java +++ b/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java @@ -29,4 +29,10 @@ public interface SetmealMapper { //套餐分页查询 Page pageQuery(SetmealPageQueryDTO setmealPageQueryDTO); + + //通过套餐id查找套餐数据 + Setmeal getById(Long id); + + //套餐ids删除套餐表中的数据 + void deleteById(List ids); } diff --git a/reggie_server/src/main/java/com/reggie/service/SetmealService.java b/reggie_server/src/main/java/com/reggie/service/SetmealService.java index 2559a6b..c4dabac 100644 --- a/reggie_server/src/main/java/com/reggie/service/SetmealService.java +++ b/reggie_server/src/main/java/com/reggie/service/SetmealService.java @@ -4,6 +4,8 @@ import com.reggie.dto.SetmealPageQueryDTO; import com.reggie.result.PageResult; +import java.util.List; + public interface SetmealService { //新增套餐 @@ -11,4 +13,7 @@ public interface SetmealService { //套餐分页查询 PageResult pageQuery(SetmealPageQueryDTO setmealPageQueryDTO); + + //批量删除的套餐 + void deleteBatch(List ids); } diff --git a/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java b/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java index 05b4d6b..accb5d9 100644 --- a/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java +++ b/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java @@ -2,10 +2,13 @@ import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.reggie.constant.MessageConstant; +import com.reggie.constant.StatusConstant; import com.reggie.dto.SetmealDTO; import com.reggie.dto.SetmealPageQueryDTO; import com.reggie.entity.Setmeal; import com.reggie.entity.SetmealDish; +import com.reggie.exception.DeletionNotAllowedException; import com.reggie.mapper.SetmealDishMapper; import com.reggie.mapper.SetmealMapper; import com.reggie.result.PageResult; @@ -71,4 +74,30 @@ public PageResult pageQuery(SetmealPageQueryDTO setmealPageQueryDTO) { Page page = setmealMapper.pageQuery(setmealPageQueryDTO); return new PageResult(page.getTotal(), page.getResult()); } + + /** + * 批量删除的套餐 + * + * @param ids 批量删除的套餐id + */ + @Transactional + public void deleteBatch(List ids) { + ids.forEach(id -> { + //通过套餐id查找套餐数据 + Setmeal setmeal = setmealMapper.getById(id); + if (StatusConstant.ENABLE == setmeal.getStatus()) { + //起售中的套餐不能删除 + throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE); + } + } + ); + + //套餐ids删除套餐表中的数据 + setmealMapper.deleteById(ids); + //套餐id删除套餐菜品关系表中的数据 + setmealDishMapper.deleteBySetmealId(ids); + } + + + } diff --git a/reggie_server/src/main/resources/mapper/SetmealDishMapper.xml b/reggie_server/src/main/resources/mapper/SetmealDishMapper.xml index 2dfff5f..5fbb936 100644 --- a/reggie_server/src/main/resources/mapper/SetmealDishMapper.xml +++ b/reggie_server/src/main/resources/mapper/SetmealDishMapper.xml @@ -20,7 +20,15 @@ (#{setmealDishe.setmealId}, #{setmealDishe.dishId}, #{setmealDishe.name}, #{setmealDishe.price}, #{setmealDishe.copies}) - + + + delete from setmeal_dish + where dish_id in + + #{dish_id} + + + diff --git a/reggie_server/src/main/resources/mapper/SetmealMapper.xml b/reggie_server/src/main/resources/mapper/SetmealMapper.xml index 37aea3c..167c87f 100644 --- a/reggie_server/src/main/resources/mapper/SetmealMapper.xml +++ b/reggie_server/src/main/resources/mapper/SetmealMapper.xml @@ -66,8 +66,25 @@ order by setmeal.create_time desc + + + + + + delete + from setmeal + where id in + + #{id} + + + +