package cn.iocoder.yudao.module.product.dal.mysql.favorite; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.product.controller.admin.favorite.vo.ProductFavoritePageReqVO; import cn.iocoder.yudao.module.product.controller.app.favorite.vo.AppFavoritePageReqVO; import cn.iocoder.yudao.module.product.dal.dataobject.favorite.ProductFavoriteDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface ProductFavoriteMapper extends BaseMapperX { default ProductFavoriteDO selectByUserIdAndSpuId(Long userId, Long spuId) { return selectOne(ProductFavoriteDO::getUserId, userId, ProductFavoriteDO::getSpuId, spuId); } default PageResult selectPageByUserAndType(Long userId, AppFavoritePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapper() .eq(ProductFavoriteDO::getUserId, userId) .orderByDesc(ProductFavoriteDO::getId)); } default PageResult selectPageByUserId(ProductFavoritePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(ProductFavoriteDO::getUserId, reqVO.getUserId()) .orderByDesc(ProductFavoriteDO::getId)); } default Long selectCountByUserId(Long userId) { return selectCount(ProductFavoriteDO::getUserId, userId); } }