Commit 99d16939 by Shadow

去除好友关系判断

parent 1ce211e2
...@@ -18,13 +18,10 @@ import java.util.regex.Pattern; ...@@ -18,13 +18,10 @@ import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.wecloud.dispatch.annotation.ActionMapping; import com.wecloud.dispatch.annotation.ActionMapping;
import com.wecloud.dispatch.common.BaseRequest; import com.wecloud.dispatch.common.BaseRequest;
...@@ -35,7 +32,6 @@ import com.wecloud.im.entity.ImConversationMembers; ...@@ -35,7 +32,6 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImInbox; import com.wecloud.im.entity.ImInbox;
import com.wecloud.im.entity.ImMessage; import com.wecloud.im.entity.ImMessage;
import com.wecloud.im.entity.ImMessageOnlineSend; import com.wecloud.im.entity.ImMessageOnlineSend;
import com.wecloud.im.friend.entity.ImFriend;
import com.wecloud.im.friend.service.ImFriendService; import com.wecloud.im.friend.service.ImFriendService;
import com.wecloud.im.mq.MqSender; import com.wecloud.im.mq.MqSender;
import com.wecloud.im.param.ChatContentVo; import com.wecloud.im.param.ChatContentVo;
...@@ -43,7 +39,6 @@ import com.wecloud.im.param.ImClientSimpleDto; ...@@ -43,7 +39,6 @@ import com.wecloud.im.param.ImClientSimpleDto;
import com.wecloud.im.param.ImConversationQueryVo; import com.wecloud.im.param.ImConversationQueryVo;
import com.wecloud.im.param.MsgVo; import com.wecloud.im.param.MsgVo;
import com.wecloud.im.sdk.enums.ChatTypeEnum; import com.wecloud.im.sdk.enums.ChatTypeEnum;
import com.wecloud.im.sdk.enums.FriendStateEnum;
import com.wecloud.im.sdk.enums.GroupRoleEnum; import com.wecloud.im.sdk.enums.GroupRoleEnum;
import com.wecloud.im.sdk.enums.MutedEnum; import com.wecloud.im.sdk.enums.MutedEnum;
import com.wecloud.im.service.ImApplicationService; import com.wecloud.im.service.ImApplicationService;
...@@ -147,9 +142,6 @@ public class NormalChatAction { ...@@ -147,9 +142,6 @@ public class NormalChatAction {
return; return;
} }
if (!friend(reqId, imClientSender, data.getToConversation(), membersList, request.getSenderChannel())) {
return;
}
} }
if (beKickOut(reqId, imClientSender, membersList, request.getSenderChannel())) { if (beKickOut(reqId, imClientSender, membersList, request.getSenderChannel())) {
return; return;
...@@ -348,82 +340,6 @@ public class NormalChatAction { ...@@ -348,82 +340,6 @@ public class NormalChatAction {
} }
/** /**
* 好友判断
* @Author luozh
* @Date 2022年05月18日 07:28:34
* @param
* @Return
*/
private boolean friend(String reqId, ImClient imClientSender, Long conversationId,
List<ImConversationMembers> membersList, Channel channel) {
String meClientId = imClientSender.getClientId();
String heClientId;
if (membersList.get(0).getClientId() != null && membersList.get(0).getClientId().equals(meClientId)) {
heClientId = membersList.get(1).getClientId();
} else {
heClientId = membersList.get(0).getClientId();
}
ImFriend my = friendService.getByKey(meClientId, heClientId);
ImFriend friend = friendService.getByKey(heClientId, meClientId);
// 判定是陌生人的几种情况,没有好友申请 or 好友申请未通过 or 我/朋友拒绝了请求 or 我/朋友删除了好友关系
Boolean isStranger =
(my == null || friend == null)
|| FriendStateEnum.UNSURE.getCode().equals(my.getState())
|| FriendStateEnum.REJECT.getCode().equals(my.getState())
|| FriendStateEnum.REJECT.getCode().equals(friend.getState())
|| FriendStateEnum.DEL.getCode().equals(my.getState())
|| FriendStateEnum.DEL.getCode().equals(friend.getState());
if (isStranger) {
// 陌生人限制
String attributes = imClientSender.getAttributes();
boolean isVip = false;
if (StringUtils.isNotEmpty(attributes)) {
// 小虎豆独有功能
try {
JSONObject jsonObject = JSONObject.parseObject(attributes);
isVip = jsonObject.getBoolean("isVip");
} catch (Exception e) {
// 没有配置 认为不是vip
}
}
int sendCount =
imMessageService.count(Wrappers.<ImMessage>lambdaQuery().eq(ImMessage::getFkConversationId,
conversationId).eq(ImMessage::getSender, imClientSender.getId()).between(ImMessage::getCreateTime, getStartTime(), getEndTime()));
if (!isVip) {
// 判断消息发送数量
if (sendCount >= 3) {
WsResponse<HashMap<String, Long>> responseModel = new WsResponse<>();
responseModel.setCmd(WsResponseCmdEnum.RES.getCmdCode());
responseModel.setCode(ApiCode.MSG_EXCEED_QUANTITY_LIMIT.getCode());
responseModel.setMsg("和对方还不是好友,只能发送三条消息");
responseModel.setReqId(reqId);
channelSender.sendMsgLocal((NioSocketChannel) channel, responseModel);
return false;
}
} else {
// 判断消息发送数量
if (sendCount >= 30) {
WsResponse<HashMap<String, Long>> responseModel = new WsResponse<>();
responseModel.setCmd(WsResponseCmdEnum.RES.getCmdCode());
responseModel.setCode(ApiCode.EXCEED_VIP_QUANTITY_LIMIT.getCode());
responseModel.setMsg("和对方还不是好友,只能发送三十条消息");
responseModel.setReqId(reqId);
channelSender.sendMsgLocal((NioSocketChannel) channel, responseModel);
return false;
}
}
return true;
}
// 非陌生人
return true;
}
/**
* 判断被踢出逻辑 * 判断被踢出逻辑
* @param reqId * @param reqId
* @param imClientSender * @param imClientSender
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment