package cn.iocoder.yudao.module.promotion.api.combination; import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordCreateReqDTO; import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordCreateRespDTO; import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordRespDTO; import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationValidateJoinRespDTO; import jakarta.validation.Valid; /** * 拼团记录 API 接口 * * @author HUIHUI */ public interface CombinationRecordApi { /** * 校验是否满足拼团条件 * * @param userId 用户编号 * @param activityId 活动编号 * @param headId 团长编号 * @param skuId sku 编号 * @param count 数量 */ void validateCombinationRecord(Long userId, Long activityId, Long headId, Long skuId, Integer count); /** * 创建开团记录 * * @param reqDTO 请求 DTO * @return 拼团信息 */ CombinationRecordCreateRespDTO createCombinationRecord(@Valid CombinationRecordCreateReqDTO reqDTO); /** * 基于订单编号,查询拼团记录 * * @param userId 用户编号 * @param orderId 订单编号 * @return 拼团记录 */ CombinationRecordRespDTO getCombinationRecordByOrderId(Long userId, Long orderId); /** * 【下单前】校验是否满足拼团活动条件 * * 如果校验失败,则抛出业务异常 * * @param userId 用户编号 * @param activityId 活动编号 * @param headId 团长编号 * @param skuId sku 编号 * @param count 数量 * @return 拼团信息 */ CombinationValidateJoinRespDTO validateJoinCombination(Long userId, Long activityId, Long headId, Long skuId, Integer count); }