撤回消息时,先删除旧消息,再插入新消息

This commit is contained in:
heavyrain lee
2019-07-21 22:29:24 +08:00
parent 3f640b6c14
commit 1fb3c757e2
2 changed files with 21 additions and 0 deletions
@@ -594,6 +594,25 @@ public class DatabaseStore {
return null;
}
void deleteMessage(long messageId) {
String sql = "delete from " + MessageShardingUtil.getMessageTable(messageId) + " where _mid = ?";
Connection connection = null;
PreparedStatement statement = null;
try {
connection = DBUtil.getConnection();
statement = connection.prepareStatement(sql);
statement.setLong(1, messageId);
int count = statement.executeUpdate();
LOG.info("Update rows {}", count);
} catch (SQLException e) {
e.printStackTrace();
Utility.printExecption(LOG, e);
} finally {
DBUtil.closeDB(connection, statement);
}
}
List<WFCMessage.Message> loadRemoteMessages(String user, WFCMessage.Conversation conversation, long beforeUid, int count) {
List<WFCMessage.Message> messages = loadRemoteMessagesFromTable(user, conversation, beforeUid, count, MessageShardingUtil.getMessageTable(beforeUid));
if (messages != null && messages.size() < count) {
@@ -1235,6 +1235,8 @@ public class MemoryMessagesStore implements IMessagesStore {
message = message.toBuilder().setContent(message.getContent().toBuilder().setContent(operatorId).setType(80).clearSearchableContent().setData(ByteString.copyFrom(new StringBuffer().append(messageUid).toString().getBytes())).build()).build();
messageBundle.setMessage(message);
databaseStore.deleteMessage(messageUid);
mIMap.put(messageUid, messageBundle, 7, TimeUnit.DAYS);
return ErrorCode.ERROR_CODE_SUCCESS;
} else {