package cn.iocoder.yudao.module.promotion.service.discount; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityPageReqVO; import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityUpdateReqVO; import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountActivityDO; import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProductDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; /** * 限时折扣 Service 接口 * * @author 芋道源码 */ public interface DiscountActivityService { /** * 基于指定 SKU 编号数组,获得匹配的限时折扣商品 * * 注意,匹配的条件,仅仅是日期符合,并且处于开启状态 * * @param skuIds SKU 编号数组 * @return 匹配的限时折扣商品 */ List getMatchDiscountProductListBySkuIds(Collection skuIds); /** * 创建限时折扣活动 * * @param createReqVO 创建信息 * @return 编号 */ Long createDiscountActivity(@Valid DiscountActivityCreateReqVO createReqVO); /** * 更新限时折扣活动 * * @param updateReqVO 更新信息 */ void updateDiscountActivity(@Valid DiscountActivityUpdateReqVO updateReqVO); /** * 关闭限时折扣活动 * * @param id 编号 */ void closeDiscountActivity(Long id); /** * 删除限时折扣活动 * * @param id 编号 */ void deleteDiscountActivity(Long id); /** * 获得限时折扣活动 * * @param id 编号 * @return 限时折扣活动 */ DiscountActivityDO getDiscountActivity(Long id); /** * 获得限时折扣活动分页 * * @param pageReqVO 分页查询 * @return 限时折扣活动分页 */ PageResult getDiscountActivityPage(DiscountActivityPageReqVO pageReqVO); /** * 获得活动编号,对应对应的商品列表 * * @param activityId 活动编号 * @return 活动的商品列表 */ List getDiscountProductsByActivityId(Long activityId); /** * 获得活动编号,对应对应的商品列表 * * @param activityIds 活动编号 * @return 活动的商品列表 */ List getDiscountProductsByActivityId(Collection activityIds); }