删除好友通知

This commit is contained in:
heavyrain lee
2019-07-04 10:19:07 +08:00
parent 09c333501f
commit 25ce10fa61
3 changed files with 17 additions and 5 deletions
@@ -14,10 +14,18 @@ import io.netty.buffer.ByteBuf;
import cn.wildfirechat.common.ErrorCode;
import win.liyufan.im.IMTopic;
import static cn.wildfirechat.common.ErrorCode.ERROR_CODE_SUCCESS;
@Handler(IMTopic.DeleteFriendTopic)
public class DeleteFriendHandler extends IMHandler<WFCMessage.IDBuf> {
@Override
public ErrorCode action(ByteBuf ackPayload, String clientID, String fromUser, boolean isAdmin, WFCMessage.IDBuf request, Qos1PublishHandler.IMCallback callback) {
return m_messagesStore.deleteFriend(fromUser, request.getId());
long[] head = new long[2];
ErrorCode errorCode = m_messagesStore.deleteFriend(fromUser, request.getId(), head);
if (errorCode == ERROR_CODE_SUCCESS) {
publisher.publishNotification(IMTopic.NotifyFriendTopic, fromUser, head[0]);
publisher.publishNotification(IMTopic.NotifyFriendTopic, request.getId(), head[1]);
}
return errorCode;
}
}
@@ -1829,7 +1829,7 @@ public class MemoryMessagesStore implements IMessagesStore {
}
@Override
public ErrorCode deleteFriend(String userId, String friendUid) {
public ErrorCode deleteFriend(String userId, String friendUid, long[] head) {
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
MultiMap<String, FriendData> friendsMap = hzInstance.getMultiMap(USER_FRIENDS);
Collection<FriendData> user1Friends = friendsMap.get(userId);
@@ -1839,8 +1839,10 @@ public class MemoryMessagesStore implements IMessagesStore {
for (FriendData data :
user1Friends) {
if (data.getFriendUid().equals(friendUid)) {
long ts = System.currentTimeMillis();
head[0] = ts;
data.setState(1);
data.setTimestamp(System.currentTimeMillis());
data.setTimestamp(ts);
databaseStore.persistOrUpdateFriendData(data);
break;
}
@@ -1854,7 +1856,9 @@ public class MemoryMessagesStore implements IMessagesStore {
user2Friends) {
if (data.getFriendUid().equals(userId)) {
data.setState(1);
data.setTimestamp(System.currentTimeMillis());
long ts = System.currentTimeMillis();
head[1] = ts;
data.setTimestamp(ts);
databaseStore.persistOrUpdateFriendData(data);
break;
}
@@ -154,7 +154,7 @@ public interface IMessagesStore {
ErrorCode saveAddFriendRequest(String userId, WFCMessage.AddFriendRequest request, long[] head);
ErrorCode handleFriendRequest(String userId, WFCMessage.HandleFriendRequest request, WFCMessage.Message.Builder msgBuilder, long[] heads, boolean isAdmin);
ErrorCode deleteFriend(String userId, String friendUid);
ErrorCode deleteFriend(String userId, String friendUid, long[] head);
ErrorCode blackUserRequest(String fromUser, String targetUserId, int status, long[] head);
ErrorCode SyncFriendRequestUnread(String userId, long unreadDt, long[] head);
boolean isBlacked(String fromUser, String userId);