diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/ReadStatusResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/ReadStatusResultDTO.java new file mode 100644 index 0000000000..efa1c53e27 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/ReadStatusResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.resi.group.dto.notice.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/4/25 上午9:06 + * @DESC + */ +@Data +public class ReadStatusResultDTO implements Serializable { + + private static final long serialVersionUID = 5013713195316328657L; + + private String userId; + + /** + * 活动、通知ID + */ + private String id; + + /** + * 阅读状态 + */ + private String readFlag; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/UnReadListResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/UnReadListResultDTO.java index 404e74a5d8..714a59537c 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/UnReadListResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/UnReadListResultDTO.java @@ -50,6 +50,11 @@ public class UnReadListResultDTO implements Serializable { */ private String contentType; + /** + * 通知是否过期(true:是,false:否) + */ + private Boolean isExpirat; + @JsonIgnore private String userId; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java index 9429897f97..6404010230 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java @@ -24,6 +24,7 @@ import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +import com.epmet.resi.group.dto.notice.result.ReadStatusResultDTO; import com.epmet.resi.group.dto.notice.result.UnReadListResultDTO; import com.epmet.resi.group.dto.topic.result.GetPastTopicListV2ResultDTO; import com.epmet.resi.group.dto.topic.result.LatestTenResultDTO; @@ -304,4 +305,13 @@ public interface ResiGroupDao extends BaseDao { * @date 2021/4/22 下午2:59 */ List getPastTopicListV2ByIds(@Param("ids")List ids); + + /** + * @Description 根据用户ID和【活动、通知ID】查询阅读状态 + * @Param ids + * @Param userIds + * @author zxc + * @date 2021/4/25 上午9:10 + */ + List selectReadFlagByUserAndId(@Param("ids")List ids,@Param("userIds")List userIds); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReadRecordServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReadRecordServiceImpl.java index 6d135a0b8c..c8c4cc1b1b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReadRecordServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReadRecordServiceImpl.java @@ -194,7 +194,7 @@ public class NoticeReadRecordServiceImpl extends BaseServiceImpl userIds = result.stream().map(m -> m.getUserId()).collect(Collectors.toList()); + List userIds = result.stream().map(m -> m.getUserId()).distinct().collect(Collectors.toList()); List userInfos = topicServiceImpl.disPoseUserInfo(resiGroup.getGroupType(), userIds); if (!CollectionUtils.isEmpty(userInfos)){ result.forEach(r -> { diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index dde0ed3f86..a72be2296d 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -90,6 +90,7 @@ import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO; import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO; import com.epmet.resi.group.dto.member.result.ResiGroupMemberInfoRedisResultDTO; +import com.epmet.resi.group.dto.notice.result.ReadStatusResultDTO; import com.epmet.resi.group.dto.topic.ResiTopicAttachmentDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.TopicInfoDTO; @@ -2253,7 +2254,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl userIds = latestTenData.stream().map(m -> m.getUserId()).collect(Collectors.toList()); + List userIds = latestTenData.stream().map(m -> m.getUserId()).distinct().collect(Collectors.toList()); // 活动、通知、话题 ID集合 List ids = latestTenData.stream().map(m -> m.getId()).collect(Collectors.toList()); List userInfos = disPoseUserInfo(result.getGroupType(), userIds); @@ -2316,11 +2317,13 @@ public class ResiTopicServiceImpl extends BaseServiceImpl(); } ResiGroupEntity resiGroup = resiGroupDao.selectById(formDTO.getGroupId()); - List userIds = infos.stream().map(m -> m.getUserId()).collect(Collectors.toList()); + List userIds = infos.stream().map(m -> m.getUserId()).distinct().collect(Collectors.toList()); // 用户信息 List userInfos = this.disPoseUserInfo(resiGroup.getGroupType(), userIds); + // 根据用户ID和【活动、通知ID】查询阅读状态 + List readStatus = resiGroupDao.selectReadFlagByUserAndId(ids, userIds); // 查询用户徽章信息 - Result> badgeResult = epmetUserOpenFeignClient.userBadges(new UserBadgesFormDTO()); + Result> badgeResult = epmetUserOpenFeignClient.userBadges(new UserBadgesFormDTO(formDTO.getCustomerId(),userIds)); if (!badgeResult.success()){ throw new RenException(ModuleConstant.GET_BADGE_INFO_ERR); } @@ -2343,8 +2346,14 @@ public class ResiTopicServiceImpl extends BaseServiceImpl { + if (i.getUserId().equals(r.getUserId()) && i.getId().equals(r.getId())){ + i.setReadOrUnRead(r.getReadFlag()); + } + }); + } } // 徽章 if (!CollectionUtils.isEmpty(badgeResult.getData())){ diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupMessageDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupMessageDao.xml index 00cef75da1..0921766109 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupMessageDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupMessageDao.xml @@ -15,6 +15,7 @@ message_id FROM group_message WHERE DEL_FLAG = '0' + AND STATUS != 'hidden' AND GROUP_ID = #{groupId} order by created_time desc diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index b5e21ff6eb..83af302eb0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -731,7 +731,7 @@ - SELECT id,userId,releaseTime,content,status,issueId,contentType FROM + SELECT id,userId,releaseTime,content,status,issueId,contentType,isExpirat FROM ((SELECT t.ID, t.CREATED_BY AS userId, @@ -832,4 +834,35 @@ ORDER BY releaseTime DESC + + +