2026-06-26 20b96473f2520590a0dca6b775b81e3ea06a77a0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package cn.iocoder.yudao.module.promotion.service.combination;
 
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityCreateReqVO;
import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityPageReqVO;
import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityUpdateReqVO;
import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO;
import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO;
import jakarta.validation.Valid;
 
import java.util.Collection;
import java.util.Collections;
import java.util.List;
 
/**
 * 拼团活动 Service 接口
 *
 * @author HUIHUI
 */
public interface CombinationActivityService {
 
    /**
     * 创建拼团活动
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createCombinationActivity(@Valid CombinationActivityCreateReqVO createReqVO);
 
    /**
     * 更新拼团活动
     *
     * @param updateReqVO 更新信息
     */
    void updateCombinationActivity(@Valid CombinationActivityUpdateReqVO updateReqVO);
 
    /**
     * 关闭拼团活动
     *
     * @param id 拼团活动编号
     */
    void closeCombinationActivityById(Long id);
 
    /**
     * 删除拼团活动
     *
     * @param id 编号
     */
    void deleteCombinationActivity(Long id);
 
    /**
     * 校验拼团活动是否存在
     *
     * @param id 编号
     * @return 拼团活动
     */
    CombinationActivityDO validateCombinationActivityExists(Long id);
 
    /**
     * 获得拼团活动
     *
     * @param id 编号
     * @return 拼团活动
     */
    CombinationActivityDO getCombinationActivity(Long id);
 
    /**
     * 获得拼团活动分页
     *
     * @param pageReqVO 分页查询
     * @return 拼团活动分页
     */
    PageResult<CombinationActivityDO> getCombinationActivityPage(CombinationActivityPageReqVO pageReqVO);
 
    /**
     * 获得拼团活动商品列表
     *
     * @param activityId 拼团活动 id
     * @return 拼团活动的商品列表
     */
    default List<CombinationProductDO> getCombinationProductsByActivityId(Long activityId) {
        return getCombinationProductListByActivityIds(Collections.singletonList(activityId));
    }
 
    /**
     * 获得拼团活动商品列表
     *
     * @param activityIds 拼团活动 ids
     * @return 拼团活动的商品列表
     */
    List<CombinationProductDO> getCombinationProductListByActivityIds(Collection<Long> activityIds);
 
    /**
     * 获得拼团活动列表
     *
     * @param ids 拼团活动 ids
     * @return 拼团活动的列表
     */
    List<CombinationActivityDO> getCombinationActivityListByIds(Collection<Long> ids);
 
    /**
     * 获取正在进行的活动分页数据
     *
     * @param pageParam 分页请求
     * @return 拼团活动分页
     */
    PageResult<CombinationActivityDO> getCombinationActivityPage(PageParam pageParam);
 
    /**
     * 获取指定活动、指定 SKU 编号的商品
     *
     * @param activityId 活动编号
     * @param skuId      SKU 编号
     * @return 活动商品信息
     */
    CombinationProductDO selectByActivityIdAndSkuId(Long activityId, Long skuId);
 
    /**
     * 获得 SPU 进行中的拼团活动
     *
     * @param spuId SPU 编号数组
     * @return 拼团活动
     */
    CombinationActivityDO getMatchCombinationActivityBySpuId(Long spuId);
 
}