From 2c0703636443655e2c0d11bec3150bfb4dbc4432 Mon Sep 17 00:00:00 2001 From: heavyrain2012 Date: Sat, 3 Apr 2021 16:29:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=93=E7=BE=A4=E6=88=90=E5=91=98=E8=A2=AB?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=90=8E=E5=86=8D=E6=AC=A1=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=88=B0=E7=BE=A4=E7=BB=84=E4=B8=AD=EF=BC=8CcreateTime?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E4=BC=9A=E6=9C=80=E5=90=8E=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E7=BE=A4=E7=BB=84=E7=9A=84=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/moquette/persistence/DatabaseStore.java | 8 +++++++- .../io/moquette/persistence/MemoryMessagesStore.java | 12 ++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java index cab77486..021ca770 100644 --- a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java +++ b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java @@ -1702,7 +1702,7 @@ public class DatabaseStore { } } - void persistGroupMember(final String groupId, final List memberList) { + void persistGroupMember(final String groupId, final List 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); } diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 8422f203..208c04de 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -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); } }