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 f7a536b..2f8f072 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 @@ -52,6 +52,7 @@ public class DishController { /** * 菜品批量删除 + * * @param ids List * @return Result */ @@ -65,19 +66,21 @@ public class DishController { /** * 根据id查询菜品 + * * @param id Long * @return Result */ @ApiOperation("根据id查询菜品") @GetMapping("/{id}") public Result getBydId(@PathVariable Long id) { - log.info("根据id查询菜品:{}",id); + log.info("根据id查询菜品:{}", id); DishVO dishVO = dishService.getByIdWithFlavor(id); return Result.success(dishVO); } /** * 修改菜品 + * * @param dishDTO DishDTO * @return Result */ @@ -88,4 +91,18 @@ public class DishController { dishService.updateWithFlavor(dishDTO); return Result.success(); } + + /** + * 菜品起售停售 + * + * @param status 状态 + * @return Result + */ + @ApiOperation("菜品起售停售") + @PostMapping("/status/{status}") + public Result startOrStop(@PathVariable Integer status, Long id) { + // 1为起售,0为停售 + dishService.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 038ab89..ae9145b 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -7,7 +7,6 @@ import com.sky.entity.Dish; import com.sky.enumeration.OperationType; import com.sky.vo.DishVO; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,6 +31,7 @@ public interface DishMapper { /** * 菜品分页查询 + * * @param dishPageQueryDTO DishPageQueryDTO * @return Page */ @@ -39,6 +39,7 @@ public interface DishMapper { /** * 判断当前菜品是否能被删除---是否存在起售菜品 + * * @param id Long * @return Dish */ @@ -46,18 +47,21 @@ public interface DishMapper { /** * 删除菜品表中的菜品数据 + * * @param id Long */ void deleteById(Long id); /** * 删除菜品表中的菜品数据 + * * @param ids List */ void deleteByIds(List ids); /** * 删除原有口味数据 + * * @param dish Dish */ @AutoFill(value = OperationType.UPDATE) @@ -65,6 +69,7 @@ public interface DishMapper { /** * 条件查询菜品和口味 + * * @param dish Dish * @return List */ 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 b6ddca8..bf04f04 100644 --- a/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java @@ -1,9 +1,10 @@ package com.sky.mapper; +import com.sky.annotation.AutoFill; import com.sky.entity.Setmeal; +import com.sky.enumeration.OperationType; import com.sky.vo.DishItemVO; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Select; import java.util.List; @@ -25,4 +26,11 @@ public interface SetMealDishMapper { */ List getDishItemBySetmealId(Long setmealId); + /** + * 菜品起售停售 + * + * @param setmeal Setmeal + */ + @AutoFill(OperationType.UPDATE) + void update(Setmeal setmeal); } 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 9bd0459..2e7486b 100644 --- a/sky-server/src/main/java/com/sky/service/DishService.java +++ b/sky-server/src/main/java/com/sky/service/DishService.java @@ -18,6 +18,7 @@ public interface DishService { /** * 菜品分页查询 + * * @param dishPageQueryDTO DishPageQueryDTO * @return PageResult */ @@ -25,12 +26,14 @@ public interface DishService { /** * 菜品批量删除 + * * @param ids List */ void deleteBatch(List ids); /** * 根据id查询菜品 + * * @param id Long * @return DishVO */ @@ -38,14 +41,24 @@ public interface DishService { /** * 修改菜品 + * * @param dishDTO DishDTO */ void updateWithFlavor(DishDTO dishDTO); /** * 条件查询菜品和口味 + * * @param dish Dish * @return List */ List listWithFlavor(Dish dish); + + /** + * 菜品起售停售 + * + * @param status 菜品状态 + * @param id 菜品id + */ + void startOrStop(Integer status, Long id); } 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 5300c74..5a16ca5 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 @@ -8,6 +8,7 @@ import com.sky.dto.DishDTO; import com.sky.dto.DishPageQueryDTO; import com.sky.entity.Dish; import com.sky.entity.DishFlavor; +import com.sky.entity.Setmeal; import com.sky.exception.DeletionNotAllowedException; import com.sky.mapper.DishFlavorMapper; import com.sky.mapper.DishMapper; @@ -146,6 +147,7 @@ public class DishServiceImpl implements DishService { /** * 条件查询菜品和口味 + * * @param dish Dish * @return List */ @@ -156,9 +158,9 @@ public class DishServiceImpl implements DishService { for (Dish d : dishList) { DishVO dishVO = new DishVO(); - BeanUtils.copyProperties(d,dishVO); + BeanUtils.copyProperties(d, dishVO); - //根据菜品id查询对应的口味 + // 根据菜品id查询对应的口味 List flavors = dishFlavorMapper.getByDishId(d.getId()); dishVO.setFlavors(flavors); @@ -167,4 +169,31 @@ public class DishServiceImpl implements DishService { return dishVOList; } + + /** + * 菜品起售停售 + * + * @param status 菜品状态 + * @param id 菜品id + */ + @Override + public void startOrStop(Integer status, Long id) { + // 菜品起售停售 + Dish dish = Dish.builder().id(id).status(status).build(); + dishMapper.update(dish); + // 如果当前菜品是停售,还需要将其套餐也停售 + if (status.equals(StatusConstant.DISABLE)) { + ArrayList dishIds = new ArrayList<>(); + dishIds.add(id); + List setMealDishIds = setMealDishMapper.getSetMealDishIds(dishIds); + if (setMealDishIds != null && !setMealDishIds.isEmpty()) { + for (Long setMealDishId : setMealDishIds) { + Setmeal setmeal = Setmeal.builder().id(setMealDishId) + .status(StatusConstant.DISABLE) + .build(); + setMealDishMapper.update(setmeal); + } + } + } + } } diff --git a/sky-server/src/main/resources/mapper/SetMealDishMapper.xml b/sky-server/src/main/resources/mapper/SetMealDishMapper.xml index dd95845..7b9b186 100644 --- a/sky-server/src/main/resources/mapper/SetMealDishMapper.xml +++ b/sky-server/src/main/resources/mapper/SetMealDishMapper.xml @@ -2,6 +2,38 @@ + + + update setmeal + + + name = #{name}, + + + category_id = #{categoryId}, + + + price = #{price}, + + + status = #{status}, + + + description = #{description}, + + + image = #{image}, + + + update_time = #{updateTime}, + + + update_user = #{updateUser} + + + where id = #{id} + +