From a914b2dc0006154f3295b5dbf96d86ae8204be6f Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Tue, 9 Jan 2024 09:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90=E8=B5=B7=E5=94=AE=E3=80=81?= =?UTF-8?q?=E5=81=9C=E5=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/SetmealController.java | 14 +++++++ .../main/java/com/sky/mapper/DishMapper.java | 8 ++++ .../java/com/sky/mapper/SetmealMapper.java | 8 ++++ .../java/com/sky/service/SetmealService.java | 8 ++++ .../sky/service/impl/SetmealServiceImpl.java | 28 ++++++++++++++ .../src/main/resources/mapper/DishMapper.xml | 8 ++++ .../main/resources/mapper/SetmealMapper.xml | 38 +++++++++++++++++++ 7 files changed, 112 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 fa39c22..7391ea1 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 @@ -45,4 +45,18 @@ public class SetmealController { PageResult pageResult = setmealService.pageQuery(setmealPageQueryDTO); return Result.success(pageResult); } + + /** + * 套餐起售停售 + * + * @param status Integer + * @param id Long + * @return Result + */ + @ApiOperation("套餐起售停售") + @PostMapping("status/{status}") + public Result startOrStop(@PathVariable Integer status, Long id) { + setmealService.startOrStop(status, id); + 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 ae9145b..d3ac44b 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -74,4 +74,12 @@ public interface DishMapper { * @return List */ List list(Dish dish); + + /** + * 起售套餐时,判断套餐内是否有停售菜品,有停售菜品提示"套餐内包含未启售菜品,无法启售" + * + * @param id Long + * @return List + */ + List getBySetmealId(Long id); } 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 478b6cf..9d90bac 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java @@ -41,4 +41,12 @@ public interface SetmealMapper { */ @AutoFill(OperationType.INSERT) void insert(Setmeal setmeal); + + /** + * 套餐起售停售 + * + * @param setmeal Setmeal + */ + @AutoFill(OperationType.UPDATE) + void update(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 594bf7d..02c9448 100644 --- a/sky-server/src/main/java/com/sky/service/SetmealService.java +++ b/sky-server/src/main/java/com/sky/service/SetmealService.java @@ -41,4 +41,12 @@ public interface SetmealService { * @return PageResult */ PageResult pageQuery(SetmealPageQueryDTO setmealPageQueryDTO); + + /** + * 套餐起售停售 + * + * @param status Integer + * @param id Long + */ + void startOrStop(Integer status, Long id); } 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 85524f7..8cc4b95 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 @@ -2,10 +2,14 @@ package com.sky.service.impl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.sky.constant.MessageConstant; +import com.sky.constant.StatusConstant; import com.sky.dto.SetmealDTO; import com.sky.dto.SetmealPageQueryDTO; +import com.sky.entity.Dish; import com.sky.entity.Setmeal; import com.sky.entity.SetmealDish; +import com.sky.exception.SetmealEnableFailedException; import com.sky.mapper.DishMapper; import com.sky.mapper.SetMealDishMapper; import com.sky.mapper.SetmealMapper; @@ -91,4 +95,28 @@ public class SetmealServiceImpl implements SetmealService { Page page = setmealDishMapper.pageQuery(setmealPageQueryDTO); return new PageResult(page.getTotal(), page.getResult()); } + + /** + * 套餐起售停售 + * + * @param status Integer + * @param id Long + */ + @Override + public void startOrStop(Integer status, Long id) { + // 起售套餐时,判断套餐内是否有停售菜品,有停售菜品提示"套餐内包含未启售菜品,无法启售" + if (status.equals(StatusConstant.ENABLE)) { + List dishList = dishMapper.getBySetmealId(id); + if (dishList != null && !dishList.isEmpty()) { + dishList.forEach(dish -> { + if (dish.getStatus().equals(StatusConstant.DISABLE)) { + throw new SetmealEnableFailedException(MessageConstant.SETMEAL_ENABLE_FAILED); + } + }); + } + } + + Setmeal setmeal = Setmeal.builder().id(id).status(status).build(); + setmealMapper.update(setmeal); + } } diff --git a/sky-server/src/main/resources/mapper/DishMapper.xml b/sky-server/src/main/resources/mapper/DishMapper.xml index a8387dd..1296723 100644 --- a/sky-server/src/main/resources/mapper/DishMapper.xml +++ b/sky-server/src/main/resources/mapper/DishMapper.xml @@ -108,4 +108,12 @@ order by create_time desc + + + diff --git a/sky-server/src/main/resources/mapper/SetmealMapper.xml b/sky-server/src/main/resources/mapper/SetmealMapper.xml index aa05be4..c788ed2 100644 --- a/sky-server/src/main/resources/mapper/SetmealMapper.xml +++ b/sky-server/src/main/resources/mapper/SetmealMapper.xml @@ -10,6 +10,44 @@ #{createUser}, #{updateUser}) + + + update setmeal + + + category_id = #{categoryId}, + + + name = #{name}, + + + price = #{price}, + + + status = #{status}, + + + description = #{description}, + + + image = #{image}, + + + create_time = #{createTime}, + + + create_user = #{createUser}, + + + update_time = #{updateTime}, + + + update_user = #{updateUser}, + + + where id = #{id}; + +