|  | @@ -896,7 +896,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 | 
	
		
			
				|  |  |          // 100个线程的无界线程池
 | 
	
		
			
				|  |  |          ExecutorService executorService = Executors.newFixedThreadPool(100);
 | 
	
		
			
				|  |  |          int page = 1;
 | 
	
		
			
				|  |  | -        int size = 400;
 | 
	
		
			
				|  |  | +        int size = 100;
 | 
	
		
			
				|  |  |          QueryInfo queryInfo = new QueryInfo();
 | 
	
		
			
				|  |  |          queryInfo.setPage(page);
 | 
	
		
			
				|  |  |          queryInfo.setRows(size);
 | 
	
	
		
			
				|  | @@ -905,7 +905,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 | 
	
		
			
				|  |  |          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |          int total = imGroupPageInfo.getTotal();
 | 
	
		
			
				|  |  |          int importImGroupCount = 0;
 | 
	
		
			
				|  |  | -        int num = (int) Math.ceil(total / 400);
 | 
	
		
			
				|  |  | +        int num = (int) Math.ceil(total / 100);
 | 
	
		
			
				|  |  |          for (int i = 0; i <=num ; i++) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              imGroupPageInfo = this.queryPage(queryInfo);
 | 
	
	
		
			
				|  | @@ -929,11 +929,42 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 | 
	
		
			
				|  |  |                  throw new BizException("时间区间参数错误,格式为:yyyy-MM-dd");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              List<Future<?>> list = new ArrayList<>();
 | 
	
		
			
				|  |  | -            for (List<ImGroup> imGroups : Lists.partition(rows, 10)) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            rows.forEach(imGroup -> {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  list.add(executorService.submit(() -> {
 | 
	
		
			
				|  |  | -                    groupTransfer(imGroups);
 | 
	
		
			
				|  |  | +                    log.info("群销毁开始:{}", imGroup.getId());
 | 
	
		
			
				|  |  | +                    // 先删除群组
 | 
	
		
			
				|  |  | +                    try {
 | 
	
		
			
				|  |  | +                        // 解散群
 | 
	
		
			
				|  |  | +                        imPluginContext.getPluginService().groupDismiss(imGroup.getId(), new ArrayList<>());
 | 
	
		
			
				|  |  | +                    } catch (Exception e) {
 | 
	
		
			
				|  |  | +                        log.error(String.format("群迁移删除群聊失败:%s", e.getMessage()), e);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }));
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            for (Future<?> future : list) {
 | 
	
		
			
				|  |  | +                try {
 | 
	
		
			
				|  |  | +                    future.get();
 | 
	
		
			
				|  |  | +                } catch (Exception e){
 | 
	
		
			
				|  |  | +                    log.error("群销毁失败",e);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            try {
 | 
	
		
			
				|  |  | +                Thread.sleep(1500);
 | 
	
		
			
				|  |  | +            } catch (InterruptedException e) {
 | 
	
		
			
				|  |  | +                log.error("线程休眠失败",e);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            list.clear();
 | 
	
		
			
				|  |  | +            for (ImGroup row : rows) {
 | 
	
		
			
				|  |  | +                list.add(executorService.submit(() -> {
 | 
	
		
			
				|  |  | +                    groupTransfer(Lists.newArrayList(row));
 | 
	
		
			
				|  |  | +                }));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              for (Future<?> future : list) {
 | 
	
		
			
				|  |  |                  try {
 | 
	
		
			
				|  |  |                      future.get();
 | 
	
	
		
			
				|  | @@ -953,18 +984,6 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          for (ImGroup imGroup : records) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            log.info("群销毁开始:{}", imGroup.getId());
 | 
	
		
			
				|  |  | -            // 先删除群组
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                // 解散群
 | 
	
		
			
				|  |  | -                imPluginContext.getPluginService().groupDismiss(imGroup.getId(), new ArrayList<>());
 | 
	
		
			
				|  |  | -            } catch (Exception e) {
 | 
	
		
			
				|  |  | -                log.error(String.format("群迁移删除群聊失败:%s", e.getMessage()), e);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        for (ImGroup imGroup : records) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              log.info("群迁移开始:{}", imGroup.getId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              GroupMemberQueryInfo groupMemberQueryInfo = new GroupMemberQueryInfo();
 | 
	
	
		
			
				|  | @@ -984,7 +1003,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  importGroup.setType("Public");
 | 
	
		
			
				|  |  |                  importGroup.setGroupId(imGroup.getId());
 | 
	
		
			
				|  |  | -                importGroup.setName(imGroup.getName());
 | 
	
		
			
				|  |  | +                importGroup.setName(StringUtils.isBlank(imGroup.getName())?imGroup.getId():imGroup.getName());
 | 
	
		
			
				|  |  |                  importGroup.setIntroduction(imGroup.getIntroduce());
 | 
	
		
			
				|  |  |                  importGroup.setNotification(imGroup.getMemo());
 | 
	
		
			
				|  |  |                  importGroup.setFaceUrl(imGroup.getImg());
 | 
	
	
		
			
				|  | @@ -996,29 +1015,32 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 | 
	
		
			
				|  |  |                      imGroup.setCreateTime(DateTime.now().plusYears(-1).toDate());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  importGroup.setCreateTime(imGroup.getCreateTime().getTime() / 1000);
 | 
	
		
			
				|  |  | -                if (admin != null) {
 | 
	
		
			
				|  |  | -                    register(admin.getUserId().toString(), getClientType(admin.getRoleType()),"");
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +//                if (admin != null) {
 | 
	
		
			
				|  |  | +//                    register(admin.getUserId().toString(), getClientType(admin.getRoleType()),"");
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  |                  imPluginContext.getPluginService().importGroup(importGroup);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  List<ImGroupMember> groupMembers = pageInfo.getRows().stream()
 | 
	
		
			
				|  |  |                          .filter(next -> !next.getIsAdmin()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                if (groupMembers.isEmpty()) {
 | 
	
		
			
				|  |  | -                    imGroupDao.updateImportStatusSuccess(imGroup.getId());
 | 
	
		
			
				|  |  | -                    continue;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  groupMembers = groupMembers
 | 
	
		
			
				|  |  |                      .stream()
 | 
	
		
			
				|  |  |                      .filter(next -> next.getUserId() != null && next.getUserId() > 0)
 | 
	
		
			
				|  |  |                      .collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                for (ImGroupMember member : groupMembers) {
 | 
	
		
			
				|  |  | -                    try {
 | 
	
		
			
				|  |  | -                        register(member.getUserId().toString(), getClientType(member.getRoleType()),"");
 | 
	
		
			
				|  |  | -                    }catch (Exception e){
 | 
	
		
			
				|  |  | -                        log.error("用户注册失败",e);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if (groupMembers.isEmpty()) {
 | 
	
		
			
				|  |  | +                    imGroupDao.updateImportStatusSuccess(imGroup.getId());
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//                for (ImGroupMember member : groupMembers) {
 | 
	
		
			
				|  |  | +//                    try {
 | 
	
		
			
				|  |  | +//                        register(member.getUserId().toString(), getClientType(member.getRoleType()),"");
 | 
	
		
			
				|  |  | +//                    }catch (Exception e){
 | 
	
		
			
				|  |  | +//                        log.error("用户注册失败",e);
 | 
	
		
			
				|  |  | +//                    }
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  |                  MessageWrapper.ImportGroupMember importGroupMember = new MessageWrapper.ImportGroupMember();
 | 
	
		
			
				|  |  |                  importGroupMember.setGroupId(imGroup.getId());
 | 
	
		
			
				|  |  |                  Date date = new DateTime(imGroup.getCreateTime()).plusSeconds(3).toDate();
 |