| 
					
				 | 
			
			
				@@ -121,9 +121,7 @@ public class WeComCreateRoomJob { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 iterator.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 addUserList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            addRoomUser(staff, room, vids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 群成员添加存储 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            saveRoomUser(room, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addRoomUser(staff, room, vids, room, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获取当日新创建群 达到上限 不创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long roomCount = weComThirdPartyService.getTodayCreateRoomCount(staff.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -137,17 +135,24 @@ public class WeComCreateRoomJob { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         userDetailJob.syncRoomList(staff.getThirdUuid(), staff); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void addRoomUser(ThirdPartWeComStaff staff, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             ThirdPartWeComRoom room, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             List<Long> vids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private CommonResponse<String> addRoomUser(ThirdPartWeComStaff staff, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                               ThirdPartWeComRoom room, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                               List<Long> vids, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                               ThirdPartWeComRoom roomDetail, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                               List<ThirdPartWeComStaffUser> addUserList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (room.getAddUserStatus() != 1 || room.getMemberCount() >= memberMaxNums) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         InvitationToRoomRequest request = new InvitationToRoomRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         request.setUuid(staff.getThirdUuid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         request.setRoomid(Long.parseLong(room.getThirdRoomId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         request.setVids(vids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        weComThirdPartyService.invitationToRoom(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CommonResponse<String> commonResponse = weComThirdPartyService.invitationToRoom(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Objects.nonNull(commonResponse)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 群成员添加存储 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            saveRoomUser(roomDetail, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return commonResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void createNewRoom(ThirdPartWeComStaff staff, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -156,61 +161,65 @@ public class WeComCreateRoomJob { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Iterator<ThirdPartWeComStaffUser> iterator = staffUserList.iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // todo 暂时每次任务仅创建一个群 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //while (iterator.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Long> vids = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<ThirdPartWeComStaffUser> addUserList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int size = staffUserList.size() > memberMaxNums ? memberMaxNums : staffUserList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> vids = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ThirdPartWeComStaffUser> addUserList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int size = staffUserList.size() > memberMaxNums ? memberMaxNums : staffUserList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while (iterator.hasNext() && size > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ThirdPartWeComStaffUser item = iterator.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vids.add(item.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             size--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iterator.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addUserList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 群创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CreateRoomWxRequest request = new CreateRoomWxRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setUuid(staff.getThirdUuid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setRoomName("票圈快讯" + (++roomNum)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setVids(vids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CreateRoomWxResponse createRoomWxResponse = weComThirdPartyService.createRoom(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Objects.isNull(createRoomWxResponse)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 群管理设置 防骚扰 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        updateRoomManagement(staff, createRoomWxResponse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // add room save 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ThirdPartWeComRoom roomDetail = new ThirdPartWeComRoom(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setCorpId(staff.getCorpId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setStaffId(staff.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setThirdRoomId(createRoomWxResponse.getRoomid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setThirdCreateUserId(createRoomWxResponse.getCreateid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setName(createRoomWxResponse.getRoomname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomDetail.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        roomMapper.insertSelective(roomDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 群成员添加存储 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        saveRoomUser(roomDetail, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 循环添加群成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            GetRoomUserListRequest roomUserListRequest = new GetRoomUserListRequest(staff.getThirdUuid(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Long.valueOf(createRoomWxResponse.getRoomid())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GetRoomUserListResponse.Member> userList = weComThirdPartyService.getRoomUserList(roomUserListRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roomDetail.setMemberCount(userList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roomDetail.setAddUserStatus(userList.size() == memberMaxNums ? 0 : 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roomDetail.setSendStatus(userList.size() > sendMsgStatusNums && autoSendMsg ? 1 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            roomMapper.updateByPrimaryKeySelective(roomDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!iterator.hasNext() || userList.size() == memberMaxNums) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vids = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            size = Math.min(staffUserList.size(), memberMaxNums - userList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             while (iterator.hasNext() && size > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ThirdPartWeComStaffUser item = iterator.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 vids.add(item.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 size--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 iterator.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                addUserList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 群创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CreateRoomWxRequest request = new CreateRoomWxRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            request.setUuid(staff.getThirdUuid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            request.setRoomName("票圈快讯" + (++roomNum)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            request.setVids(vids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CreateRoomWxResponse createRoomWxResponse = weComThirdPartyService.createRoom(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 群管理设置 防骚扰 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            updateRoomManagement(staff, createRoomWxResponse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // add room save 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ThirdPartWeComRoom roomDetail = new ThirdPartWeComRoom(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setCorpId(staff.getCorpId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setStaffId(staff.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setThirdRoomId(createRoomWxResponse.getRoomid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setThirdCreateUserId(createRoomWxResponse.getCreateid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setName(createRoomWxResponse.getRoomname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomDetail.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            roomMapper.insertSelective(roomDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 群成员添加存储 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            saveRoomUser(roomDetail, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 循环添加群成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                GetRoomUserListRequest roomUserListRequest = new GetRoomUserListRequest(staff.getThirdUuid(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Long.valueOf(createRoomWxResponse.getRoomid())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<GetRoomUserListResponse.Member> userList = weComThirdPartyService.getRoomUserList(roomUserListRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                roomDetail.setMemberCount(userList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                roomDetail.setAddUserStatus(userList.size() == memberMaxNums ? 0 : 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                roomDetail.setSendStatus(userList.size() > sendMsgStatusNums && autoSendMsg ? 1 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                roomMapper.updateByPrimaryKeySelective(roomDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!iterator.hasNext() || userList.size() == memberMaxNums) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                vids = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                size = Math.min(staffUserList.size(), memberMaxNums - userList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                while (iterator.hasNext() && size > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ThirdPartWeComStaffUser item = iterator.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    vids.add(item.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    size--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    iterator.remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                addRoomUser(staff, roomDetail, vids); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 群成员添加存储 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                saveRoomUser(roomDetail, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CommonResponse<String> commonResponse = addRoomUser(staff, roomDetail, vids, roomDetail, addUserList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Objects.isNull(commonResponse)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |