package com.sky.mapper; import com.github.pagehelper.Page; import com.sky.annotation.AutoFill; import com.sky.dto.SetmealPageQueryDTO; import com.sky.entity.Setmeal; import com.sky.enumeration.OperationType; import com.sky.result.PageResult; import com.sky.result.Result; import com.sky.vo.DishItemVO; import com.sky.vo.SetmealVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; @Mapper public interface SetmealMapper { /** * 根据分类id查询套餐的数量 * @param id * @return */ @Select("select count(id) from setmeal where category_id = #{categoryId}") Integer countByCategoryId(Long id); /** * 插入套餐 * @param setmeal */ @AutoFill(OperationType.INSERT) void insert(Setmeal setmeal); /** * 根据套餐名称查询套餐 * @param name * @return */ @Select("select * from setmeal where name = #{name}") Setmeal getByName(String name); /** * 分页查询套餐 * @param setmealPageQueryDTO * @return */ Page<SetmealVO> pageQuery(SetmealPageQueryDTO setmealPageQueryDTO); /** * 根据id查询套餐 * @param id * @return */ @Select("select * from setmeal where id = #{id}") Setmeal getById(Long id); /** * 批量删除套餐 * @param ids */ void deleteByIds(List<Long> ids); /** * 动态更新套餐 * @param setmeal */ @AutoFill(OperationType.UPDATE) void update(Setmeal setmeal); /** * 动态条件查询套餐 * @param setmeal * @return */ List<Setmeal> list(Setmeal setmeal); /** * 根据套餐id查询菜品选项 * @param setmealId * @return */ @Select("select sd.name, sd.copies, d.image, d.description " + "from setmeal_dish sd left join dish d on sd.dish_id = d.id " + "where sd.setmeal_id = #{setmealId}") List<DishItemVO> getDishItemBySetmealId(Long setmealId); /** * 根据条件统计套餐数量 * @param map * @return */ Integer countByMap(Map map); }