支持获取用户群组指定群成员类型

This commit is contained in:
heavyrian2012
2023-10-10 12:51:40 +08:00
parent 7727fad4dc
commit c17a5be171
8 changed files with 156 additions and 1 deletions
@@ -1845,6 +1845,45 @@ public class DatabaseStore {
return null;
}
Set<String> getUserGroupIds(String userId, List<Integer> memberTypes) {
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
connection = DBUtil.getConnection();
String sql = "select _gid from t_group_member where _mid = ? ";
if(!memberTypes.isEmpty()) {
sql += " and _type in (";
for (int i = 0; i < memberTypes.size(); i++) {
if(i > 0) {
sql += ",";
}
sql += memberTypes.get(i);
}
sql += ")";
}
statement = connection.prepareStatement(sql);
statement.setString(1, userId);
rs = statement.executeQuery();
Set<String> out = new HashSet<>();
while (rs.next()) {
String uid = rs.getString(1);
out.add(uid);
}
return out;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Utility.printExecption(LOG, e, RDBS_Exception);
} finally {
DBUtil.closeDB(connection, statement, rs);
}
return null;
}
Set<String> getCommonGroupIds(String userId1, String userId2) {
Connection connection = null;
PreparedStatement statement = null;
@@ -1944,6 +1944,11 @@ public class MemoryMessagesStore implements IMessagesStore {
return databaseStore.getUserGroupIds(userId);
}
@Override
public Set<String> getUserGroupIds(String userId, List<Integer> memberTypes) {
return databaseStore.getUserGroupIds(userId, memberTypes);
}
@Override
public Set<String> getCommonGroupIds(String userId1, String userId2) {
return databaseStore.getCommonGroupIds(userId1, userId2);
@@ -119,6 +119,7 @@ public interface IMessagesStore {
List<WFCMessage.GroupInfo> getGroupInfos(List<WFCMessage.UserRequest> requests, String fromUser, boolean isAdmin);
WFCMessage.GroupInfo getGroupInfo(String groupId);
Set<String> getUserGroupIds(String userId);
Set<String> getUserGroupIds(String userId, List<Integer> types);
Set<String> getCommonGroupIds(String userId1, String userId2);
ErrorCode getGroupMembers(String fromUser, String groupId, long maxDt, List<WFCMessage.GroupMember> members);
WFCMessage.GroupMember getGroupMember(String groupId, String memberId);