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 b73034e..d9e8022 100644 --- a/sky-server/src/main/java/com/sky/mapper/DishMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/DishMapper.java @@ -1,4 +1,88 @@ package com.sky.mapper; +import com.github.pagehelper.Page; +import com.sky.annotation.AutoFill; +import com.sky.dto.DishPageQueryDTO; +import com.sky.entity.Dish; +import com.sky.enumeration.OperationType; +import com.sky.vo.DishVO; +import org.apache.ibatis.annotations.*; + +import java.util.List; +import java.util.Map; + +@Mapper public interface DishMapper { + + /** + * 根据分类id查询菜品数量 + * @param categoryId 分类ID + * @return 返回该分类下的菜品数量 + */ + @Select("select count(id) from dish where category_id = #{categoryId}") + Integer countByCategoryId(Long categoryId); + + /** + * 插入菜品数据,使用自动填充注解来处理创建时间和更新时间 + * @param dish 要插入的菜品对象 + */ + @AutoFill(value = OperationType.INSERT) + void insert(Dish dish); + + /** + * 菜品分页查询 + * @param dishPageQueryDTO 包含分页和查询条件的DTO对象 + * @return 返回分页后的菜品视图对象列表 + */ + Page pageQuery(DishPageQueryDTO dishPageQueryDTO); + + /** + * 根据菜品ID获取菜品信息 + * @param id 菜品ID + * @return 返回对应的菜品实体 + */ + @Select("select * from dish where id = #{id}") + Dish getById(Long id); + + /** + * 根据菜品ID删除菜品 + * @param id 菜品ID + */ + @Delete("delete from dish where id = #{id}") + void deleteById(Long id); + + /** + * 根据菜品ID集合批量删除菜品 + * @param ids 菜品ID集合 + */ + void deleteByIds(List ids); + + /** + * 根据ID动态修改菜品信息,使用自动填充注解来处理更新时间 + * @param dish 要更新的菜品对象 + */ + @AutoFill(value = OperationType.UPDATE) + void update(Dish dish); + + /** + * 根据分类ID获取所有菜品列表 + * @param dish 包含分类ID的菜品对象 + * @return 返回该分类下的所有菜品列表 + */ + List getByCategoryId(Dish dish); + + /** + * 启动或停止菜品(更改状态) + * @param status 新的状态值(0表示停止,1表示启动) + * @param id 菜品ID + */ + @Update("update dish set status = #{status} where id = #{id}") + void startOrStop(Integer status, Integer id); + + /** + * 根据条件统计菜品数量 + * @param map 包含查询条件的Map对象 + * @return 返回符合条件的菜品数量 + */ + Integer countByMap(Map map); } diff --git a/sky-server/src/main/java/com/sky/mapper/SetmealDishMapper.java b/sky-server/src/main/java/com/sky/mapper/SetmealDishMapper.java new file mode 100644 index 0000000..6005613 --- /dev/null +++ b/sky-server/src/main/java/com/sky/mapper/SetmealDishMapper.java @@ -0,0 +1,51 @@ +package com.sky.mapper; + +import com.sky.entity.SetmealDish; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface SetmealDishMapper { + + /* + * 根据菜品id查询对应套餐的id + * 这个方法用于获取与给定菜品ID列表相关的所有套餐ID。 + * @param dishIds 菜品ID列表 + * @return 返回包含相关套餐ID的列表 + */ + List getSetmealIdsByDishIds(List dishIds); + + /* + * 批量插入套餐和菜品的关联数据 + * 这个方法用于将一组套餐-菜品关系批量插入数据库中。 + * @param setmealDishes 套餐-菜品关系对象列表 + */ + void insertBatch(List setmealDishes); + + /* + * 根据套餐id获取相应菜品的数据 + * 这个方法用于根据套餐ID获取与之关联的所有菜品信息。 + * @param setmealId 套餐ID + * @return 返回包含套餐中所有菜品信息的列表 + */ + @Select("select * from setmeal_dish where setmeal_id = #{setmealId}") + List getBySetmealId(Long setmealId); + + /* + * 根据多个套餐id删除对应的套餐-菜品关系 + * 这个方法用于删除与给定套餐ID列表相关的所有套餐-菜品关系。 + * @param setmealIds 套餐ID列表 + */ + void deleteBySetmealIds(List setmealIds); + + /* + * 根据单个套餐id删除对应的套餐-菜品关系 + * 这个方法用于删除与指定套餐ID相关的所有套餐-菜品关系。 + * @param setmealId 套餐ID + */ + @Delete("delete from setmeal_dish where setmeal_id = #{setmealId}") + void deleteBySetmealId(Long setmealId); +}