Merge branch 'feature/REQ-2046' into pre

This commit is contained in:
yanglin 2024-01-27 09:21:09 +08:00
commit ba19c5dc92
3 changed files with 22 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import cn.axzo.msg.center.api.request.CmsMsgQueryReq;
import cn.axzo.msg.center.api.response.MessageNewRes;
import cn.axzo.msg.center.message.service.GeneralMessageOldService;
import cn.axzo.msg.center.message.service.GeneralMessageService;
import cn.axzo.msg.center.service.dto.PersonDTO;
import cn.axzo.msg.center.service.general.client.GeneralMessageClient;
import cn.axzo.msg.center.service.general.request.GeneralMessageOldDataStatisticRequest;
import cn.axzo.msg.center.service.general.request.GeneralMessageSendRequest;
@ -54,6 +55,7 @@ public class GeneralMessageController implements GeneralMessageClient {
@Override
public CommonResponse<Integer> countUnreadFromOldMessage(GeneralMessageOldDataStatisticRequest request) {
return CommonResponse.error("not supported!");
PersonDTO person = PersonDTO.from(request.getPersonId(), request.getIdentityId(), request.getIdentityType());
return CommonResponse.success(generalMessageOldService.countUnread(person));
}
}

View File

@ -24,6 +24,15 @@ public interface GeneralMessageOldService {
*/
int countUnreadWithIdentities(Long personId, List<IdentityDTO> identities);
/**
* 统计未读的消息数量
* : 该接口作为IM进入旧消息模块的入口,需要过滤双发至IM的消息
*
* @param person 身份信息
* @return 未读消息数量
*/
int countUnread(PersonDTO person);
/**
* 统计未读的消息数量
* : 该接口作为IM进入旧消息模块的入口,需要过滤双发至IM的消息

View File

@ -1,5 +1,6 @@
package cn.axzo.msg.center.message.service.impl;
import cn.axzo.basics.common.util.AssertUtil;
import cn.axzo.core.domain.PageResult;
import cn.axzo.msg.center.api.enums.MsgStateEnum;
import cn.axzo.msg.center.api.enums.MsgTypeEnum;
@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* @author cold_blade
@ -44,6 +46,14 @@ public class GeneralMessageOldServiceImpl implements GeneralMessageOldService {
private final MessageRelationService messageRelationService;
private final MessageSendTwiceRecordService messageSendTwiceRecordService;
@Override
public int countUnread(PersonDTO person) {
AssertUtil.isTrue(Objects.nonNull(person) && person.isValid(),
"session 异常, 无法执行消息统计查询!, person : " + person);
List<Long> sendTwiceMsgIds = messageSendTwiceRecordService.listByPerson(person.getId());
return countUnread(person, sendTwiceMsgIds);
}
@Override
public int countUnreadWithIdentities(Long personId, List<IdentityDTO> identities) {
log.info("GeneralMessageOldServiceImpl#countUnreadWithIdentities. personId={}, identifies={}",