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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
package com.yeshi.fanli.service.inter.order;
 
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
import com.yeshi.fanli.dto.ChartTDO;
import com.yeshi.fanli.dto.order.CountOrderDTO;
import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate;
 
public interface CommonOrderCountService {
 
    /**
     * 当前各个状态订单数
     * 
     * @param state
     *            状态
     * @return
     */
    public Long countByState(Integer state);
 
 
    /**
     * 统计总金额
     * 
     * @param dateType
     * @param year
     * @param startTime
     * @param endTime
     * @return
     * @throws Exception
     */
    public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime)
            throws Exception;
 
    /**
     * 统计总个数
     * 
     * @param dateType
     * @param year
     * @param startTime
     * @param endTime
     * @return
     * @throws Exception
     */
    public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime)
            throws Exception;
 
    /**
     * 根据结算时间统计
     * 
     * @param uid
     * @param state
     * @param day
     * @return
     * @throws Exception
     */
    public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day);
 
    /**
     * 根据结算时间筛选 上个月已结算的订订单数量
     * 
     * @param uid
     * @return
     */
    public Map<String, Object> lastMonthSettleOrderNumber(Long uid);
 
    /**
     * 根据订单号 统计奖励券加成金额
     * 
     * @param orderNo
     * @return
     */
    BigDecimal getMoneyByOrderNo(String orderNo);
 
    /**
     * 统计已到账返利订单
     * 
     * @param uid
     * @param dateTime
     * @return
     */
    public long countValidOrderByDate(Long uid, String dateTime);
 
    /**
     * 查询用户在同一店铺购买超过一定数量商品的店铺数量
     * 
     * @param typeList
     *            -红包类型
     * @param uid
     *            -用户ID
     * @param minSameShopGoodsCount
     *            -同一店铺买的最小订单数
     * @return
     */
    long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
 
    /**
     * 查询用户购买相同商品超过一定的订单数量的商品数量
     * 
     * @param typeList
     * @param uid
     * @param minSameGoodsOrderCount
     * @return
     */
    long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
 
    
    /**
     * 查询用户在同一店铺购买超过一定数量商品的店铺id
     * 
     * @param typeList
     *            -红包类型
     * @param uid
     *            -用户ID
     * @param minSameShopGoodsCount
     *            -同一店铺买的最小订单数
     * @return
     */
    List<Long> getSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
 
    /**
     * 查询用户购买相同商品超过一定的订单数量的商品id
     * 
     * @param typeList
     * @param uid
     * @param minSameGoodsOrderCount
     * @return
     */
    List<Long> getSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
 
    /**
     * 统计日期内产生有效订单数量(返利 + 分享)
     * @param preDay
     * @param uid
     * @return
     */
    public Integer countOderByUidAndDate(Date preDay, Long uid);
    
    /**
     * 统计日期内产生有效订单数量(返利 + 分享) 多个uid
     * @param preDay
     * @param uid
     * @return
     */
    //public Integer countOrderByUidsAndDate(Date preDay, List<Long> list);
    /**
     * 统计再此时间内  产生订单的用户数量
     * @param preDay
     * @param list
     * @return
     */
    public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list);
 
    /**
     * 统计订单佣金
     * @param preDay
     * @param list
     * @return
     */
    List<CountOrderDTO> countCommissionByDay(String preDay);
    
    /**
     * 总订单数 每-天
     * @param preDay
     * @return
     */
    public Integer countOderByDate(String preDay);
 
    /**
     * 统计订单佣金
     * @param preDay
     * @return
     */
    public BigDecimal countCommissionByDate(String preDay);
 
    /**
     * 当日每个用户下单数量
     * @param preDay
     * @return
     */
    public List<CountOrderDTO> countValidOrderByDay(String preDay);
 
    /**
     * 统计跟踪率
     * @param type
     * @param startTime
     * @param endTime
     * @return
     */
    public List<CountOrderTrackRate> getOrderTrackRate(int type, Date startTime, Date endTime);
 
 
    /**
     * 查询最近50小于10的订单数量
     * @param uid
     * @return
     */
    public Integer countOderByUidAndLess10(Long uid);
    
 
 
    public Long countOrderBySourceTypeAndDay(int source, String preDay);
 
 
    public List<Long> getDownOrderUserByListUidAndDate(Date preDay, List<Long> list);
 
    /**
     * 查询当日下单用户
     * @param preDay
     * @return
     */
    public List<Long> getUidByValidOrderByDay(String preDay);
 
 
    /**
     * 统计最近day天有效订单数量
     * @param uid
     * @param source
     * @param day
     * @return
     */
    public long countOrderBySourceAndNearDay(Long uid, int source, int day);
}