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 985d040..421a8c6 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 @@ -98,9 +98,22 @@ public class DishController { */ @GetMapping("/list") @ApiOperation("根据分类id查询菜品") - public Result list(String categoryId){ + public Result list(Long categoryId){ log.info("根据分类id查询菜品: {}",categoryId); List dishes = dishService.selectByCategoryId(categoryId); return Result.success(dishes); } + + /** + * 菜品起售停售 + * @param status + * @param id + * @return + */ + @PostMapping("/status/{status}") + @ApiOperation("菜品起售停售") + public Result startOrStop(@PathVariable Integer status,Long id){ + dishService.startOrStop(status,id); + return Result.success(); + } } 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 7187e95..69ec31a 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,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/admin/setmeal") @Slf4j @@ -45,4 +47,17 @@ public class SetmealController { setmealService.insert(setmealDTO); return Result.success(); } + + /** + * 批量删除套餐 + * @param ids + * @return + */ + @DeleteMapping + @ApiOperation("批量删除套餐") + public Result delete(@RequestParam List ids){ + log.info("批量删除套餐: {}",ids); + setmealService.deleteBatch(ids); + 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 0df9171..86f6b6d 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -67,5 +67,5 @@ public interface DishMapper { * @return */ @Select("select * from dish where category_id = #{categoryId}") - List selectByCategoryId(String categoryId); + List selectByCategoryId(Long categoryId); } 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 4d35de6..f02de6c 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetmealDishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetmealDishMapper.java @@ -15,4 +15,6 @@ public interface SetmealDishMapper { List getSetmealIdsByDishIds(List ids); void insertBatch(List setmealDishes); + + void deleteBySetmealIds(List setmealIds); } 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 de6d99a..e2e1500 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetmealMapper.java @@ -8,6 +8,8 @@ import com.sky.enumeration.OperationType; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; +import java.util.List; + @Mapper public interface SetmealMapper { @@ -23,4 +25,9 @@ public interface SetmealMapper { @AutoFill(OperationType.INSERT) void insert(Setmeal setmeal); + + @Select("select * from setmeal where id = #{id}") + Setmeal selectById(Long id); + + void deleteBatch(List ids); } 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 046a25d..895bedc 100644 --- a/sky-server/src/main/java/com/sky/service/DishService.java +++ b/sky-server/src/main/java/com/sky/service/DishService.java @@ -49,5 +49,12 @@ public interface DishService { * @param categoryId * @return */ - List selectByCategoryId(String categoryId); + List selectByCategoryId(Long categoryId); + + /** + * 菜品起售停售 + * @param status + * @param id + */ + void startOrStop(Integer status, Long id); } 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 d2435e5..e813b9d 100644 --- a/sky-server/src/main/java/com/sky/service/SetmealService.java +++ b/sky-server/src/main/java/com/sky/service/SetmealService.java @@ -5,6 +5,8 @@ import com.sky.dto.SetmealPageQueryDTO; import com.sky.result.PageResult; import org.springframework.stereotype.Service; +import java.util.List; + @Service public interface SetmealService { /** @@ -19,4 +21,10 @@ public interface SetmealService { * @param setmealDTO */ void insert(SetmealDTO setmealDTO); + + /** + * 批量删除套餐 + * @param ids + */ + void deleteBatch(List ids); } 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 7860472..fc0b601 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 @@ -159,7 +159,26 @@ public class DishServiceImpl implements DishService { * @return */ @Override - public List selectByCategoryId(String categoryId) { + public List selectByCategoryId(Long categoryId) { return dishMapper.selectByCategoryId(categoryId); } + + /** + * 菜品起售停售 + * @param status + * @param id + */ + @Override + @Transactional + //TODO 菜品关联套餐状态 + public void startOrStop(Integer status, Long id) { + //更新菜品状态 + Dish dish = Dish.builder() + .id(id) + .status(status) + .build(); + dishMapper.update(dish); + //更新菜品所关联套餐的状态 + + } } 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 30d7e1f..7027bcc 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,13 @@ 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.Setmeal; import com.sky.entity.SetmealDish; +import com.sky.exception.DeletionNotAllowedException; import com.sky.mapper.SetmealDishMapper; import com.sky.mapper.SetmealMapper; import com.sky.result.PageResult; @@ -52,6 +55,30 @@ public class SetmealServiceImpl implements SetmealService { //插入套餐包含菜品的信息 List setmealDishes = setmealDTO.getSetmealDishes(); + //设置setmealId + setmealDishes.forEach(setmealDish -> setmealDish.setSetmealId(setmeal.getId())); setmealDishMapper.insertBatch(setmealDishes); } + + /** + * 批量删除套餐 + * @param ids + */ + @Override + @Transactional + public void deleteBatch(List ids) { + //查看套餐是否有在售状态 + for (Long id : ids) { + Setmeal setmeal = setmealMapper.selectById(id); + if (setmeal.getStatus().equals(StatusConstant.ENABLE)) { + throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE); + } + } + + //批量删除套餐(动态SQL) + //删除setmeal数据 + setmealMapper.deleteBatch(ids); + //删除setmeal_dish数据 + setmealDishMapper.deleteBySetmealIds(ids); + } } diff --git a/sky-server/src/main/resources/mapper/SetmealDishMapper.xml b/sky-server/src/main/resources/mapper/SetmealDishMapper.xml index 5ed50f6..db1c4fd 100644 --- a/sky-server/src/main/resources/mapper/SetmealDishMapper.xml +++ b/sky-server/src/main/resources/mapper/SetmealDishMapper.xml @@ -10,6 +10,12 @@ (#{sd.setmealId},#{sd.dishId},#{sd.name},#{sd.price},#{sd.copies}) + + delete from setmeal_dish where setmeal_id in + + #{setmealId} + + select * from setmeal