admin
2020-12-19 37f89b3118620daa2277e227c2abdb574496ef56
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.ks.lucky.remote.service;
 
import com.ks.lucky.exception.LuckyActivityException;
import com.ks.lucky.exception.LuckyActivityJoinException;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DTO.*;
 
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
 
/**
 * 活动参与记录服务
 */
public interface LuckyActivityJoinService {
 
 
    /**
     * 参与活动
     *
     * @param activityId
     * @param appId
     * @param uid
     * @param weight
     * @param joinInfo
     * @throws LuckyActivityException
     * @throws LuckyActivityJoinException
     */
    public void join(@NotNull Long activityId, @NotNull Long appId, @NotEmpty String uid, Integer weight, JoinInfo joinInfo) throws LuckyActivityException, LuckyActivityJoinException;
 
 
    /**
     * 获取参与信息
     *
     * @param activityId
     * @param appId
     * @param uid
     * @return
     */
    public LuckyActivityJoinRecord getJoinInfo(Long activityId, Long appId, String uid);
 
 
    /**
     * 获取参加记录
     *
     * @param id
     * @return
     */
    public LuckyActivityJoinRecord getJoinRecord(Long id);
 
 
    /**
     * 获取还未开奖的活动列表
     *
     * @param uid
     * @param page
     * @param pageSize
     * @return
     */
    public List<Long> getUnOpenActivityIdList(Long appId, String uid, int page, int pageSize);
 
    public long countUnOpenActivityIdList(Long appId, String uid);
 
 
    /**
     * 获取未中奖的活动ID
     *
     * @param uid
     * @param page
     * @param pageSize
     * @return
     */
    public List<Long> getUnDrawnActivityIdList(Long appId, String uid, int page, int pageSize);
 
    public long countUnDrawnActivityIdList(Long appId, String uid);
 
    /**
     * 获取最近的参与人信息
     *
     * @param activityId
     * @param count
     * @return
     */
    public List<ActivitySimpleUser> getRecentJoinerList(Long activityId, int count);
 
    /**
     * 批量获取活动最近的参与人信息
     *
     * @param activityIdList
     * @param count
     * @return
     */
    public List<ActivitySimpleUser> getRecentJoinerList(List<Long> activityIdList, int count);
 
 
    /**
     * 获取活动的参与者列表(根据参与时间先后排序)
     *
     * @param activityId
     * @param page
     * @param count
     * @return
     */
    public List<ActivitySimpleUser> getJoinerList(Long activityId, int page, int count);
 
    /**
     * 活动参与者统计信息
     *
     * @param activityId
     * @param appId
     * @param uid
     * @return
     */
    public ActivityJoinStatisticInfo getActivityJoinerStatisticInfo(Long activityId, Long appId, String uid);
 
 
    /**
     * 获取活动中奖概率统计信息
     *
     * @param activityId
     * @param appId
     * @param uid
     * @return
     */
    public ActivityDrawnProbabilityStatistic getActivityDrawnProbabilityStatistic(Long activityId, Long appId, String uid);
 
 
    /**
     * 获取排行榜
     *
     * @param activityId
     * @param page
     * @param pageSize
     * @return
     */
    public List<ActivityJoinerRankInfo> getWeightRankList(Long activityId, int page, int pageSize);
 
 
    /**
     * 排行榜数量
     *
     * @param activityId
     * @return
     */
    public long countWeightRank(Long activityId);
 
 
    /**
     * 获取我的排行
     *
     * @param activityId
     * @param appId
     * @param uid
     * @return
     */
    public ActivityJoinerRankInfo getMyWeightRank(Long activityId, Long appId, String uid);
 
}