退出群组时,删掉收藏的群组
This commit is contained in:
@@ -688,6 +688,43 @@ public class DatabaseStore {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void removeFavGroup(final String groupId, final List<String> memberIds) {
|
||||||
|
Connection connection = null;
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
try {
|
||||||
|
connection = DBUtil.getConnection();
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder("update t_user_setting set _value = ?, _dt = ? where _uid in (");
|
||||||
|
for (int i = 0; i < memberIds.size(); i++) {
|
||||||
|
sb.append("?");
|
||||||
|
if (i != memberIds.size() - 1) {
|
||||||
|
sb.append(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
|
||||||
|
sb.append(" and _scope = 6 and _key = ?");
|
||||||
|
|
||||||
|
statement = connection.prepareStatement(sb.toString());
|
||||||
|
int index = 1;
|
||||||
|
statement.setString(index++, "0");
|
||||||
|
statement.setLong(index++, System.currentTimeMillis());
|
||||||
|
for (int i = 0; i < memberIds.size(); i++) {
|
||||||
|
statement.setString(index++, memberIds.get(i));
|
||||||
|
}
|
||||||
|
statement.setString(index++, groupId);
|
||||||
|
|
||||||
|
int count = statement.executeUpdate();
|
||||||
|
LOG.info("Update rows {}", count);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
Utility.printExecption(LOG, e);
|
||||||
|
} finally {
|
||||||
|
DBUtil.closeDB(connection, statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void persistUserSetting(final String userId, WFCMessage.UserSettingEntry entry) {
|
void persistUserSetting(final String userId, WFCMessage.UserSettingEntry entry) {
|
||||||
mScheduler.execute(()->{
|
mScheduler.execute(()->{
|
||||||
Connection connection = null;
|
Connection connection = null;
|
||||||
|
|||||||
@@ -717,6 +717,8 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
long updateDt = System.currentTimeMillis();
|
long updateDt = System.currentTimeMillis();
|
||||||
ArrayList<WFCMessage.GroupMember> list = new ArrayList<>();
|
ArrayList<WFCMessage.GroupMember> list = new ArrayList<>();
|
||||||
List<WFCMessage.GroupMember> allMembers = new ArrayList<>(groupMembers.get(groupId));
|
List<WFCMessage.GroupMember> allMembers = new ArrayList<>(groupMembers.get(groupId));
|
||||||
|
|
||||||
|
List<String> removedIds = new ArrayList<>();
|
||||||
for (WFCMessage.GroupMember member : allMembers) {
|
for (WFCMessage.GroupMember member : allMembers) {
|
||||||
if (memberList.contains(member.getMemberId())) {
|
if (memberList.contains(member.getMemberId())) {
|
||||||
boolean removed = groupMembers.remove(groupId, member);
|
boolean removed = groupMembers.remove(groupId, member);
|
||||||
@@ -725,6 +727,7 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
member = member.toBuilder().setType(GroupMemberType_Removed).setUpdateDt(updateDt).build();
|
member = member.toBuilder().setType(GroupMemberType_Removed).setUpdateDt(updateDt).build();
|
||||||
groupMembers.put(groupId, member);
|
groupMembers.put(groupId, member);
|
||||||
list.add(member);
|
list.add(member);
|
||||||
|
removedIds.add(member.getMemberId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -735,9 +738,23 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
mIMap.put(groupId, groupInfo.toBuilder().setMemberUpdateDt(updateDt).setUpdateDt(updateDt).setMemberCount(groupInfo.getMemberCount() - removeCount).build());
|
mIMap.put(groupId, groupInfo.toBuilder().setMemberUpdateDt(updateDt).setUpdateDt(updateDt).setMemberCount(groupInfo.getMemberCount() - removeCount).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeFavGroup(groupId, removedIds);
|
||||||
|
|
||||||
return ErrorCode.ERROR_CODE_SUCCESS;
|
return ErrorCode.ERROR_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void removeFavGroup(String groupId, List<String> memberIds) {
|
||||||
|
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
|
||||||
|
MultiMap<String, WFCMessage.UserSettingEntry> userSettingMap = hzInstance.getMultiMap(USER_SETTING);
|
||||||
|
|
||||||
|
databaseStore.removeFavGroup(groupId, memberIds);
|
||||||
|
|
||||||
|
for (String member : memberIds) {
|
||||||
|
userSettingMap.remove(member);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ErrorCode quitGroup(String operator, String groupId) {
|
public ErrorCode quitGroup(String operator, String groupId) {
|
||||||
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
|
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
|
||||||
@@ -783,6 +800,8 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
if (removed) {
|
if (removed) {
|
||||||
mIMap.put(groupId, groupInfo.toBuilder().setMemberUpdateDt(updateDt).setUpdateDt(updateDt).setMemberCount(groupInfo.getMemberCount() - 1).build());
|
mIMap.put(groupId, groupInfo.toBuilder().setMemberUpdateDt(updateDt).setUpdateDt(updateDt).setMemberCount(groupInfo.getMemberCount() - 1).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeFavGroup(groupId, Arrays.asList(operator));
|
||||||
return ErrorCode.ERROR_CODE_SUCCESS;
|
return ErrorCode.ERROR_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -808,11 +827,20 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
|
|
||||||
MultiMap<String, WFCMessage.GroupMember> groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS);
|
MultiMap<String, WFCMessage.GroupMember> groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS);
|
||||||
|
|
||||||
|
Collection<WFCMessage.GroupMember> members = groupMembers.get(groupId);
|
||||||
groupMembers.remove(groupId);
|
groupMembers.remove(groupId);
|
||||||
mIMap.remove(groupId);
|
mIMap.remove(groupId);
|
||||||
|
|
||||||
databaseStore.removeGroupMemberFromDB(groupId);
|
databaseStore.removeGroupMemberFromDB(groupId);
|
||||||
|
|
||||||
|
ArrayList<String> ids = new ArrayList<>();
|
||||||
|
if (members != null) {
|
||||||
|
for (WFCMessage.GroupMember member : members) {
|
||||||
|
ids.add(member.getMemberId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
removeFavGroup(groupId, ids);
|
||||||
|
|
||||||
return ErrorCode.ERROR_CODE_SUCCESS;
|
return ErrorCode.ERROR_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user