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