当群成员被删除后再次加入到群组中,createTime应该会最后一次加入群组的时间

This commit is contained in:
heavyrain2012
2021-04-03 16:29:01 +08:00
parent 1a460f1b29
commit 2c07036364
2 changed files with 13 additions and 7 deletions
@@ -1702,7 +1702,7 @@ public class DatabaseStore {
}
}
void persistGroupMember(final String groupId, final List<WFCMessage.GroupMember> memberList) {
void persistGroupMember(final String groupId, final List<WFCMessage.GroupMember> memberList, boolean updateCreateTime) {
Connection connection = null;
PreparedStatement statement = null;
try {
@@ -1718,6 +1718,9 @@ public class DatabaseStore {
"`_alias` = ?," +
"`_type` = ?," +
"`_dt` = ?";
if(updateCreateTime) {
sql += ", `_create_dt` = ?";
}
statement = connection.prepareStatement(sql);
@@ -1738,6 +1741,9 @@ public class DatabaseStore {
statement.setString(index++, member.getAlias());
statement.setInt(index++, member.getType());
statement.setLong(index++, dt);
if(updateCreateTime) {
statement.setLong(index++, dt);
}
int count = statement.executeUpdate();
LOG.info("Update rows {}", count);
}
@@ -972,7 +972,7 @@ public class MemoryMessagesStore implements IMessagesStore {
.build();
mIMap.set(groupId, groupInfo);
databaseStore.persistGroupMember(groupId, updatedMemberList);
databaseStore.persistGroupMember(groupId, updatedMemberList, false);
callbackGroupEvent(fromUser, groupInfo.getTargetId(), ProtoConstants.GroupUpdateEventType.Group_Event_Create);
return groupInfo;
@@ -1191,7 +1191,7 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
databaseStore.persistGroupMember(groupId, memberList);
databaseStore.persistGroupMember(groupId, memberList, true);
databaseStore.updateGroupMemberCountDt(groupId);
groupMembers.remove(groupId);
@@ -1516,7 +1516,7 @@ public class MemoryMessagesStore implements IMessagesStore {
if (member.getMemberId().equals(memberId)) {
groupMembers.remove(groupId, member);
member = member.toBuilder().setAlias(alias).setUpdateDt(updateDt).build();
databaseStore.persistGroupMember(groupId, Arrays.asList(member));
databaseStore.persistGroupMember(groupId, Arrays.asList(member), false);
databaseStore.updateGroupMemberDt(groupId, updateDt);
groupMembers.put(groupId, member);
@@ -1673,13 +1673,13 @@ public class MemoryMessagesStore implements IMessagesStore {
if (newOwner.equals(member.getMemberId())) {
groupMembers.remove(groupId, member);
member = member.toBuilder().setType(GroupMemberType_Owner).setUpdateDt(updateDt).build();
databaseStore.persistGroupMember(groupId, Arrays.asList(member));
databaseStore.persistGroupMember(groupId, Arrays.asList(member), false);
groupMembers.put(groupId, member);
modifyMemeberCount++;
} else if(member.getType() == GroupMemberType_Owner) {
groupMembers.remove(groupId, member);
member = member.toBuilder().setType(GroupMemberType_Normal).setUpdateDt(updateDt).build();
databaseStore.persistGroupMember(groupId, Arrays.asList(member));
databaseStore.persistGroupMember(groupId, Arrays.asList(member), false);
groupMembers.put(groupId, member);
modifyMemeberCount++;
}
@@ -1717,7 +1717,7 @@ public class MemoryMessagesStore implements IMessagesStore {
if (userList.contains(member.getMemberId())) {
groupMembers.remove(groupId, member);
member = member.toBuilder().setType(type == 0 ? ProtoConstants.GroupMemberType.GroupMemberType_Normal : ProtoConstants.GroupMemberType.GroupMemberType_Manager).setUpdateDt(updateDt).build();
databaseStore.persistGroupMember(groupId, Arrays.asList(member));
databaseStore.persistGroupMember(groupId, Arrays.asList(member), false);
groupMembers.put(groupId, member);
}
}