调整发送消息参数
This commit is contained in:
parent
fc45c6eb13
commit
ba6e0a729c
@ -1,10 +1,7 @@
|
|||||||
package com.upchina.group.query.message;
|
package com.upchina.group.query.message;
|
||||||
|
|
||||||
import com.upchina.common.vo.FrontUserVO;
|
import com.upchina.common.vo.FrontUserVO;
|
||||||
import com.upchina.group.constant.GroupMessageContentType;
|
import com.upchina.group.constant.*;
|
||||||
import com.upchina.group.constant.GroupMessageStatus;
|
|
||||||
import com.upchina.group.constant.GroupMessageType;
|
|
||||||
import com.upchina.group.constant.GroupMessageUserType;
|
|
||||||
import com.upchina.group.entity.GroupMessage;
|
import com.upchina.group.entity.GroupMessage;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
@ -40,7 +37,9 @@ public class SendGroupMessageAppQuery {
|
|||||||
message.setUserName(userVO.getUserName());
|
message.setUserName(userVO.getUserName());
|
||||||
message.setContentType(GroupMessageContentType.TEXT.value);
|
message.setContentType(GroupMessageContentType.TEXT.value);
|
||||||
message.setInteractiveType(interactiveType);
|
message.setInteractiveType(interactiveType);
|
||||||
message.setPrivateUserId(userVO.getUserId());
|
if (GroupInteractiveType.PRIVATE.value.equals(interactiveType)) {
|
||||||
|
message.setPrivateUserId(userVO.getUserId());
|
||||||
|
}
|
||||||
message.setStatus(status.value);
|
message.setStatus(status.value);
|
||||||
message.setCreateUserId(userVO.getUserId());
|
message.setCreateUserId(userVO.getUserId());
|
||||||
message.setCreateTime(LocalDateTime.now());
|
message.setCreateTime(LocalDateTime.now());
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import java.util.Map;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
import com.hazelcast.map.IMap;
|
import com.hazelcast.map.IMap;
|
||||||
import com.upchina.common.config.cache.CacheKey;
|
import com.upchina.common.config.cache.CacheKey;
|
||||||
@ -80,7 +81,8 @@ public class AdminGroupMessageService {
|
|||||||
GroupMessage message = query.toPO(backendUser);
|
GroupMessage message = query.toPO(backendUser);
|
||||||
groupMessageMapper.insert(message);
|
groupMessageMapper.insert(message);
|
||||||
|
|
||||||
publishGroupMessage(message);
|
groupMessageService.publishMessage(message);
|
||||||
|
|
||||||
return new OnlyIdVO(message.getId());
|
return new OnlyIdVO(message.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +109,7 @@ public class AdminGroupMessageService {
|
|||||||
groupCacheService.removeMessage(groupMessageInDB);
|
groupCacheService.removeMessage(groupMessageInDB);
|
||||||
} else if (GroupMessageStatus.AUDITED.equals(targetStatus)) {
|
} else if (GroupMessageStatus.AUDITED.equals(targetStatus)) {
|
||||||
if (!IsOrNot.IS.value.equals(group.getFirstAudit())) {
|
if (!IsOrNot.IS.value.equals(group.getFirstAudit())) {
|
||||||
publishGroupMessage(groupMessageInDB);
|
groupMessageService.publishMessage(groupMessageInDB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -277,14 +279,6 @@ public class AdminGroupMessageService {
|
|||||||
groupInfoService.clearCache(groupId);
|
groupInfoService.clearCache(groupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void publishGroupMessage(GroupMessage message) {
|
|
||||||
Map<Integer, AdvisorBasicVO> advisorMap = advisorInfoService.getAdvisorVoMap();
|
|
||||||
GroupMessageVO vo = groupCacheService.getMessage(message, advisorMap);
|
|
||||||
|
|
||||||
groupMessageService.publishGroupMessage(GroupMessageChannel.ALL, GroupMessageType.NORMAL, message.getGroupId(), vo);
|
|
||||||
groupCacheService.addMessage(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void clearCache(Integer messageId) {
|
private void clearCache(Integer messageId) {
|
||||||
groupCache.remove(CacheKey.GroupKey.GROUP_MESSAGE_DETAIL + messageId);
|
groupCache.remove(CacheKey.GroupKey.GROUP_MESSAGE_DETAIL + messageId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -122,8 +122,7 @@ public class AppGroupMessageService {
|
|||||||
GroupMessageVO vo = groupCacheService.getMessage(message, advisorMap);
|
GroupMessageVO vo = groupCacheService.getMessage(message, advisorMap);
|
||||||
|
|
||||||
if (!IsOrNot.IS.value.equals(groupVO.getFirstAudit())) {
|
if (!IsOrNot.IS.value.equals(groupVO.getFirstAudit())) {
|
||||||
groupMessageService.publishGroupMessage(GroupMessageChannel.ALL, GroupMessageType.NORMAL, groupId, vo);
|
groupMessageService.publishMessage(message);
|
||||||
groupCacheService.addMessage(message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return vo;
|
return vo;
|
||||||
|
|||||||
@ -3,10 +3,15 @@ package com.upchina.group.service.common;
|
|||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.hazelcast.core.HazelcastInstance;
|
import com.hazelcast.core.HazelcastInstance;
|
||||||
import com.hazelcast.topic.ITopic;
|
import com.hazelcast.topic.ITopic;
|
||||||
|
import com.upchina.advisor.service.AdvisorInfoService;
|
||||||
|
import com.upchina.advisor.vo.AdvisorBasicVO;
|
||||||
import com.upchina.common.config.cache.CacheKey;
|
import com.upchina.common.config.cache.CacheKey;
|
||||||
import com.upchina.common.vo.FrontUserVO;
|
import com.upchina.common.vo.FrontUserVO;
|
||||||
|
import com.upchina.group.constant.GroupInteractiveType;
|
||||||
import com.upchina.group.constant.GroupMessageChannel;
|
import com.upchina.group.constant.GroupMessageChannel;
|
||||||
import com.upchina.group.constant.GroupMessageType;
|
import com.upchina.group.constant.GroupMessageType;
|
||||||
|
import com.upchina.group.entity.GroupMessage;
|
||||||
|
import com.upchina.group.vo.message.GroupMessageVO;
|
||||||
import com.upchina.group.vo.message.GroupWsMessageVO;
|
import com.upchina.group.vo.message.GroupWsMessageVO;
|
||||||
import com.upchina.video.entity.OnlineUser;
|
import com.upchina.video.entity.OnlineUser;
|
||||||
import org.springframework.messaging.simp.SimpMessagingTemplate;
|
import org.springframework.messaging.simp.SimpMessagingTemplate;
|
||||||
@ -26,6 +31,12 @@ public class GroupMessageService {
|
|||||||
@Resource
|
@Resource
|
||||||
private HazelcastInstance hazelcastInstance;
|
private HazelcastInstance hazelcastInstance;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private GroupCacheService groupCacheService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AdvisorInfoService advisorInfoService;
|
||||||
|
|
||||||
private final Map<Integer, Long> lastEnterMessageTimeMap = new HashMap<>();
|
private final Map<Integer, Long> lastEnterMessageTimeMap = new HashMap<>();
|
||||||
|
|
||||||
// 进入消息频率控制(本节点)
|
// 进入消息频率控制(本节点)
|
||||||
@ -151,4 +162,17 @@ public class GroupMessageService {
|
|||||||
publishGroupMessage(GroupMessageChannel.ALL, GroupMessageType.ENTER_GROUP, groupId, frontUser.getUserName());
|
publishGroupMessage(GroupMessageChannel.ALL, GroupMessageType.ENTER_GROUP, groupId, frontUser.getUserName());
|
||||||
lastEnterMessageTimeMap.put(groupId, now);
|
lastEnterMessageTimeMap.put(groupId, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void publishMessage(GroupMessage message) {
|
||||||
|
Map<Integer, AdvisorBasicVO> advisorMap = advisorInfoService.getAdvisorVoMap();
|
||||||
|
GroupMessageVO vo = groupCacheService.getMessage(message, advisorMap);
|
||||||
|
|
||||||
|
if (GroupInteractiveType.GROUP.value.equals(message.getInteractiveType())) {
|
||||||
|
publishGroupMessage(GroupMessageChannel.ALL, GroupMessageType.NORMAL, message.getGroupId(), vo);
|
||||||
|
} else if (GroupInteractiveType.PRIVATE.value.equals(message.getInteractiveType())) {
|
||||||
|
publishPrivateMessage(GroupMessageChannel.ALL, GroupMessageType.NORMAL, message.getGroupId(), message.getPrivateUserId(), vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
groupCacheService.addMessage(message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user