REQ-2601: 下线老消息

This commit is contained in:
yanglin 2024-07-15 09:58:18 +08:00
parent 647bd1c10e
commit 848b70805c
3 changed files with 24 additions and 2 deletions

View File

@ -130,6 +130,9 @@ public class PendingMessageBizConfig {
@Getter
private int oldMsgStateDataBackendUpdateBatchSize = 100;
@Getter
private boolean oldMsgOffline = true;
// !! 待办分类统计缓存
/**

View File

@ -2,6 +2,7 @@ package cn.axzo.msg.center.message.controller;
import cn.axzo.msg.center.api.request.CmsMsgQueryReq;
import cn.axzo.msg.center.api.response.MessageNewRes;
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
import cn.axzo.msg.center.message.service.GeneralMessageOldService;
import cn.axzo.msg.center.message.service.GeneralMessageService;
import cn.axzo.msg.center.service.dto.PersonDTO;
@ -26,8 +27,11 @@ import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor
public class GeneralMessageController implements GeneralMessageClient {
private static final Integer ZERO = 0;
private final GeneralMessageService generalMessageService;
private final GeneralMessageOldService generalMessageOldService;
private final PendingMessageBizConfig cfg;
@Override
public CommonResponse<Void> batchSend(GeneralMessageSendRequest request) {
@ -44,12 +48,18 @@ public class GeneralMessageController implements GeneralMessageClient {
@Override
public CommonResponse<Integer> countOldMsgUnreadWithIdentities(
OldMsgStatWithMultiIdentifiesRequest request) {
if (cfg.isOldMsgOffline()) {
return CommonResponse.success(ZERO);
}
return CommonResponse.success(generalMessageOldService
.countUnreadWithIdentities(request.getPersonId(), request.getIdentities()));
}
@Override
public CommonResponse<Page<MessageNewRes>> pageQueryOldMessage(CmsMsgQueryReq request) {
if (cfg.isOldMsgOffline()) {
return CommonResponse.success(Page.zero());
}
request.setLogRequest(true);
return CommonResponse.success(generalMessageOldService.pageMsgInfo(request));
}

View File

@ -10,12 +10,12 @@ import cn.axzo.msg.center.common.utils.PlaceholderResolver;
import cn.axzo.msg.center.dal.GeneralMessageRecordDao;
import cn.axzo.msg.center.domain.entity.GeneralMessageRecord;
import cn.axzo.msg.center.inside.notices.config.MessageSystemConfig;
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateDTO;
import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO;
import cn.axzo.msg.center.message.domain.dto.SendImMessageDTO;
import cn.axzo.msg.center.message.domain.vo.GeneralMessagePushVO;
import cn.axzo.msg.center.message.service.GeneralMessageService;
import cn.axzo.msg.center.message.service.MessageSendTwiceRecordService;
import cn.axzo.msg.center.message.service.MessageTemplateNewService;
import cn.axzo.msg.center.message.service.impl.oldmsg.OldMsgStatCache;
import cn.axzo.msg.center.service.dto.IdentityDTO;
@ -57,6 +57,8 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class GeneralMessageServiceImpl implements GeneralMessageService {
private static final Integer ZERO = 0;
private static final PersonDTO SYSTEM_SENDER = PersonDTO.builder()
.id(0L)
.identity(IdentityDTO.builder().id(0L).type(IdentityTypeEnum.NOT_SUPPORT).build())
@ -71,9 +73,9 @@ public class GeneralMessageServiceImpl implements GeneralMessageService {
private final MessageSystemConfig messageSystemConfig;
private final GeneralMessageRecordDao generalMessageRecordDao;
private final MessageTemplateNewService messageTemplateNewService;
private final MessageSendTwiceRecordService messageSendTwiceRecordService;
private final MessageRouterUtil messageRouterUtil;
private final OldMsgStatCache oldMsgStatCache;
private final PendingMessageBizConfig cfg;
@Override
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
@ -90,6 +92,13 @@ public class GeneralMessageServiceImpl implements GeneralMessageService {
@Override
public GeneralMessageOldDataStatisticResponse statisticOldData(GeneralMessageOldDataStatisticRequest request) {
if (cfg.isOldMsgOffline()) {
return GeneralMessageOldDataStatisticResponse.builder()
.unreadCount(ZERO)
.latestMsgSendTimestamp(null)
.latestMsgContent(null)
.build();
}
return oldMsgStatCache.getCacheResponseOrReload(request);
}