套餐起售、停售

This commit is contained in:
Bunny 2024-01-09 09:23:46 +08:00
parent ac4e7d8108
commit a914b2dc00
7 changed files with 112 additions and 0 deletions

View File

@ -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();
}
}

View File

@ -74,4 +74,12 @@ public interface DishMapper {
* @return List<Dish>
*/
List<Dish> list(Dish dish);
/**
* 起售套餐时判断套餐内是否有停售菜品有停售菜品提示"套餐内包含未启售菜品,无法启售"
*
* @param id Long
* @return List<Dish>
*/
List<Dish> getBySetmealId(Long id);
}

View File

@ -41,4 +41,12 @@ public interface SetmealMapper {
*/
@AutoFill(OperationType.INSERT)
void insert(Setmeal setmeal);
/**
* 套餐起售停售
*
* @param setmeal Setmeal
*/
@AutoFill(OperationType.UPDATE)
void update(Setmeal setmeal);
}

View File

@ -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);
}

View File

@ -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<SetmealVO> 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<Dish> 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);
}
}

View File

@ -108,4 +108,12 @@
</where>
order by create_time desc
</select>
<!-- 起售套餐时,判断套餐内是否有停售菜品,有停售菜品提示"套餐内包含未启售菜品,无法启售" -->
<select id="getBySetmealId" resultType="com.sky.entity.Dish">
select a.*
from dish a
left join setmeal_dish b on a.id = b.dish_id
where b.setmeal_id = ?
</select>
</mapper>

View File

@ -10,6 +10,44 @@
#{createUser}, #{updateUser})
</insert>
<!-- 套餐起售停售 -->
<update id="update">
update setmeal
<set>
<if test="categoryId != null">
category_id = #{categoryId},
</if>
<if test="name != null">
name = #{name},
</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="createTime != null">
create_time = #{createTime},
</if>
<if test="createUser != null">
create_user = #{createUser},
</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="countByCategoryId" resultType="java.lang.Integer">
select count(id)