Fix modify group not work issue
This commit is contained in:
@@ -49,3 +49,5 @@ maven-metadata.xml
|
||||
/bin/
|
||||
broker/config/git.properties
|
||||
distribution/src/main/resources/git.properties
|
||||
broker/h2db
|
||||
broker/media
|
||||
|
||||
@@ -732,12 +732,31 @@ public class DatabaseStore {
|
||||
", `_extra`" +
|
||||
", `_dt`" +
|
||||
", `_member_count`" +
|
||||
", `_member_dt`) values(?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
", `_member_dt`) values(?, ?, ?, ?, ?, ?, ?, ?, ?)" +
|
||||
" ON DUPLICATE KEY UPDATE " +
|
||||
"`_name` = ?," +
|
||||
"`_portrait` = ?," +
|
||||
"`_owner` = ?," +
|
||||
"`_type` = ?," +
|
||||
"`_extra` = ?," +
|
||||
"`_dt` = ?," +
|
||||
"`_member_count` = ?," +
|
||||
"`_member_dt` = ?";
|
||||
|
||||
|
||||
statement = connection.prepareStatement(sql);
|
||||
|
||||
int index = 1;
|
||||
statement.setString(index++, groupInfo.getTargetId());
|
||||
statement.setString(index++, groupInfo.getName());
|
||||
statement.setString(index++, groupInfo.getPortrait());
|
||||
statement.setString(index++, groupInfo.getOwner());
|
||||
statement.setInt(index++, groupInfo.getType());
|
||||
statement.setString(index++, groupInfo.getExtra());
|
||||
statement.setLong(index++, groupInfo.getUpdateDt() == 0 ? System.currentTimeMillis() : groupInfo.getUpdateDt());
|
||||
statement.setInt(index++, groupInfo.getMemberCount());
|
||||
statement.setLong(index++, groupInfo.getMemberUpdateDt() == 0 ? System.currentTimeMillis() : groupInfo.getUpdateDt());
|
||||
|
||||
statement.setString(index++, groupInfo.getName());
|
||||
statement.setString(index++, groupInfo.getPortrait());
|
||||
statement.setString(index++, groupInfo.getOwner());
|
||||
|
||||
@@ -10,12 +10,13 @@ package io.moquette.persistence;
|
||||
|
||||
import cn.wildfirechat.proto.WFCMessage;
|
||||
import com.hazelcast.core.MapLoader;
|
||||
import com.hazelcast.core.MapStore;
|
||||
import io.moquette.server.Server;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
public class GroupLoader implements MapLoader<String, WFCMessage.GroupInfo> {
|
||||
public class GroupLoader implements MapStore<String, WFCMessage.GroupInfo> {
|
||||
private DatabaseStore getDatabaseStore() {
|
||||
return Server.getServer().getStore().messagesStore().getDatabaseStore();
|
||||
}
|
||||
@@ -51,18 +52,31 @@ public class GroupLoader implements MapLoader<String, WFCMessage.GroupInfo> {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all of the keys from the store. The returned {@link Iterable} may return the keys lazily
|
||||
* by loading them in batches. The {@link Iterator} of this {@link Iterable} may implement the
|
||||
* {@link Closeable} interface in which case it will be closed once iteration is over.
|
||||
* This is intended for releasing resources such as closing a JDBC result set.
|
||||
* <p>
|
||||
* The returned Iterable should not contain any <code>null</code> keys.
|
||||
*
|
||||
* @return all the keys. Keys inside the Iterable cannot be null.
|
||||
*/
|
||||
|
||||
@Override
|
||||
public Iterable<String> loadAllKeys() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void store(String key, WFCMessage.GroupInfo value) {
|
||||
getDatabaseStore().persistGroupInfo(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storeAll(Map<String, WFCMessage.GroupInfo> map) {
|
||||
for (WFCMessage.GroupInfo value : map.values()) {
|
||||
getDatabaseStore().persistGroupInfo(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(String key) {
|
||||
getDatabaseStore().removeGroupInfoFromDB(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAll(Collection<String> keys) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -591,7 +591,6 @@ public class MemoryMessagesStore implements IMessagesStore {
|
||||
.build();
|
||||
|
||||
mIMap.put(groupId, groupInfo);
|
||||
databaseStore.persistGroupInfo(groupInfo);
|
||||
MultiMap<String, WFCMessage.GroupMember> groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS);
|
||||
|
||||
for (WFCMessage.GroupMember member : memberList) {
|
||||
@@ -767,8 +766,7 @@ public class MemoryMessagesStore implements IMessagesStore {
|
||||
|
||||
groupMembers.remove(groupId);
|
||||
mIMap.remove(groupId);
|
||||
|
||||
databaseStore.removeGroupInfoFromDB(groupId);
|
||||
|
||||
databaseStore.removeGroupMemberFromDB(groupId);
|
||||
|
||||
return ErrorCode.ERROR_CODE_SUCCESS;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<!--MySQL数据库用户名-->
|
||||
<property name="user">root</property>
|
||||
<!--MySQL数据库密码-->
|
||||
<property name="password">lt123456</property>
|
||||
<property name="password">123456</property>
|
||||
<!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3-->
|
||||
<property name="initialPoolSize">10</property>
|
||||
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
|
||||
|
||||
Reference in New Issue
Block a user