package cn.iocoder.yudao.module.promotion.service.bargain; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityCreateReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; import jakarta.validation.Valid; import java.util.List; import java.util.Set; /** * 砍价活动 Service 接口 * * @author HUIHUI */ public interface BargainActivityService { /** * 创建砍价活动 * * @param createReqVO 创建信息 * @return 编号 */ Long createBargainActivity(@Valid BargainActivityCreateReqVO createReqVO); /** * 更新砍价活动 * * @param updateReqVO 更新信息 */ void updateBargainActivity(@Valid BargainActivityUpdateReqVO updateReqVO); /** * 更新砍价活动库存 * * 如果更新失败(库存不足),则抛出业务异常 * * @param id 砍价活动编号 * @param count 购买数量 */ void updateBargainActivityStock(Long id, Integer count); /** * 关闭砍价活动 * * @param id 砍价活动编号 */ void closeBargainActivityById(Long id); /** * 删除砍价活动 * * @param id 编号 */ void deleteBargainActivity(Long id); /** * 获得砍价活动 * * @param id 编号 * @return 砍价活动 */ BargainActivityDO getBargainActivity(Long id); /** * 获得砍价活动列表 * * @param ids 编号数组 * @return 砍价活动列表 */ List getBargainActivityList(Set ids); /** * 校验砍价活动,是否可以参与(发起砍价、下单、帮好友砍价) * * @param id 编号 * @return 砍价活动 */ BargainActivityDO validateBargainActivityCanJoin(Long id); /** * 获得砍价活动分页 * * @param pageReqVO 分页查询 * @return 砍价活动分页 */ PageResult getBargainActivityPage(BargainActivityPageReqVO pageReqVO); /** * 获取正在进行的活动分页数据 * * @param pageReqVO 分页请求 * @return 砍价活动分页 */ PageResult getBargainActivityPage(PageParam pageReqVO); /** * 获取正在进行的活动分页数据 * * @param count 需要的数量 * @return 砍价活动分页 */ List getBargainActivityListByCount(Integer count); /** * 获得 SPU 进行中的砍价活动 * * @param spuId SPU 编号数组 * @return 砍价活动 */ BargainActivityDO getMatchBargainActivityBySpuId(Long spuId); }