From 94466139f614469690c474eab8414a549683c87c Mon Sep 17 00:00:00 2001 From: imhao183 Date: Thu, 11 Jun 2020 15:31:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=A4=E6=88=90=E5=91=98=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- broker/migrate/h2/V30__add_group_member_create_dt.sql | 1 + broker/migrate/mysql/V35__add_group_member_create_dt.sql | 1 + .../main/java/io/moquette/persistence/DatabaseStore.java | 8 ++++++-- .../java/io/moquette/persistence/MemoryMessagesStore.java | 8 ++++---- 4 files changed, 12 insertions(+), 6 deletions(-) create mode 100755 broker/migrate/h2/V30__add_group_member_create_dt.sql create mode 100755 broker/migrate/mysql/V35__add_group_member_create_dt.sql diff --git a/broker/migrate/h2/V30__add_group_member_create_dt.sql b/broker/migrate/h2/V30__add_group_member_create_dt.sql new file mode 100755 index 00000000..30bff398 --- /dev/null +++ b/broker/migrate/h2/V30__add_group_member_create_dt.sql @@ -0,0 +1 @@ +alter table t_group_member add column `_create_dt` bigint(20) DEFAULT 0; diff --git a/broker/migrate/mysql/V35__add_group_member_create_dt.sql b/broker/migrate/mysql/V35__add_group_member_create_dt.sql new file mode 100755 index 00000000..cd18871f --- /dev/null +++ b/broker/migrate/mysql/V35__add_group_member_create_dt.sql @@ -0,0 +1 @@ +alter table t_group_member add column `_create_dt` bigint(20) DEFAULT 0, COMMENT "group member create time"; diff --git a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java index e64294f7..7d80d3cf 100644 --- a/broker/src/main/java/io/moquette/persistence/DatabaseStore.java +++ b/broker/src/main/java/io/moquette/persistence/DatabaseStore.java @@ -331,7 +331,7 @@ public class DatabaseStore { String sql = "select `_mid`" + ", `_alias`" + ", `_type`" + - ", `_dt` from t_group_member where _gid = ?"; + ", `_dt`, `_create_dt` from t_group_member where _gid = ?"; statement = connection.prepareStatement(sql); statement.setString(1, groupId); @@ -358,6 +358,9 @@ public class DatabaseStore { long longValue = rs.getLong(index++); builder.setUpdateDt(longValue); + longValue = rs.getLong(index++); + builder.setCreateDt(longValue); + WFCMessage.GroupMember member = builder.build(); groupMembers.put(groupId, member); } @@ -1652,7 +1655,7 @@ public class DatabaseStore { ", `_mid`" + ", `_alias`" + ", `_type`" + - ", `_dt`) values(?, ?, ?, ?, ?)" + + ", `_dt`, `_create_dt`) values(?, ?, ?, ?, ?, ?)" + " ON DUPLICATE KEY UPDATE " + "`_alias` = ?," + "`_type` = ?," + @@ -1673,6 +1676,7 @@ public class DatabaseStore { statement.setString(index++, member.getAlias()); statement.setInt(index++, member.getType()); statement.setLong(index++, dt); + statement.setLong(index++, member.getCreateDt()); statement.setString(index++, member.getAlias()); statement.setInt(index++, member.getType()); statement.setLong(index++, dt); diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 7d4f9ccf..5ad41eeb 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -781,9 +781,9 @@ public class MemoryMessagesStore implements IMessagesStore { List updatedMemberList = new ArrayList<>(); for (WFCMessage.GroupMember member : memberList) { if (member.getMemberId().equals(groupInfo.getOwner())) { - member = member.toBuilder().setUpdateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); + member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); } else { - member = member.toBuilder().setUpdateDt(dt).build(); + member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).build(); } groupMembers.put(groupId, member); updatedMemberList.add(member); @@ -843,9 +843,9 @@ public class MemoryMessagesStore implements IMessagesStore { ArrayList newInviteUsers = new ArrayList<>(); for (WFCMessage.GroupMember member : memberList) { if (member.getMemberId().equals(groupInfo.getOwner())) { - member = member.toBuilder().setType(GroupMemberType_Owner).setUpdateDt(updateDt).setAlias("").build(); + member = member.toBuilder().setType(GroupMemberType_Owner).setUpdateDt(updateDt).setCreateDt(updateDt).setAlias("").build(); } else { - member = member.toBuilder().setType(GroupMemberType_Normal).setUpdateDt(updateDt).setAlias("").build(); + member = member.toBuilder().setType(GroupMemberType_Normal).setUpdateDt(updateDt).setCreateDt(updateDt).setAlias("").build(); } tmp.add(member); newInviteUsers.add(member.getMemberId());