yujian
2020-05-07 a9c9da611563738e2974103a45270d5857b746b6
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
package com.yeshi.fanli.dao.mybatis;
 
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
import org.apache.ibatis.annotations.Param;
 
import com.yeshi.fanli.vo.order.HongBaoV2VO;
 
public interface HongBaoV2CountMapper {
 
    /**
     * 统计历史总到账金额
     * 
     * @param uid
     * @param state
     * @return
     */
    BigDecimal countMoneyByUidAndState(@Param("uid") Long uid, @Param("state") Integer state);
 
    /**
     * 统计历史红包数量
     * 
     * @param uid
     * @param state
     * @return
     */
    Integer countNumberByUidAndState(@Param("uid") Long uid, @Param("state") Integer state);
 
    /**
     * 统计用户总的红包数量
     * 
     * @param uid
     * @return
     */
    Long countNumberByUid(@Param("uid") Long uid);
 
 
 
 
    // 累计提成订单数量(包含无效订单)
    int getTotalTiChengCount(Long uid);
    
    
    // 累计提成红包数量(包含无效)
    long getHongBaoCount(@Param("uid") Long uid, @Param("type") Integer type);
 
    /**
     * 统计未失效订单数量
     * 
     * @param uid
     * @param dateType
     * @return
     */
    long countValidNumberByUid(@Param("uid") Long uid, @Param("dateType") Integer dateType);
 
    /**
     * 统计未到账
     * 
     * @param uid
     * @return
     */
    BigDecimal countWillGetMoneyByUid(@Param("uid") Long uid);
 
    Date getLastHongBaoTime(@Param("uid") Long uid);
 
 
    List<HongBaoV2VO> listShareAndInviteMoney(@Param("start") long start, @Param("count") int count,
            @Param("date") String date);
 
    /**
     * 统计奖励券总金额
     * 
     * @return
     */
    BigDecimal countRebateCouponMoney();
 
    /**
     * 统计用户已到账
     * 
     * @param uid
     * @param typeList
     * @param minGetTime
     * @param maxGetTime
     * @return
     */
    BigDecimal sumAlreadyGetMoneyByUid(@Param("uid") Long uid, @Param("typeList") List<Integer> typeList,
            @Param("minGetTime") Date minGetTime, @Param("maxGetTime") Date maxGetTime);
 
    long countAlreadyGetMoneyByUid(@Param("uid") Long uid, @Param("typeList") List<Integer> typeList,
            @Param("minGetTime") Date minGetTime, @Param("maxGetTime") Date maxGetTime);
 
 
    /**
     * 统计返利订单
     * @param uid
     * @return
     */
    long countRebateOrder(@Param("uid") Long uid);
    
    /**
     * 统计分享和邀请订单
     * @param uid
     * @return
     */
    long countShareOrInviteOrder(@Param("uid") Long uid);
    
    /**
     * 统计下级产生有效分享奖金
     * @param uid
     * @param teamUid 下级id
     * @param endTime 结束时间
     * @return
     */
 
    BigDecimal getOrderRewardByTeamUid(@Param("uid") Long uid, @Param("teamUid") Long teamUid, @Param("endTime") Date endTime);
 
    /**
     * 统计下级上个有效订单
     * @param uid
     * @param teamUid 下级id
     * @param endTime 结束时间
     * @return
     */
    BigDecimal getOrderRewardByTeamUidTheMonth(@Param("uid") Long uid, @Param("teamUid") Long teamUid);
    
    /**
     * 统计已到账金额
     * @param uid
     * @param list 类型
     * @return
     */
    BigDecimal getRewardMoneyByUid(@Param("uid") Long uid, @Param("list") List<Integer> list);
    
    
    /**
     *  注:1笔且付款总金额不小于 payment 元(退款为失效
     * @param uid
     * @param payment
     * @return
     */
    Long countMyDirectOrderByCashArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment);
    
    
    
    /**
     * 查询用户个类型预计奖金
     * @param uid
     * @param dateType 日期类型
     * @param hbType   红包类型
     * @return
     */
    BigDecimal getRewardMoneyByDate(@Param("uid") Long uid, @Param("day")Integer dateType, 
            @Param("type") Integer hbType, @Param("orderState") Integer orderState,
            @Param("orderNo") String orderNo, @Param("moneyState") Integer moneyState,  
            @Param("startTime") String startTime, @Param("endTime") String endTime,@Param("listSource") List<Integer> listSource);
 
    /**
     * 统计各个订单类型 有效个数
     * @param orderType
     * @param preDay
     * @return
     */
    Long countOrderByTypeAndDate(@Param("orderType") Integer orderType, @Param("preDay") String preDay);
    
    
    /**
     * 统计近日到账收入金额
     * @param uid
     * @param day
     * @return
     */
    BigDecimal sumMoneyArrivalByUidAndNearDay(@Param("uid") Long uid, @Param("day") int day);
 
}