yujian
2020-05-06 eb1adc13eda955e8ef0fc9fe41fb246fa89b722d
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
package com.yeshi.fanli.dao.mybatis.order;
 
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
import org.apache.ibatis.annotations.Param;
 
import com.yeshi.fanli.dto.ChartTDO;
import com.yeshi.fanli.dto.order.CountOrderDTO;
 
public interface CommonOrderCountMapper {
 
    /**
     * 当前各个状态订单数
     * 
     * @param state
     *            状态
     * @return
     */
    Long countByState(@Param("state") Integer state);
 
    
    /**
     * 统计所有订单
     * 
     * @param channel
     * @return
     */
    Long countOrderBySourceTypeAndDay(@Param("preDay") String preDay, @Param("sourceType") int sourceType);
 
    
    /**
     * 统计所有订单
     * 
     * @param channel
     * @return
     */
    List<ChartTDO> countOrderNumber(@Param("dateType") Integer dateType, @Param("year") String year,
            @Param("startTime") String startTime, @Param("endTime") String endTime,
            @Param("sourceType") int sourceType);
 
    
    
    /**
     * 奖金统计
     * 
     * @param uid
     * @return
     */
    Map<String, Object> countOrderNumberBySettleTime(@Param("uid") Long uid, @Param("state") Integer state,
            @Param("day") Integer day);
 
    /**
     * 统计自购、分享有效订单数量
     * 
     * @param uid
     * @return
     */
    long countValidOrder(@Param("uid") Long uid);
 
    /**
     * 根据订单号 查询金额
     * 
     * @param orderNo
     * @return
     */
    BigDecimal getMoneyByOrderNo(@Param("orderNo") String orderNo);
 
    /**
     * 统计已到账返利订单
     * 
     * @param uid
     * @param dateTime
     * @return
     */
    long countValidOrderByDate(@Param("uid") Long uid, @Param("dateTime") String dateTime);
 
    /**
     * 查询用户在同一店铺购买超过一定数量商品的店铺数量
     * 
     * @param typeList
     *            -红包类型
     * @param uid
     *            -用户ID
     * @param minSameShopGoodsCount
     *            -同一店铺买的最小订单数
     * @return
     */
    long countSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
            @Param("minSameShopGoodsCount") int minSameShopGoodsCount);
    
    /**
     * 查询用户购买相同商品超过一定的订单数量的商品数量
     * @param typeList
     * @param uid
     * @param minSameGoodsOrderCount
     * @return
     */
    long countSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
            @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount);
    
    
    /**
     * 查询用户在同一店铺购买超过一定数量商品的店铺id
     * 
     * @param typeList
     *            -红包类型
     * @param uid
     *            -用户ID
     * @param minSameShopGoodsCount
     *            -同一店铺买的最小订单数
     * @return
     */
    List<Long> getSameShopOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
            @Param("minSameShopGoodsCount") int minSameShopGoodsCount);
    
    /**
     * 查询用户购买相同商品超过一定的订单数量的商品id
     * @param typeList
     * @param uid
     * @param minSameGoodsOrderCount
     * @return
     */
    List<Long> getSameGoodsOrderByUidAndHongBaoType(@Param("typeList") List<Integer> typeList, @Param("uid") Long uid,
            @Param("minSameGoodsOrderCount") int minSameGoodsOrderCount);
    
    
    /**
     * 通过uid 日期筛选   下单数量
     * @param preDay
     * @param uid  
     * @return
     */
    Integer countOderByUidAndDate(@Param("preDay") Date preDay,@Param("uid") Long uid);
    
    /**
     *  日期筛选  每个用户下单数量
     * @param preDay
     * @param uid  
     * @return
     */
    List<CountOrderDTO> countValidOrderByDay(@Param("preDay") String preDay);
    
    /**
     * 查询当日下单用户
     * @param preDay
     * @return
     */
    List<Long> getUidByValidOrderByDay(@Param("preDay") String preDay);
    
    /**
     * 通过多个uid 日期筛选 下单用户数量
     * @param preDay
     * @param uid  
     * @return
     */
    Integer countDownOrderUserByUidAndDate(@Param("preDay") Date preDay,@Param("list") List<Long> list);
    
    /**
     * 统计订单产生佣金
     * @param preDay
     * @param list
     * @return
     */
    List<CountOrderDTO> countCommissionByDay(@Param("preDay") String preDay);
    
    /**
     * 通过uid 日期筛选   下单数量
     * @param preDay
     * @return
     */
    Integer countOderByDate(@Param("preDay") String preDay);
    
    /**
     * 统计订单产生佣金
     * @param preDay
     * @return
     */
    BigDecimal countCommissionByDate(@Param("preDay") String preDay);
    
    
    /**
     * 查询最近50小于10的订单数量
     * @param uid
     * @return
     */
    Integer countOderByUidAndLess10(@Param("uid") Long uid);
    
    
    List<Long> getDownOrderUserByListUidAndDate(@Param("preDay") Date preDay,@Param("list") List<Long> list);
    
    
    /**
     * 统计近 day天有效订单数量
     * @param uid
     * @param source
     * @param day
     * @return
     */
    Long countOrderBySourceAndNearDay(@Param("uid") Long uid, @Param("source") int source, @Param("day") int day);
    
    
}