Fix modify group not work issue
This commit is contained in:
@@ -49,3 +49,5 @@ maven-metadata.xml
|
|||||||
/bin/
|
/bin/
|
||||||
broker/config/git.properties
|
broker/config/git.properties
|
||||||
distribution/src/main/resources/git.properties
|
distribution/src/main/resources/git.properties
|
||||||
|
broker/h2db
|
||||||
|
broker/media
|
||||||
|
|||||||
@@ -732,12 +732,31 @@ public class DatabaseStore {
|
|||||||
", `_extra`" +
|
", `_extra`" +
|
||||||
", `_dt`" +
|
", `_dt`" +
|
||||||
", `_member_count`" +
|
", `_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);
|
statement = connection.prepareStatement(sql);
|
||||||
|
|
||||||
int index = 1;
|
int index = 1;
|
||||||
statement.setString(index++, groupInfo.getTargetId());
|
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.getName());
|
||||||
statement.setString(index++, groupInfo.getPortrait());
|
statement.setString(index++, groupInfo.getPortrait());
|
||||||
statement.setString(index++, groupInfo.getOwner());
|
statement.setString(index++, groupInfo.getOwner());
|
||||||
|
|||||||
@@ -10,12 +10,13 @@ package io.moquette.persistence;
|
|||||||
|
|
||||||
import cn.wildfirechat.proto.WFCMessage;
|
import cn.wildfirechat.proto.WFCMessage;
|
||||||
import com.hazelcast.core.MapLoader;
|
import com.hazelcast.core.MapLoader;
|
||||||
|
import com.hazelcast.core.MapStore;
|
||||||
import io.moquette.server.Server;
|
import io.moquette.server.Server;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class GroupLoader implements MapLoader<String, WFCMessage.GroupInfo> {
|
public class GroupLoader implements MapStore<String, WFCMessage.GroupInfo> {
|
||||||
private DatabaseStore getDatabaseStore() {
|
private DatabaseStore getDatabaseStore() {
|
||||||
return Server.getServer().getStore().messagesStore().getDatabaseStore();
|
return Server.getServer().getStore().messagesStore().getDatabaseStore();
|
||||||
}
|
}
|
||||||
@@ -51,18 +52,31 @@ public class GroupLoader implements MapLoader<String, WFCMessage.GroupInfo> {
|
|||||||
return null;
|
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
|
@Override
|
||||||
public Iterable<String> loadAllKeys() {
|
public Iterable<String> loadAllKeys() {
|
||||||
return null;
|
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();
|
.build();
|
||||||
|
|
||||||
mIMap.put(groupId, groupInfo);
|
mIMap.put(groupId, groupInfo);
|
||||||
databaseStore.persistGroupInfo(groupInfo);
|
|
||||||
MultiMap<String, WFCMessage.GroupMember> groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS);
|
MultiMap<String, WFCMessage.GroupMember> groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS);
|
||||||
|
|
||||||
for (WFCMessage.GroupMember member : memberList) {
|
for (WFCMessage.GroupMember member : memberList) {
|
||||||
@@ -768,7 +767,6 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
groupMembers.remove(groupId);
|
groupMembers.remove(groupId);
|
||||||
mIMap.remove(groupId);
|
mIMap.remove(groupId);
|
||||||
|
|
||||||
databaseStore.removeGroupInfoFromDB(groupId);
|
|
||||||
databaseStore.removeGroupMemberFromDB(groupId);
|
databaseStore.removeGroupMemberFromDB(groupId);
|
||||||
|
|
||||||
return ErrorCode.ERROR_CODE_SUCCESS;
|
return ErrorCode.ERROR_CODE_SUCCESS;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<!--MySQL数据库用户名-->
|
<!--MySQL数据库用户名-->
|
||||||
<property name="user">root</property>
|
<property name="user">root</property>
|
||||||
<!--MySQL数据库密码-->
|
<!--MySQL数据库密码-->
|
||||||
<property name="password">lt123456</property>
|
<property name="password">123456</property>
|
||||||
<!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3-->
|
<!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3-->
|
||||||
<property name="initialPoolSize">10</property>
|
<property name="initialPoolSize">10</property>
|
||||||
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
|
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
|
||||||
|
|||||||
Reference in New Issue
Block a user