yujian
2019-10-08 0c78c7aaeaa5a427bc8a5c5faf3cd6bbb589c2da
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
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.dto.ChartTDO;
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);
 
    /**
     * 统计总金额
     * 
     * @param channel
     *            渠道
     * @param type
     * @param state
     * @param years
     * @param startTime
     * @param endTime
     * @return
     */
    List<ChartTDO> countHongBaoMoney(@Param("channel") String channel, @Param("dateType") Integer dateType,
            @Param("state") Integer state, @Param("year") String year, @Param("startTime") String startTime,
            @Param("endTime") String endTime);
 
    /**
     * 统计总个数
     * 
     * @param channel
     *            渠道
     * @param type
     * @param state
     * @param years
     * @param startTime
     * @param endTime
     * @return
     */
    List<ChartTDO> countHongBaoNum(@Param("channel") String channel, @Param("dateType") Integer dateType,
            @Param("state") Integer state, @Param("year") String year, @Param("startTime") String startTime,
            @Param("endTime") String endTime);
 
    /**
     * 统计总个数
     * 
     * @param channel
     *            渠道
     * @param type
     * @param state
     * @param years
     * @param startTime
     * @param endTime
     * @return
     */
    List<ChartTDO> countHongBaoType(@Param("dateType") Integer dateType, @Param("type") Integer type,
            @Param("year") String year, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
    /**
     * 统计总个数
     * 
     * @param channel
     *            渠道
     * @param type
     * @param state
     * @param years
     * @param startTime
     * @param endTime
     * @return
     */
    List<ChartTDO> countHongBaoTotalNum(@Param("dateType") Integer dateType, @Param("year") String year,
            @Param("startTime") String startTime, @Param("endTime") String endTime);
 
    // 累计提成订单数量(包含无效订单)
    int getTotalTiChengCount(Long uid);
 
    /**
     * 统计未失效订单数量
     * 
     * @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);
 
    /**
     * 根据渠道 统计新增用户24小时内产生的订单数量
     * 
     * @param channel
     * @return
     */
    List<ChartTDO> count24HOderByChannel(@Param("channel") String channel, @Param("type") Integer type,
            @Param("years") String years, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
    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);
 
}