修改配置,增加如下功能

1,添加黑名单处理策略,发送失败或者忽略掉对方。
2,添加好友再次请求的时间间隔配置和好友请求被拒绝后再次请求的时间间隔配置
This commit is contained in:
imhao183
2019-12-30 08:48:17 +08:00
parent 9d1031594e
commit 190da8934f
11 changed files with 79 additions and 24 deletions
@@ -119,6 +119,8 @@ public class MemoryMessagesStore implements IMessagesStore {
private ConcurrentHashMap<String, Boolean> userPushHiddenDetail = new ConcurrentHashMap<>();
private ConcurrentHashMap<String, Boolean> userConvSlientMap = new ConcurrentHashMap<>();
private long mFriendRequestDuration = 7 * 24 * 60 * 60 * 1000;
private long mFriendRejectDuration = 30 * 24 * 60 * 60 * 1000;
private boolean mDisableStrangerChat = false;
MemoryMessagesStore(Server server, DatabaseStore databaseStore) {
@@ -133,6 +135,18 @@ public class MemoryMessagesStore implements IMessagesStore {
} catch (Exception e) {
e.printStackTrace();
}
try {
mFriendRequestDuration = Long.parseLong(Server.getConfig().getProperty(FRIEND_Repeat_Request_Duration));
} catch (Exception e) {
e.printStackTrace();
}
try {
mFriendRejectDuration = Long.parseLong(Server.getConfig().getProperty(FRIEND_Reject_Request_Duration));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
@@ -188,12 +202,24 @@ public class MemoryMessagesStore implements IMessagesStore {
@Override
public int getNotifyReceivers(String fromUser, WFCMessage.Message.Builder messageBuilder, Set<String> notifyReceivers) {
public int getNotifyReceivers(String fromUser, WFCMessage.Message.Builder messageBuilder, Set<String> notifyReceivers, boolean ignoreMsg) {
WFCMessage.Message message = messageBuilder.build();
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
int type = message.getConversation().getType();
int pullType = ProtoConstants.PullType.Pull_Normal;
if (ignoreMsg) {
if (type == ProtoConstants.ConversationType.ConversationType_ChatRoom) {
pullType = ProtoConstants.PullType.Pull_ChatRoom;
}
if (message.getContent().getPersistFlag() != Transparent) {
notifyReceivers.add(fromUser);
}
return pullType;
}
int pullType = 0;
if (type == ProtoConstants.ConversationType.ConversationType_Private) {
notifyReceivers.add(fromUser);
notifyReceivers.add(message.getConversation().getTarget());
@@ -1840,9 +1866,9 @@ public class MemoryMessagesStore implements IMessagesStore {
}
if (existRequest != null && existRequest.getStatus() != ProtoConstants.FriendRequestStatus.RequestStatus_Accepted) {
if (System.currentTimeMillis() - existRequest.getUpdateDt() > 7 * 24 * 60 * 60 * 1000) {
if (System.currentTimeMillis() - existRequest.getUpdateDt() > mFriendRequestDuration) {
if (existRequest.getStatus() == ProtoConstants.FriendRequestStatus.RequestStatus_Rejected
&& System.currentTimeMillis() - existRequest.getUpdateDt() < 30 * 24 * 60 * 60 * 1000) {
&& System.currentTimeMillis() - existRequest.getUpdateDt() < mFriendRejectDuration) {
return ErrorCode.ERROR_CODE_FRIEND_REQUEST_BLOCKED;
}
} else {
@@ -1974,7 +2000,7 @@ public class MemoryMessagesStore implements IMessagesStore {
}
if (existRequest != null) {
if (System.currentTimeMillis() - existRequest.getUpdateDt() > 7 * 24 * 60 * 60 * 1000) {
if (System.currentTimeMillis() - existRequest.getUpdateDt() > mFriendRequestDuration) {
return ErrorCode.ERROR_CODE_FRIEND_REQUEST_OVERTIME;
} else {
existRequest = existRequest.toBuilder().setStatus(ProtoConstants.FriendRequestStatus.RequestStatus_Accepted).setUpdateDt(System.currentTimeMillis()).build();