菜品起售停售

This commit is contained in:
bunny 2024-01-08 22:06:44 +08:00
parent 573c1d8e3c
commit 3eb910ad07
6 changed files with 109 additions and 5 deletions

View File

@ -52,6 +52,7 @@ public class DishController {
/**
* 菜品批量删除
*
* @param ids List<Long>
* @return Result<String>
*/
@ -65,19 +66,21 @@ public class DishController {
/**
* 根据id查询菜品
*
* @param id Long
* @return Result<DishVO>
*/
@ApiOperation("根据id查询菜品")
@GetMapping("/{id}")
public Result<DishVO> 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<String>
*/
@ -88,4 +91,18 @@ public class DishController {
dishService.updateWithFlavor(dishDTO);
return Result.success();
}
/**
* 菜品起售停售
*
* @param status 状态
* @return Result<String>
*/
@ApiOperation("菜品起售停售")
@PostMapping("/status/{status}")
public Result<String> startOrStop(@PathVariable Integer status, Long id) {
// 1为起售0为停售
dishService.startOrStop(status, id);
return Result.success();
}
}

View File

@ -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<DishVO>
*/
@ -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<Long>
*/
void deleteByIds(List<Long> ids);
/**
* 删除原有口味数据
*
* @param dish Dish
*/
@AutoFill(value = OperationType.UPDATE)
@ -65,6 +69,7 @@ public interface DishMapper {
/**
* 条件查询菜品和口味
*
* @param dish Dish
* @return List<Dish>
*/

View File

@ -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<DishItemVO> getDishItemBySetmealId(Long setmealId);
/**
* 菜品起售停售
*
* @param setmeal Setmeal
*/
@AutoFill(OperationType.UPDATE)
void update(Setmeal setmeal);
}

View File

@ -18,6 +18,7 @@ public interface DishService {
/**
* 菜品分页查询
*
* @param dishPageQueryDTO DishPageQueryDTO
* @return PageResult
*/
@ -25,12 +26,14 @@ public interface DishService {
/**
* 菜品批量删除
*
* @param ids List<Long>
*/
void deleteBatch(List<Long> 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<DishVO>
*/
List<DishVO> listWithFlavor(Dish dish);
/**
* 菜品起售停售
*
* @param status 菜品状态
* @param id 菜品id
*/
void startOrStop(Integer status, Long id);
}

View File

@ -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<DishVO>
*/
@ -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<DishFlavor> 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<Long> dishIds = new ArrayList<>();
dishIds.add(id);
List<Long> 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);
}
}
}
}
}

View File

@ -2,6 +2,38 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.SetMealDishMapper">
<!-- 菜品起售停售 -->
<update id="update" parameterType="Setmeal">
update setmeal
<set>
<if test="name != null">
name = #{name},
</if>
<if test="categoryId != null">
category_id = #{categoryId},
</if>
<if test="price != null">
price = #{price},
</if>
<if test="status != null">
status = #{status},
</if>
<if test="description != null">
description = #{description},
</if>
<if test="image != null">
image = #{image},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="updateUser != null">
update_user = #{updateUser}
</if>
</set>
where id = #{id}
</update>
<!-- 查询对应套餐id -->
<select id="getSetMealDishIds" resultType="java.lang.Long">
select *