调整发送消息参数

This commit is contained in:
easonzhu 2025-02-10 21:18:36 +08:00
parent fc45c6eb13
commit ba6e0a729c
4 changed files with 33 additions and 17 deletions

View File

@ -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());

View File

@ -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);
} }

View File

@ -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;

View File

@ -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);
}
} }