yujian
2020-05-06 a338d86bcaf17f2ba9296a601cdbda4d3e9baae0
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
package com.yeshi.fanli.dao.mybatis;
 
import java.math.BigDecimal;
import java.util.List;
 
import org.apache.ibatis.annotations.Param;
 
import com.yeshi.fanli.dto.ChartTDO;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.vo.user.UserInfoVO;
 
public interface UserInfoMapper {
 
    int deleteByPrimaryKey(Long id);
 
    int insert(UserInfo record);
 
    int insertSelective(UserInfo record);
 
    UserInfo selectByPrimaryKey(Long id);
 
    /**
     * 查询有效的
     * 
     * @param id
     * @return
     */
    UserInfo selectAvailableByPrimaryKey(Long id);
 
    UserInfo selectByPrimaryKeyForUpdate(Long id);
 
    int updateByPrimaryKeySelective(UserInfo record);
 
    int updateByPrimaryKey(UserInfo record);
 
    // 减掉用户红包金额
    int subHongBaoByUid(@Param("uid") long uid, @Param("money") BigDecimal money);
 
    // 增加用户红包金额
    int addHongBaoByUid(@Param("uid") long uid, @Param("money") BigDecimal money);
 
    void cleanPassword(long id);
 
    BigDecimal getNewPeopleHB(Long id);
 
    BigDecimal getMyHB(Long id);
 
    // 根据AppId与微信unionID获取用户
    List<UserInfo> listByAppIdAndWXUnionId(@Param("appId") String appId, @Param("unionId") String unionId);
 
    // 根据AppId与淘宝OpenId获取用户
    List<UserInfo> listByAppIdAndTaoBaoOpenId(@Param("appId") String appId, @Param("openId") String openId);
 
    // 根据AppId与电话号码获取用户
    List<UserInfo> listByAppIdAndPhone(@Param("appId") String appId, @Param("phone") String phone);
 
    // 根据获取电话号码有效用户
    UserInfo getEffectiveUserInfoByPhone(@Param("phone") String phone);
 
    // 根据获WXUnionId有效用户
    UserInfo getEffectiveUserInfoByWXUnionId(@Param("unionId") String unionId);
    
    //根据微信openid查询
    UserInfo getEffectiveUserInfoByWXOpenId(@Param("wxOpenId") String wxOpenId);
 
    Long getMaxUid();
 
    /**
     * 融合账号
     * 
     * @param mainUid-主账号
     * @param lessUid-副账号
     */
    void connectUser(@Param("mainUid") Long mainUid, @Param("lessUid") Long lessUid);
 
    /**
     * 
     * @param start
     * @param count
     * @param key
     *            查询条件
     * @param userType
     *            用户类型
     * @param days
     *            天数
     * @param startTime
     *            注册时间 -小
     * @param endTime
     *            注册时间 -大
     * @param orderMode
     *            排序方式
     * @return
     */
    List<UserInfoVO> query(@Param("start") long start, @Param("count") int count, @Param("userState") Integer userState,
            @Param("key") String key, @Param("keyType") Integer keyType, @Param("userRank") String userRank,
            @Param("days") Integer days, @Param("startTime") String startTime, @Param("endTime") String endTime,
            @Param("orderField") Integer orderField, @Param("orderMode") Integer orderMode,
            @Param("userType") Integer userType, @Param("level")String level, @Param("activeCode") Integer activeCode);
 
    long queryCount(@Param("userState") Integer userState, @Param("key") String key, @Param("keyType") Integer keyType,
            @Param("userRank") String userRank, @Param("days") Integer days, @Param("startTime") String startTime,
            @Param("endTime") String endTime,@Param("userType") Integer userType, @Param("level")String level,
            @Param("activeCode") Integer activeCode);
 
    /**
     * 统计当前查询结果总金额
     * 
     * @param title
     * @param userType
     * @param days
     * @param startTime
     * @param endTime
     * @return
     */
    double querySumMoney(@Param("key") String key, @Param("userType") Integer userType, @Param("days") Integer days,
            @Param("startTime") String startTime, @Param("endTime") String endTime);
 
    /**
     * 统计用户数量
     * 
     * @param isToday
     *            统计今日
     * @param isMonth
     *            统计当月 二则不可同时存在
     * @return
     */
    long countNewUser(@Param("isToday") Integer isToday, @Param("isMonth") Integer isMonth);
 
    /**
     * 根据等级统计用户数量
     * 
     * @param rank
     * @return
     */
    long countRank(@Param("rank") Integer rank);
 
    /**
     * 统计所有用户总金额 或 可提现金额
     * 
     * @param minMoney
     * @return
     */
    BigDecimal countAllMoney(@Param("minMoney") Double minMoney);
 
    /**
     * 超过 daysNum 天未登陆的用户
     * 
     * @param minMoney
     * @return
     */
    List<Long> longTimeNoLogin(@Param("daysNum") int daysNum, @Param("list") List<Long> list);
 
    /**
     * 统计流失用户数量:( num 天未使用登录并且无任何资金流动的账号数量)
     * 
     * @param num
     *            180
     * @return
     */
    long countLoseUser(@Param("num") int num);
 
    /**
     * 累计有购买用户数
     * 
     * @return
     */
    long countHasOrderUser();
 
    /**
     * 统计新增用户
     * 
     * @return
     */
    List<ChartTDO> countNewUserByDate(@Param("channel") String channel, @Param("type") Integer type,
            @Param("years") String years, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
    /**
     * 统计新增用户当日产生订单用户数量
     * 
     * @return
     */
    List<ChartTDO> getTodayHasOrder(@Param("channel") String channel, @Param("type") Integer type,
            @Param("years") String years, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
    /**
     * 统计新增用户一周产生订单用户数量
     * 
     * @return
     */
    ChartTDO getWeekHasOrder(@Param("channel") String channel, @Param("startTime") String startTime,
            @Param("endTime") String endTime, @Param("orderNum") Integer orderNum);
 
    /**
     * 根据电话号码、邀请码获取邀请用户
     * 
     * @param phone
     * @param inviteCode
     * @return
     */
    UserInfo getUserInfoByInviteCode(@Param("inviteCode") String inviteCode);
 
    // 根据AppId与电话号码获取用户
    List<UserInfo> listByClosed(@Param("appId") String appId, @Param("phone") String phone);
 
    long countAvaiableUser();
 
    /**
     * 查询满足自动提现用户
     * 
     * @param start
     * @param count
     * @return
     */
 
    List<UserInfo> getAutoExtractUser(@Param("start") int start, @Param("count") int count,
            @Param("money") BigDecimal money, @Param("beganDate") String beganDate, @Param("endDate") String endDate);
 
    /**
     * 根据type检索
     * @param type
     * @param start
     * @param count
     * @return
     */
    List<UserInfo> listByType(@Param("type")int type,@Param("start") long start, @Param("count")int count);
 
    long countByType(int type);
    
    /**
     * 查询满足自动提现用户
     * @param start
     * @param count
     * @return
     */
    List<UserInfo> getAutoExtractUserTo1212(@Param("start") int start, @Param("count") int count);
}