From 52f1681fe59d374f5dc8680b4fd6f28e97aaf9ef Mon Sep 17 00:00:00 2001 From: yanglin Date: Wed, 24 Jan 2024 18:10:27 +0800 Subject: [PATCH] =?UTF-8?q?REQ-1858:=20=E8=A7=A3=E5=86=B3=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=9C=AA=E8=AF=BB=E6=95=B0=E6=8D=AE=E5=92=8C=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8D=E5=8C=B9=E9=85=8D=E7=9A=84=E9=97=AE=E9=A2=98(?= =?UTF-8?q?=E4=B8=A4=E8=BE=B9=E7=9A=84=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MessageRecordServiceImpl.java | 9 +++++-- .../impl/GeneralMessageOldServiceImpl.java | 6 +++++ .../center/api/request/CmsMsgQueryReq.java | 24 +++++++++++++++++++ .../service/dto/IdentifyAndReceiveType.java | 17 +++++++++++++ .../axzo/msg/center/dal/MessageRecordDao.java | 4 ++-- .../dal/mapper/MessageRecordMapper.java | 3 ++- .../resources/mapper/MessageRecordMapper.xml | 8 ++++++- .../center/domain/dto/CmsMsgQueryReqDTO.java | 4 ++++ 8 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/IdentifyAndReceiveType.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java index a43f3969..eb8b7cff 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java @@ -49,7 +49,9 @@ import cn.axzo.msg.center.domain.request.InsideCmsReadMsgReq; import cn.axzo.msg.center.inside.notices.event.SendMessageEvent; import cn.axzo.msg.center.inside.notices.service.MessageRecordService; import cn.axzo.msg.center.message.service.GeneralMessageMapperService; +import cn.axzo.msg.center.service.dto.IdentifyAndReceiveType; import cn.axzo.msg.center.service.dto.IdentityDTO; +import cn.axzo.msg.center.utils.PersonIdentityUtil; import cn.azxo.framework.common.utils.LogUtil; import cn.azxo.framework.common.utils.LogUtil.ErrorLevel; import cn.azxo.framework.common.utils.LogUtil.ErrorType; @@ -438,9 +440,12 @@ public class MessageRecordServiceImpl implements MessageRecordService { @Override public PageResult pageMsgInfo(CmsMsgQueryReq req, Long personId, List identities) { IPage page = req.toPage(); - ArrayList states = buildStates(req); + List states = CollectionUtils.isEmpty(req.getStates()) ? buildStates(req) : req.knownStateCodes(); CmsMsgQueryReqDTO param=BeanConvertUtils.copyBean(req, CmsMsgQueryReqDTO.class); - IPage iPage = messageRecordDao.pageMsgInfo(param, page, personId, states, identities); + List convertedIdentifies = identities.stream() + .map(i -> new IdentifyAndReceiveType(i, PersonIdentityUtil.toReceiveType(i.getType()))) + .collect(Collectors.toList()); + IPage iPage = messageRecordDao.pageMsgInfo(param, page, personId, states, convertedIdentifies); return convertPageMessageNewRes(iPage); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/GeneralMessageOldServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/GeneralMessageOldServiceImpl.java index f4816f0e..9aefd412 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/GeneralMessageOldServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/GeneralMessageOldServiceImpl.java @@ -98,6 +98,12 @@ public class GeneralMessageOldServiceImpl implements GeneralMessageOldService { if (CollectionUtils.isEmpty(request.getExcludeMsgIds())) { request.setExcludeMsgIds(messageSendTwiceRecordService.listByPerson(request.getPersonId())); } + // 为了和统计未读的接口保持一致的逻辑 + List moduleIds = messageModuleService.listModuleIdByBizType(ModuleBizTypeEnum.CONSTRUCTION); + List relationIds = messageRelationService.listRelationIds(moduleIds); + request.setStates(MsgStateEnum.unreadStates()); + request.setRelationIds(relationIds); + PageResult result = messageCoreService.listMsgInfo(request); if (CollectionUtils.isEmpty(result.getData())) { return PageHelperUtil.emptyPage(request.getPage(), request.getPageSize()); diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/CmsMsgQueryReq.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/CmsMsgQueryReq.java index be22f08e..d7a0ff25 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/CmsMsgQueryReq.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/CmsMsgQueryReq.java @@ -1,11 +1,16 @@ package cn.axzo.msg.center.api.request; import cn.axzo.basics.common.page.PageRequest; +import cn.axzo.msg.center.api.enums.MsgStateEnum; import cn.axzo.msg.center.service.dto.IdentityDTO; import lombok.Data; import javax.validation.constraints.NotNull; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; + +import static java.util.stream.Collectors.toList; /** * @author : liuchuntao @@ -61,4 +66,23 @@ public class CmsMsgQueryReq extends PageRequest { * 待排除的消息id */ private List excludeMsgIds; + /** + * 查询的状态 + */ + private List states; + /** + * 关系id + */ + private List relationIds; + + public List knownStateCodes() { + if (states == null) { + return Collections.emptyList(); + } + return states.stream() + .map(MsgStateEnum::getCode) + .collect(toList()); + } + + } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/IdentifyAndReceiveType.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/IdentifyAndReceiveType.java new file mode 100644 index 00000000..9278bf8c --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/IdentifyAndReceiveType.java @@ -0,0 +1,17 @@ +package cn.axzo.msg.center.service.dto; + +import cn.axzo.msg.center.api.enums.ReceiveTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author yanglin + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class IdentifyAndReceiveType { + private IdentityDTO identity; + private ReceiveTypeEnum receiveType; +} diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java index 4477dd3d..6035a51f 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java @@ -16,7 +16,7 @@ import cn.axzo.msg.center.domain.entity.MessageRecord; import cn.axzo.msg.center.domain.enums.ModuleBizTypeEnum; import cn.axzo.msg.center.domain.persistence.BaseEntity; import cn.axzo.msg.center.domain.request.InsideCmsReadMsgReq; -import cn.axzo.msg.center.service.dto.IdentityDTO; +import cn.axzo.msg.center.service.dto.IdentifyAndReceiveType; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -89,7 +89,7 @@ public class MessageRecordDao extends public IPage pageMsgInfo( CmsMsgQueryReqDTO req, IPage page, Long personId, - List states, List identities) { + List states, List identities) { return baseMapper.pageMsgInfo(req, page, personId, states, identities); } diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java index 8245335d..a98b16c9 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java @@ -8,6 +8,7 @@ import cn.axzo.msg.center.domain.dto.MessageNewResDTO; import cn.axzo.msg.center.domain.dto.MsgStatisticsDTO; import cn.axzo.msg.center.domain.dto.UpdateReadDTO; import cn.axzo.msg.center.domain.entity.MessageRecord; +import cn.axzo.msg.center.service.dto.IdentifyAndReceiveType; import cn.axzo.msg.center.service.dto.IdentityDTO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -34,7 +35,7 @@ public interface MessageRecordMapper extends BaseMapper{ IPage page, @Param("personId") Long personId, @Param("states") List states, - @Param("identifies") List identities); + @Param("identifies") List identities); IPage mixIdentityPageMsgInfo(@Param("req") CmsMsgQueryReqDTO req, IPage page, @Param("identityIds") List identityIds, @Param("personId") Long personId, diff --git a/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml b/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml index 87c5601f..9f580563 100644 --- a/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml +++ b/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml @@ -56,7 +56,7 @@ and record.is_delete = 0 and ( - (record.to_id = #{item.id} AND record.receive_type = #{item.type.code}) + (record.to_id = #{item.identity.id} AND record.receive_type = #{item.receiveType.code}) ) @@ -65,6 +65,12 @@ #{item} + + and record.relation_id in + + #{item} + + and record.id not in diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/dto/CmsMsgQueryReqDTO.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/dto/CmsMsgQueryReqDTO.java index f00d7205..72b96ceb 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/dto/CmsMsgQueryReqDTO.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/dto/CmsMsgQueryReqDTO.java @@ -39,4 +39,8 @@ public class CmsMsgQueryReqDTO extends PageRequest { * 待排除的消息id */ private List excludeMsgIds; + /** + * 关系id + */ + private List relationIds; }