|
@@ -30,7 +30,14 @@ public class RiskUserOperateService {
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(RiskUserHandleService.class);
|
|
|
|
|
|
public boolean checkAndKickExternalUser(UserBase staff,RiskUserInfo riskUserInfo,long vid,long roomId) {
|
|
|
+ LOGGER.info("checkAndKickExternalUser, staff: {}, riskUserInfo: {}, vid: {}, roomId: {}", staff, riskUserInfo, vid, roomId);
|
|
|
boolean inRoom = isInRoom(staff, roomId, vid);
|
|
|
+ if (!inRoom) {
|
|
|
+ LOGGER.info("User {} is not in room {}", vid, roomId);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ LOGGER.info("User {} is in room {}", vid, roomId);
|
|
|
+ kick(staff, roomId, vid);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -41,13 +48,30 @@ public class RiskUserOperateService {
|
|
|
requestBody.put("oprType", 1);
|
|
|
requestBody.put("blacklist_vid",Arrays.asList(vid));
|
|
|
String params = JSON.toJSONString(requestBody);
|
|
|
- Optional<String> response = httpPoolClientDefault.postJson(qywxConfig.getDomain() + qywxConfig.getPath("get-chatList"), params);
|
|
|
+ LOGGER.info("kick, staff: {}, params: {}", staff, params);
|
|
|
+ Optional<String> response = httpPoolClientDefault.postJson(qywxConfig.getDomain() + qywxConfig.getPath(" kick-external"), params);
|
|
|
+ if (response.isPresent()) {
|
|
|
+ QwCommonResModel<RoomListResponse> roomInfo = QwCommonResModel.parseResponse(response.get(), RoomListResponse.class);
|
|
|
+ if (roomInfo.getErrcode() == 0) {
|
|
|
+ LOGGER.info("Kick external user {} from room {} successfully", vid, roomId);
|
|
|
+ } else {
|
|
|
+ LOGGER.error("Failed to kick external user {} from room {}: {}", vid, roomId, roomInfo.getErrmsg());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ LOGGER.error("Failed to kick external user {} from room {}: No response", vid, roomId);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//增加校验,是否在群内
|
|
|
public boolean isInRoom(UserBase staff, long roomId,long vid) {
|
|
|
List<RoomMemberListInfo.Member> memberList = getRoomMemberList(staff, roomId);
|
|
|
+ if (memberList == null || memberList.isEmpty()) {
|
|
|
+ LOGGER.info("isInRoom, memberList is empty");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ LOGGER.info("isInRoom, memberList: {}", memberList);
|
|
|
for (RoomMemberListInfo.Member member : memberList) {
|
|
|
+ LOGGER.info("isInRoom, member: {}", member);
|
|
|
if (member.getUin() == vid) {
|
|
|
return true;
|
|
|
}
|
|
@@ -59,9 +83,11 @@ public class RiskUserOperateService {
|
|
|
Map<String, Object> requestBody = new HashMap<>();
|
|
|
requestBody.put("uuid", staff.getUuid());
|
|
|
requestBody.put("roomId", roomId);
|
|
|
- LOGGER.info("getRoomMemberList, staff: {}", staff);
|
|
|
+// LOGGER.info("getRoomMemberList, staff: {}", staff);
|
|
|
String params = JSON.toJSONString(requestBody);
|
|
|
- Optional<String> response = httpPoolClientDefault.postJson(qywxConfig.getDomain() + qywxConfig.getPath("get-roomMembers"), params);
|
|
|
+ String url = qywxConfig.getDomain() + qywxConfig.getPath("get-roomMembers");
|
|
|
+ Optional<String> response = httpPoolClientDefault.postJson(url, params);
|
|
|
+ LOGGER.info("getRoomMemberList, params: {}, response: {},url: {}", params, response, url);
|
|
|
List<RoomMemberListInfo.Member> memberList = new ArrayList<>();
|
|
|
if (response.isPresent()) {
|
|
|
QwCommonResModel<RoomMemberListInfo> memberInfo = QwCommonResModel.parseResponse(response.get(), RoomMemberListInfo.class);
|