yujian
2019-01-14 92c681fabac989d1a9f16fa13202d7f5ccac52d9
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
package com.yeshi.fanli.service.inter.hongbao;
 
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
 
import com.yeshi.fanli.entity.admin.OrderAdmin;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.HongBaoExtra;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.taobao.OrderVital;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
 
public interface HongBaoService {
 
    public List<HongBaoExtra> getHongBao(long uid);
 
    public HongBao getHongBaoById(long hid);
 
    public List<HongBao> getHongBaoByUidAndState(long uid, int state);
 
    public List<HongBao> getHongBaoList(int i, String state);
 
    public int getCount(String state);
 
    public Boolean success(OrderVital ov);
 
    // public HongBao getHongBaoByOid(long oid);
    /**
     * @param id
     *            用户ID
     * @return 当前用户得到的总金额
     */
    public BigDecimal getTotalHongBaoByUid(long id);
 
    /**
     * 
     * 方法说明: 获得我的余额
     * 
     * @author mawurui createTime 2018年5月17日 下午4:34:15
     * @param id
     * @return
     */
    public BigDecimal getMyTotalHongBaoByUid(long id);
 
    /**
     * @param id
     *            用户ID
     * @return 当前用户未打开红包金额
     */
    public BigDecimal getUnOpenHongBaoByUid(long id);
 
    /**
     * 设置一个新人红包给当前用户
     * 
     * @param form
     *            用户
     * @param type
     *            1.注册 2.下首单
     */
    public void setNewUserHongBao(UserInfo form, int type);
 
    public void setNewUserHongBaoMyBatis(UserInfo form, int type);
 
    public List<OrderAdmin> getOrderAdminList(int pageIndex, String key);
 
    public List<HongBao> getHongBaoList(int pageIndex, long uid);
 
    public int getCount(long uid);
 
    public BigDecimal getCanOpenHongBaoByUid(long id);
 
    public HongBao getUnOPenHongBao(long id);
 
    /**
     * 修改红包金额
     * 
     * @param order
     *            订单
     * @param auctionId
     *            商品ID
     * @param hb
     *            红包金额
     * @param hongBao
     *            红包
     */
    public void updateHongBaoMoney(Order order, String auctionId, BigDecimal hb, HongBao hongBao);
 
    /**
     * 修改分销红包金额
     * 
     * @param id
     *            红包ID @
     */
    public void updateSaleHongBao(long id, BigDecimal hb);
 
    /**
     * 获取分销红包
     * 
     * @param id
     *            红包ID
     * @return
     */
    public List<HongBao> findSaleHongBaoList(long id);
 
    public void save(HongBao hongBao);
 
    public double findThreeSaleMoney(long id);
 
    public HongBaoExtra open(long hid, String ip);
 
    /**
     * 将红包状态改为可领取
     * 
     * @param hongBao
     * @return
     */
    public void updateStateGet(HongBao hongBao);
 
    public void relevantInvalid(long hid);
 
    public void relevantInvalidVersion2(long hid);
 
    public List<HongBao> getHongBaoListAll(long uid);
 
    /**
     * 
     * @param id
     * @return
     */
    public List<HongBao> findThreeSaleHongBao(long id);
 
    /**
     * 通过订单查找红包
     * 
     * @param id
     * @return
     */
    public List<HongBao> findHongBaoByOrderList(long id);
 
    /**
     * 查找子红包
     * 
     * @param id
     * @return
     */
    public List<HongBao> findChildHongBaoList(long id);
 
    /**
     * 修改红包
     * 
     * @param hb
     */
    public void update(HongBao hb);
 
    /**
     * 老版本红包返利
     */
    public void oldVersionFanLi();
 
    public HongBao getHongBaoByOid(long oid);
 
    /**
     * 建立红包与orderItem间的联系
     */
    public void connectHongBaoAndOrderItem();
 
    public void addHongBao(Order order, TaoBaoOrder taoBaoOrder, Long orderItemId);
 
    public void updateHongBao(HongBao hongBao, TaoBaoOrder taoBaoOrder);
 
    /**
     * 累计提成订单数量(包含无效的订单)
     * 
     * @param uid
     * @return
     */
    public int getTotalTiChengCount(Long uid);
 
    /**
     * 累计提成
     * 
     * @param uid
     * @return
     */
    public BigDecimal getTotalTiChengMoney(Long uid);
 
    /**
     * 未到账提成
     * 
     * @param uid
     * @return
     */
    public BigDecimal getUnGetTiChengMoney(Long uid);
 
    /**
     * 获取提成红包列表
     * 
     * @param uid
     * @param page
     * @return
     */
    public List<HongBao> getTiChengHongBaoList(Long uid, int page);
 
    /**
     * 获取提成红包数量
     * 
     * @param uid
     * @return
     */
    public long getTiChengHongBaoListCount(Long uid);
 
    /**
     * 查询用户所有订单列表
     * 
     * @param uid
     * @return
     */
    public List<HongBao> selectOrderByUid(int pageIndex, int pageSize, Long uid, String startTime, String endTime);
 
    public int countOrderByUid(Long uid, String startTime, String endTime);
 
    public double countProfitByUid(Long uid, String startTime, String endTime);
 
    public int getCountByUid(Long uid);
 
    public Long getCountByUidOrder(Long uid);
 
    /**
     * 统计已领取金额 账户历史总收益
     * 
     * @param uid
     * @return
     */
    public double countReceiveMoneysByUid(Long uid);
 
    /**
     * 查询子级的收益
     * 
     * @param pid
     * @return
     */
    public List<HongBao> findChildHongBaoList(Long pid);
 
    /**
     * 统计失效订单
     * 
     * @param uid
     * @return
     */
    public int getCountCancelByUid(Long uid);
 
    /**
     * 根据订单号+付款金额
     * 
     * @param oid
     * @param payMoney
     * @return
     */
    public List<HongBao> queryByOrderIDAndPayMoney(Long oid, BigDecimal payMoney);
 
    /**
     * 统计当前用户 的自购订单数量
     * 
     * @param uid
     * @param isToday
     *            统计当天 1 统计今日条件生效
     * @param isMonth
     *            统计当月 1 统计当月条件生效 注意:不可与当日同时生效
     * @return
     */
    public long countByUidSelf(Long uid, Integer isToday, Integer isMonth);
 
    /**
     * 统计未领取金额 待入账收益
     * 
     * @param uid
     * @return
     */
    public double countForecastMoneysByUid(Long uid);
 
    /**
     * 根据id查询
     * 
     * @param id
     * @return
     */
    public HongBao selectByPrimaryKey(Long id);
 
    /**
     * 最近一次下单时间
     * 
     * @param uid
     * @return
     */
    public Long getLastOrderTime(Long uid);
 
    /**
     * 根据用户、订单号查询
     * 
     * @param oid
     * @param uid
     * @return
     */
    public List<HongBao> queryByOrderIDAndUid(Long oid, Long uid);
 
    /**
     * 查询前3天返利金额总额最高值
     * 
     * @return
     */
    public Double getMaxMoney(Integer[] typeArray);
 
    /**
     * 统计分享邀请总奖励
     * 
     * @param start
     * @param count
     * @param date
     * @return
     */
    public List<HongBao> listShareAndInviteMoney(long start, int count, String date);
 
    /**
     * 根据渠道   统计历史产生的订单数量
     * @param channel
     * @return
     */
    public List<Map<String, Object>> countHistoryOderByChannel(String channelArray, Integer type, String year,
            String startTime, String endTime) throws Exception;
 
    /**
     * 根据渠道   统计新增用户24小时内产生的订单数量
     * @param channel
     * @return
     */
    public List<Map<String, Object>> count24HOderByChannel(String channel, Integer type, String years,
            String startTime, String endTime) throws Exception;
 
}