feat(sdk): add new admin APIs to Java SDK
- queryUserState - kickUsers - batchSendMessage - adminSetMsgRead - importMessages - checkFriends - modifyGroupMemberInfo Also add FriendCheckResult and ImportMessageRequest models.
这个提交包含在:
父节点
3f4d78f175
当前提交
edd2adc5aa
@ -1030,6 +1030,93 @@ public final class XuqmImServerSdk {
|
||||
return response.data();
|
||||
}
|
||||
|
||||
public Map<String, Boolean> queryUserState(List<String> userIds) {
|
||||
Map<String, String> query = new LinkedHashMap<>();
|
||||
query.put("userIds", String.join(",", userIds));
|
||||
ApiResponse<Map<String, Boolean>> response = request(
|
||||
"GET",
|
||||
buildUri("/api/im/admin/users/state", query),
|
||||
null,
|
||||
authorizedHeaders(),
|
||||
new TypeReference<>() {}
|
||||
);
|
||||
return response.data();
|
||||
}
|
||||
|
||||
public void kickUsers(String appId, List<String> userIds) {
|
||||
Map<String, String> query = new LinkedHashMap<>();
|
||||
query.put("appId", appId);
|
||||
request(
|
||||
"POST",
|
||||
buildUri("/api/im/admin/users/kick", query),
|
||||
Map.of("userIds", userIds),
|
||||
authorizedHeaders(),
|
||||
new TypeReference<ApiResponse<Void>>() {}
|
||||
);
|
||||
}
|
||||
|
||||
public List<ImMessage> batchSendMessage(String appId, List<String> toIds, String msgType, String content) {
|
||||
Map<String, String> query = new LinkedHashMap<>();
|
||||
query.put("appId", appId);
|
||||
ApiResponse<List<ImMessage>> response = request(
|
||||
"POST",
|
||||
buildUri("/api/im/admin/messages/batch-send", query),
|
||||
Map.of("toIds", toIds, "msgType", msgType, "content", content),
|
||||
authorizedHeaders(),
|
||||
new TypeReference<>() {}
|
||||
);
|
||||
return response.data();
|
||||
}
|
||||
|
||||
public void adminSetMsgRead(String appId, String userId) {
|
||||
Map<String, String> query = new LinkedHashMap<>();
|
||||
query.put("appId", appId);
|
||||
request(
|
||||
"POST",
|
||||
buildUri("/api/im/admin/messages/read", query),
|
||||
Map.of("userId", userId),
|
||||
authorizedHeaders(),
|
||||
new TypeReference<ApiResponse<Void>>() {}
|
||||
);
|
||||
}
|
||||
|
||||
public List<ImMessage> importMessages(String appId, List<ImportMessageRequest> requests) {
|
||||
Map<String, String> query = new LinkedHashMap<>();
|
||||
query.put("appId", appId);
|
||||
ApiResponse<List<ImMessage>> response = request(
|
||||
"POST",
|
||||
buildUri("/api/im/admin/messages/import", query),
|
||||
requests,
|
||||
authorizedHeaders(),
|
||||
new TypeReference<>() {}
|
||||
);
|
||||
return response.data();
|
||||
}
|
||||
|
||||
public List<FriendCheckResult> checkFriends(String appId, List<String> friendIds) {
|
||||
Map<String, String> query = new LinkedHashMap<>();
|
||||
query.put("appId", appId);
|
||||
ApiResponse<List<FriendCheckResult>> response = request(
|
||||
"POST",
|
||||
buildUri("/api/im/friends/check", query),
|
||||
Map.of("friendIds", friendIds),
|
||||
authorizedHeaders(),
|
||||
new TypeReference<>() {}
|
||||
);
|
||||
return response.data();
|
||||
}
|
||||
|
||||
public GroupView modifyGroupMemberInfo(String groupId, String userId, String nickName) {
|
||||
ApiResponse<GroupView> response = request(
|
||||
"PUT",
|
||||
buildUri("/api/im/groups/" + encode(groupId) + "/members/" + encode(userId) + "/info", appQuery()),
|
||||
Map.of("nickName", nickName),
|
||||
authorizedHeaders(),
|
||||
new TypeReference<>() {}
|
||||
);
|
||||
return response.data();
|
||||
}
|
||||
|
||||
public void setConversationPinned(String targetId, String chatType, boolean pinned) {
|
||||
Map<String, String> query = appQuery();
|
||||
query.put("chatType", chatType);
|
||||
@ -1816,6 +1903,19 @@ public final class XuqmImServerSdk {
|
||||
|
||||
public record RequestBatch(List<String> requestIds) {}
|
||||
|
||||
public record FriendCheckResult(String userId, boolean isFriend) {}
|
||||
|
||||
public record ImportMessageRequest(
|
||||
String messageId,
|
||||
String fromUserId,
|
||||
String toId,
|
||||
String chatType,
|
||||
String msgType,
|
||||
String content,
|
||||
String status,
|
||||
String createdAt
|
||||
) {}
|
||||
|
||||
public static final class ImSdkException extends RuntimeException {
|
||||
public ImSdkException(String message) {
|
||||
super(message);
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户