|
@@ -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) {
|