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
package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.Actives;
import cn.wisenergy.model.app.UserData;
import cn.wisenergy.model.dto.UserDto;
import cn.wisenergy.model.dto.UsersInfoDto;
import cn.wisenergy.model.vo.UserQueryVo;
import cn.wisenergy.service.Manager.UserDataManger;
import cn.wisenergy.service.app.UserDataService;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author 86187
*/
@Service
@Slf4j
public class UserDataServiceImpl implements UserDataService {
@Resource
private UsersMapper usersMapper;
@Resource
private ActivesMapper activesMapper;
@Resource
private UserRechargeMapper userRechargeMapper;
@Resource
private UserWithdrawsMapper withdrawsMapper;
@Resource
private UsdtOrderDetailsMapper orderDetailsMapper;
@Resource
private UserDataManger userDataManger;
@Resource
private UserDataMapper userDataMapper;
@Override
public R<Boolean> addBatch(UserQueryVo queryVo) {
//获取所有用户数据
List<UserDto> userDtos = usersMapper.getAllUserData(queryVo.getStartNo(), queryVo.getEndNo());
if (CollectionUtils.isEmpty(userDtos)) {
return R.ok(1, false);
}
List<UserData> list = new ArrayList<>();
for (UserDto userDto : userDtos) {
Long userId = userDto.getUserId();
UserData userData = new UserData();
//1、用户基本信息
userData.setUserId(userDto.getUserId());
userData.setPhone(userDto.getPhone());
userData.setRank(userDto.getRank());
//2、用户身份、电话信息
Actives actives = activesMapper.getByUserId(userId);
if (null != actives) {
userData.setIdNumber(actives.getIdNumber());
userData.setRealName(actives.getRealName());
}
//3、向下最深层级层级数、伞下人员总和
UsersInfoDto userInfoDto = usersMapper.getLevelAndTotal(userId);
if (null != userInfoDto) {
if (null != userInfoDto.getBottom()) {
userData.setBottom(userInfoDto.getBottom() - userDto.getRank());
}
userData.setTotalPeople(userInfoDto.getTotalPeople());
}
//4、充值总额
Double totalRecharge = userRechargeMapper.getTotalRecharge(userId);
userData.setTotalRecharge(totalRecharge);
//5、提现总额
Double totalWithdrawal = withdrawsMapper.getTotalWithdrawal(userId);
userData.setTotalWithdrawal(totalWithdrawal);
//6、otc卖出总额
Double buyTotal = orderDetailsMapper.getBuyTotal(userId);
userData.setBuyTotal(buyTotal);
//7、otc买入总额
Double saleTotal = orderDetailsMapper.getSaleTotal(userId);
userData.setSaleTotal(saleTotal);
//8、充币地址
String receiveAddr = userRechargeMapper.getReceiveAddr(userId);
userData.setReceiveAddr(receiveAddr);
list.add(userData);
}
//写入数据库
boolean bool = userDataManger.saveBatchUserData(list);
if (!bool) {
return R.ok(1, false);
}
return R.ok(0, true);
}
@Override
public R<List<Long>> getUserIds(Integer startNo, Integer endNo) {
List<Long> userIds = usersMapper.getUserIds(startNo, endNo);
List<Long> list = new ArrayList<>();
for (Long userId : userIds) {
//判断是否存在统计数据
Long id = userDataMapper.getUserId(userId);
if (null == id) {
list.add(userId);
}
}
return R.ok(list);
}
}