| 
					
				 | 
			
			
				@@ -59,7 +59,7 @@ public class RiskRuleConfigService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //防止误踢,只有满足存在五个正常群人数才会生效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public FixedRuleResult getFixedRulesForThisChat(String chatId, String roomId) throws ParseException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public FixedRuleResult getFixedRulesForThisChat(String chatId, String roomId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FixedRuleResult ruleResult = new FixedRuleResult(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         WorkWechatRoomInfoExample example = new WorkWechatRoomInfoExample(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         example.createCriteria().andRoomIdEqualTo(roomId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,19 +69,26 @@ public class RiskRuleConfigService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ruleResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         WorkWechatRoomInfo roomInfo = examples.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置为UTC+8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Date date = sdf.parse(roomInfo.getUpdateTime().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long roomUpdateTime = date.getTime() / 1000; // 正确的UTC时间戳 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        Instant instant = roomInfo.getUpdateTime().toInstant(); // 转为UTC时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        long roomUpdateTime = instant.getEpochSecond(); // 直接获取秒级时间戳 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        long roomUpdateTime = roomInfo.getUpdateTime().getTime()/1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long roomUpdateTime =  roomInfo.getUpdateTime().getTime()/1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("getFixedRulesForThisChat, roomId: {}, roomUpdateTime: {}", roomId, roomUpdateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<UserListFromAdPlatformModel.ChatMember> memberList = getUserListFromAdPlatform(chatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (memberList == null || memberList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.error("checkIfOpenedForFixedRules, memberList is empty for chatId: {}", chatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ruleResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 打印所有成员的joinTime和roomUpdateTime用于调试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            memberList.forEach(member -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (member.getJoinTime() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    log.info( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            "Member ID: " + member.getNickName() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    ", joinTime: " + member.getJoinTime() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    ", roomUpdateTime: " + roomUpdateTime + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    ", isAfter: " + (member.getJoinTime() > roomUpdateTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    System.out.println("Member ID: " + member.getNickName() + ", joinTime: null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //开关开启后的加入的数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             int size = (int) memberList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .filter(member -> member.getJoinTime() != null && member.getJoinTime() > roomUpdateTime) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -93,8 +100,10 @@ public class RiskRuleConfigService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ruleResult.normalCount = normalSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ruleResult.abnormalCount = size - normalSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("checkIfOpenedForFixedRules, chatId: {}, size: {}, normalSize: {},total size:{}", chatId, size, normalSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(normalSize >= USER_COUNT_THRESHOLD) {//大于等于3才生效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                log.info("checkIfOpenedForFixedRules, chatId: {}, size: {}, normalSize: {}", chatId, size, normalSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.info("checkIfOpenedForFixedRules, size: {}, normalSize: {}", size, normalSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //如果群成员大于30人,才判断异常用户比例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ruleResult.isNormalCountEnough = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (size >= USER_COUNT_THRESHOLD_FOR_ANOMALY_USER_RATIO) { 
			 |