package cn.lili.modules.promotion.service; import cn.lili.common.vo.PageVO; import cn.lili.modules.promotion.entity.dos.Seckill; import cn.lili.modules.promotion.entity.dos.SeckillApply; import cn.lili.modules.promotion.entity.dto.search.SeckillSearchParams; import cn.lili.modules.promotion.entity.vos.SeckillApplyVO; import cn.lili.modules.promotion.entity.vos.SeckillGoodsVO; import cn.lili.modules.promotion.entity.vos.SeckillTimelineVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * 秒杀申请业务层 * * @author Chopper * @since 2020/11/18 9:45 上午 */ public interface SeckillApplyService extends IService { /** * 获取当天秒杀活动信息列表(时刻及对应时刻下的商品) * * @return 秒杀活动信息列表 */ List getSeckillTimeline(); /** * 获取当天某个时刻的秒杀活动商品列表 * * @param timeline 指定时刻 * @return 秒杀活动商品列表 */ List getSeckillGoods(Integer timeline); /** * 分页查询限时请购申请列表 * * @param queryParam 秒杀活动申请查询参数 * @param pageVo 分页参数 * @return 限时请购申请列表 */ IPage getSeckillApplyPage(SeckillSearchParams queryParam, PageVO pageVo); /** * 查询限时请购申请列表 * * @param queryParam 秒杀活动申请查询参数 * @return 限时请购申请列表 */ List getSeckillApplyList(SeckillSearchParams queryParam); /** * 查询限时请购申请列表总数 * * @param queryParam 查询条件 * @return 限时请购申请列表总数 */ long getSeckillApplyCount(SeckillSearchParams queryParam); /** * 查询限时请购申请 * * @param queryParam 秒杀活动申请查询参数 * @return 限时请购申请 */ SeckillApply getSeckillApply(SeckillSearchParams queryParam); /** * 添加秒杀活动申请 * 检测是否商品是否同时参加多个活动 * 将秒杀商品信息存入秒杀活动中 * 保存秒杀活动商品,促销商品信息 * * @param seckillId 秒杀活动编号 * @param storeId 商家id * @param seckillApplyList 秒杀活动申请列表 */ void addSeckillApply(String seckillId, String storeId, List seckillApplyList); /** * 批量删除秒杀活动商品 * * @param seckillId 秒杀活动活动id * @param id 秒杀活动商品 */ void removeSeckillApply(String seckillId, String id); /** * 更新秒杀商品出售数量 * * @param seckillId 秒杀活动id * @param skuId 商品skuId * @param saleNum 出售数量 */ void updateSeckillApplySaleNum(String seckillId, String skuId, Integer saleNum); /** * 更新秒杀活动时间 * * @param seckill 秒杀活动 * @return 是否更新成功 */ boolean updateSeckillApplyTime(Seckill seckill); }