|
@@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
@@ -61,6 +62,25 @@ public class IpDataAssayServiceImpl implements IIpDataAssayService {
|
|
|
new ThreadFactoryBuilder()
|
|
|
.setNameFormat("sync-ipDataAssay-%d").build());
|
|
|
|
|
|
+ @Override
|
|
|
+ public void userHandleByIds(String ids) {
|
|
|
+ List<Long> userIds = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList());
|
|
|
+ List<User> userList = userService.listByIds(userIds);
|
|
|
+ if (CollectionUtils.isEmpty(userList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ userList.forEach(user -> {
|
|
|
+ String ipData = this.ipAssay(user.getIp());
|
|
|
+ log.error("IP解析返回的结果, ipData : {}", ipData);
|
|
|
+ if (Strings.isBlank(ipData)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ userService.update(new LambdaUpdateWrapper<User>()
|
|
|
+ .set(User::getIpData, ipData)
|
|
|
+ .eq(User::getId, user.getId()));
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void userHandle(long supperGameId) {
|
|
|
long page = 1L;
|
|
@@ -74,19 +94,24 @@ public class IpDataAssayServiceImpl implements IIpDataAssayService {
|
|
|
log.error("查询游戏列表列表为空");
|
|
|
return;
|
|
|
}
|
|
|
+ List<User> userList;
|
|
|
do {
|
|
|
Page<User> pageUser = userService.page(new Page<>(page, pageSize), new LambdaQueryWrapper<User>()
|
|
|
.select(User::getId, User::getIp, User::getIpData)
|
|
|
.in(User::getGameId, gameIdList)
|
|
|
.orderByDesc(User::getCreateTime));
|
|
|
totalPage = pageUser.getPages();
|
|
|
- List<User> userList = pageUser.getRecords();
|
|
|
+ userList = pageUser.getRecords();
|
|
|
log.error("用户执行页, page : {}, totalPage : {}, size : {}", page, totalPage, userList.size());
|
|
|
this.pageUserHandle(userList);
|
|
|
} while (++page <= totalPage);
|
|
|
}
|
|
|
|
|
|
private void pageUserHandle(List<User> userList) {
|
|
|
+ if (CollectionUtils.isEmpty(userList)) {
|
|
|
+ log.error("用户单页数据为空, 不处理");
|
|
|
+ return;
|
|
|
+ }
|
|
|
THREAD_POOL_IP_DATA_ASSAY.execute(() -> userList.forEach(user -> {
|
|
|
if (Strings.isNotBlank(user.getIpData())) {
|
|
|
return;
|
|
@@ -107,6 +132,7 @@ public class IpDataAssayServiceImpl implements IIpDataAssayService {
|
|
|
long page = 1L;
|
|
|
long pageSize = 5000L;
|
|
|
long totalPage;
|
|
|
+ List<UserLoginLog> userLoginLogList;
|
|
|
do {
|
|
|
Page<UserLoginLog> pageUserLoginLog = userLoginLogService.page(new Page<>(page, pageSize),
|
|
|
new LambdaQueryWrapper<UserLoginLog>()
|
|
@@ -114,13 +140,17 @@ public class IpDataAssayServiceImpl implements IIpDataAssayService {
|
|
|
.ge(UserLoginLog::getCreateTime, LocalDateTime.now().minusMonths(2))
|
|
|
.orderByDesc(UserLoginLog::getCreateTime));
|
|
|
totalPage = pageUserLoginLog.getPages();
|
|
|
- List<UserLoginLog> userLoginLogList = pageUserLoginLog.getRecords();
|
|
|
+ userLoginLogList = pageUserLoginLog.getRecords();
|
|
|
log.error("登录日志执行页, page : {}, totalPage : {}, size : {}", page, totalPage, userLoginLogList.size());
|
|
|
this.pageUserLoginLogHandle(userLoginLogList);
|
|
|
} while (++page <= totalPage);
|
|
|
}
|
|
|
|
|
|
private void pageUserLoginLogHandle(List<UserLoginLog> userLoginLogList) {
|
|
|
+ if (CollectionUtils.isEmpty(userLoginLogList)) {
|
|
|
+ log.error("登录日志单页数据为空, 不处理");
|
|
|
+ return;
|
|
|
+ }
|
|
|
THREAD_POOL_IP_DATA_ASSAY.execute(() -> userLoginLogList.forEach(userLoginLog -> {
|
|
|
if (Strings.isNotBlank(userLoginLog.getIpData())) {
|
|
|
return;
|