From 2dd616a6197e6f775ba73dace6e4dc82301bfa94 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 19 Apr 2021 16:44:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=B0=8F=E7=BB=84=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E3=80=81=E6=B4=BB=E5=8A=A8=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/invitation/form/ShareFormDTO.java | 31 ++++++++++ .../dto/invitation/result/ShareResultDTO.java | 19 +++++++ .../InvitationRecordController.java | 21 +++++++ .../service/InvitationRecordService.java | 9 +++ .../impl/InvitationRecordServiceImpl.java | 56 +++++++++++++++++++ 5 files changed, 136 insertions(+) create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/ShareFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/ShareResultDTO.java diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/ShareFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/ShareFormDTO.java new file mode 100644 index 0000000000..879ac465ac --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/ShareFormDTO.java @@ -0,0 +1,31 @@ +package com.epmet.resi.group.dto.invitation.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author sun + * @Description 小组通知、活动分享-接口入参 + */ +@Data +public class ShareFormDTO implements Serializable { + private static final long serialVersionUID = 7069116393380944951L; + /** + * 通知或活动Id + */ + @NotBlank(message="通知或活动Id不能为空",groups = {ShareFormDTO.Add.class}) + private String id; + /** + * 类型(notice:通知 act:活动) + */ + @NotBlank(message = "类型(notice:通知 act:活动)不能为空",groups = {ShareFormDTO.Add.class}) + private String type; + /** + * token中用户Id + */ + private String userId; + + public interface Add{} +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/ShareResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/ShareResultDTO.java new file mode 100644 index 0000000000..ba9e30931b --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/ShareResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.resi.group.dto.invitation.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author sun + * @Description 小组通知、活动分享-接口返参 + */ +@Data +public class ShareResultDTO implements Serializable { + private static final long serialVersionUID = 6136787210623326830L; + + /** + * 分享Id + */ + private String invitationRecordId; +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/controller/InvitationRecordController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/controller/InvitationRecordController.java index 71e713a734..c6d6cc9392 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/controller/InvitationRecordController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/controller/InvitationRecordController.java @@ -17,8 +17,16 @@ package com.epmet.modules.invitation.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.modules.invitation.service.InvitationRecordService; +import com.epmet.resi.group.dto.invitation.form.ShareFormDTO; +import com.epmet.resi.group.dto.invitation.result.ShareResultDTO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -37,4 +45,17 @@ public class InvitationRecordController { private InvitationRecordService invitationRecordService; + /** + * @param formDTO + * @return + * @Author sun + * @Description 小组通知、活动分享 + **/ + @PostMapping(value = "share") + public Result share(@LoginUser TokenDto tokenDto, @RequestBody ShareFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, ShareFormDTO.Add.class); + formDTO.setUserId(tokenDto.getUserId()); + return new Result().ok(invitationRecordService.share(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/InvitationRecordService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/InvitationRecordService.java index ebddafaa7f..4373554965 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/InvitationRecordService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/InvitationRecordService.java @@ -19,6 +19,8 @@ package com.epmet.modules.invitation.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.modules.invitation.entity.InvitationRecordEntity; +import com.epmet.resi.group.dto.invitation.form.ShareFormDTO; +import com.epmet.resi.group.dto.invitation.result.ShareResultDTO; /** * 分享记录(话题、通知...后续支持增加) @@ -28,4 +30,11 @@ import com.epmet.modules.invitation.entity.InvitationRecordEntity; */ public interface InvitationRecordService extends BaseService { + /** + * @param formDTO + * @return + * @Author sun + * @Description 小组通知、活动分享 + **/ + ShareResultDTO share(ShareFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/InvitationRecordServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/InvitationRecordServiceImpl.java index 4d873bba21..f8a24b172d 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/InvitationRecordServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/InvitationRecordServiceImpl.java @@ -18,9 +18,18 @@ package com.epmet.modules.invitation.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.modules.act.dao.GroupActInfoDao; +import com.epmet.modules.act.entity.GroupActInfoEntity; import com.epmet.modules.invitation.dao.InvitationRecordDao; import com.epmet.modules.invitation.entity.InvitationRecordEntity; import com.epmet.modules.invitation.service.InvitationRecordService; +import com.epmet.modules.notice.dao.NoticeDao; +import com.epmet.modules.notice.dao.NoticeReafdRecordDao; +import com.epmet.modules.notice.entity.NoticeEntity; +import com.epmet.resi.group.dto.invitation.form.ShareFormDTO; +import com.epmet.resi.group.dto.invitation.result.ShareResultDTO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -32,5 +41,52 @@ import org.springframework.stereotype.Service; @Service public class InvitationRecordServiceImpl extends BaseServiceImpl implements InvitationRecordService { + @Autowired + private NoticeDao noticeDao; + @Autowired + private GroupActInfoDao groupActInfoDao; + + /** + * @param formDTO + * @return + * @Author sun + * @Description 小组通知、活动分享 + **/ + @Override + public ShareResultDTO share(ShareFormDTO formDTO) { + ShareResultDTO resultDTO = new ShareResultDTO(); + //1.按类型查询通知或活动数据 + InvitationRecordEntity entity = new InvitationRecordEntity(); + NoticeEntity notice = null; + GroupActInfoEntity act = null; + if ("notice".equals(formDTO.getType())) { + notice = noticeDao.selectById(formDTO.getId()); + if (null == notice) { + throw new RenException(String.format("通知分享,根据通知Id查询通知数据失败,通知Id->", formDTO.getId())); + } + entity.setCustomerId(notice.getCustomerId()); + entity.setGridId(notice.getGridId()); + entity.setGroupId(notice.getGroupId()); + entity.setSourceId(formDTO.getId()); + entity.setSourceType(formDTO.getType()); + entity.setShareUserId(formDTO.getUserId()); + } else if ("act".equals(formDTO.getType())) { + act = groupActInfoDao.selectById(formDTO.getId()); + if (null == act) { + throw new RenException(String.format("活动分享,根据活动Id查询活动数据失败,活动Id->", formDTO.getId())); + } + entity.setCustomerId(act.getCustomerId()); + entity.setGridId(act.getGridId()); + entity.setGroupId(act.getGroupId()); + entity.setSourceId(formDTO.getId()); + entity.setSourceType(formDTO.getType()); + entity.setShareUserId(formDTO.getUserId()); + } + //2.新增分享数据,生成分享Id + baseDao.insert(entity); + resultDTO.setInvitationRecordId(entity.getId()); + + return resultDTO; + } } \ No newline at end of file From 525764588c5a82bf205a36b6a9bdd5b86a5a9d37 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 19 Apr 2021 17:07:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=B0=8F=E7=BB=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8D=E6=98=AF=E5=85=9A=E5=91=98=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E5=88=9B=E5=BB=BA=E6=94=AF=E9=83=A8=E5=B0=8F=E7=BB=84?= =?UTF-8?q?=EF=BC=8C=20=E5=BE=85=E5=AE=A1=E6=A0=B8=E7=9A=84=E5=B0=8F?= =?UTF-8?q?=E7=BB=84=E5=88=97=E8=A1=A8=E5=8F=8D=E5=8F=82=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?groupType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/exception/EpmetErrorCode.java | 3 ++- .../dto/group/result/ApplyingGroupResultDTO.java | 5 ++++- .../group/service/impl/ResiGroupServiceImpl.java | 14 ++++++++++++++ .../com/epmet/modules/utils/ModuleConstant.java | 7 +++++++ .../main/resources/mapper/group/ResiGroupDao.xml | 1 + .../epmet/feign/EpmetUserOpenFeignClient.java | 9 +++++++++ .../EpmetUserOpenFeignClientFallback.java | 5 +++++ .../com/epmet/controller/UserRoleController.java | 11 +++++++++++ .../src/main/java/com/epmet/dao/UserRoleDao.java | 8 ++++++++ .../java/com/epmet/service/UserRoleService.java | 8 ++++++++ .../epmet/service/impl/UserRoleServiceImpl.java | 16 ++++++++++++++++ .../src/main/resources/mapper/UserRoleDao.xml | 12 ++++++++++++ 12 files changed, 97 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index caecc92e1e..b54663f866 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -165,7 +165,8 @@ public enum EpmetErrorCode { GROUP_ACT_CLOSED_CAN_NOT_EDIT(8902,"活动已关闭,不能编辑"), PLEASE_INPUT_ACT_CONTENT(8903,"请输入活动内容,或添加图片"), GROUP_ACT_CONTENT_MAX(8904,"活动内容至多输入1000字"), - GROUP_ACT_IMG_MAX(8905,"最多可添加3张图片"); + GROUP_ACT_IMG_MAX(8905,"最多可添加3张图片"), + PARTY_MEMBER_CREATE_BRANCH_GROUP(8906,"您不是党员,不能创建支部小组"); private int code; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupResultDTO.java index 3683f760c5..91a3ecd478 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupResultDTO.java @@ -45,6 +45,9 @@ public class ApplyingGroupResultDTO implements Serializable{ * */ private String messageText; - + /** + * 小组类型(ordinary:楼院小组 branch:支部小组) + */ + private String groupType; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index a2876cf267..1479a45456 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -40,6 +40,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetMessageFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -147,6 +148,9 @@ public class ResiGroupServiceImpl extends BaseServiceImpl booleanResult = epmetUserOpenFeignClient.selectIsPartyMemberByUserId(applyCreateGroupFormDTO.getUserId()); + if (!booleanResult.success()){ + throw new RenException(ModuleConstant.IS_PARTY_MEMBER_ERR); + } + if (!booleanResult.getData()){ + throw new RenException(EpmetErrorCode.PARTY_MEMBER_CREATE_BRANCH_GROUP.getCode()); + } + } //1、校验是否同名 List resiGroupEntityList = this.getResiGroupEntityList(applyCreateGroupFormDTO); if (null != resiGroupEntityList && resiGroupEntityList.size() > 0) { diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java index 37f1a3b290..1d77920606 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java @@ -380,4 +380,11 @@ public interface ModuleConstant extends Constant { * 通过议题分享链接进组 */ String ENTER_GROUP_TYPE_ISSUE_LINK = "issue_share_link"; + + /** + * 小组类型:支部小组 + */ + String GROUP_TYPE_BRANCH = "branch"; + + String IS_PARTY_MEMBER_ERR = "查询此人是不是党员失败了"; } 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 3a451a9342..7d1ea0a898 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 @@ -245,6 +245,7 @@ + + + From 386001d9264b557a0c02a897c972d20ad42bf9b3 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 19 Apr 2021 18:00:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=B7=B2=E8=AF=BB?= =?UTF-8?q?=E6=9C=AA=E8=AF=BB=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/AddNoticeFormDTO.java | 3 +- .../form/EditNoticeFormDTO.java | 3 +- .../notice/form/NoticeReadListFormDTO.java | 21 ++++++ .../result/NoticeReadListResultDTO.java | 51 ++++++++++++++ .../notice/controller/NoticeController.java | 4 +- .../NoticeReafdRecordController.java | 16 +++++ .../notice/dao/NoticeReafdRecordDao.java | 9 +++ .../service/NoticeReafdRecordService.java | 11 ++++ .../modules/notice/service/NoticeService.java | 4 +- .../impl/NoticeReafdRecordServiceImpl.java | 66 +++++++++++++++++++ .../service/impl/NoticeServiceImpl.java | 4 +- .../mapper/notice/NoticeReafdRecordDao.xml | 10 +++ 12 files changed, 194 insertions(+), 8 deletions(-) rename epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/{topic => notice}/form/AddNoticeFormDTO.java (91%) rename epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/{topic => notice}/form/EditNoticeFormDTO.java (89%) create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeReadListFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeReadListResultDTO.java diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/AddNoticeFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/AddNoticeFormDTO.java similarity index 91% rename from epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/AddNoticeFormDTO.java rename to epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/AddNoticeFormDTO.java index 767bb639ca..f83f802c6c 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/AddNoticeFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/AddNoticeFormDTO.java @@ -1,5 +1,6 @@ -package com.epmet.resi.group.dto.topic.form; +package com.epmet.resi.group.dto.notice.form; +import com.epmet.resi.group.dto.topic.form.FileDTO; import lombok.Data; import org.hibernate.validator.constraints.Length; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/EditNoticeFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/EditNoticeFormDTO.java similarity index 89% rename from epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/EditNoticeFormDTO.java rename to epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/EditNoticeFormDTO.java index effa23bc47..79dd421f7f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/EditNoticeFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/EditNoticeFormDTO.java @@ -1,5 +1,6 @@ -package com.epmet.resi.group.dto.topic.form; +package com.epmet.resi.group.dto.notice.form; +import com.epmet.resi.group.dto.topic.form.FileDTO; import lombok.Data; import org.hibernate.validator.constraints.Length; diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeReadListFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeReadListFormDTO.java new file mode 100644 index 0000000000..d7f8a6ac86 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeReadListFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.resi.group.dto.notice.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author sun + * @Description 通知已读未读列表查询-接口入参 + */ +@Data +public class NoticeReadListFormDTO { + + /** + * 通知Id + */ + @NotBlank(message = "通知Id不能为空",groups = {NoticeReadListFormDTO.List.class}) + private String noticeId; + + public interface List{} +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeReadListResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeReadListResultDTO.java new file mode 100644 index 0000000000..3a6660aac2 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeReadListResultDTO.java @@ -0,0 +1,51 @@ +package com.epmet.resi.group.dto.notice.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author sun + * @Description 通知已读未读列表查询-接口返参 + */ +@Data +public class NoticeReadListResultDTO implements Serializable { + private static final long serialVersionUID = 6136787210623326830L; + + /** + * 已读人员数 + */ + private Integer readCount; + /** + * 未读人员数 + */ + private Integer unReadCount; + /** + * 已读列表 + */ + private List readList = new ArrayList<>(); + /** + * 未读列表 + */ + private List unReadList = new ArrayList<>(); + + @NoArgsConstructor + @Data + public static class NoticeReafdRecord { + /** + * 用户Id + */ + private String userId; + /** + * 用户姓名(真实姓名) + */ + private String userName; + /** + * 用户头像 + */ + private String userHeadPhoto; + } +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java index 81504025c2..1ebaf78bad 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java @@ -30,8 +30,8 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.notice.excel.NoticeExcel; import com.epmet.modules.notice.service.NoticeService; import com.epmet.resi.group.dto.notice.NoticeDTO; -import com.epmet.resi.group.dto.topic.form.AddNoticeFormDTO; -import com.epmet.resi.group.dto.topic.form.EditNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.AddNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.EditNoticeFormDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeReafdRecordController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeReafdRecordController.java index 79c38a852b..902615a92b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeReafdRecordController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeReafdRecordController.java @@ -17,7 +17,9 @@ package com.epmet.modules.notice.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -28,6 +30,8 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.notice.excel.NoticeReafdRecordExcel; import com.epmet.modules.notice.service.NoticeReafdRecordService; import com.epmet.resi.group.dto.notice.NoticeReafdRecordDTO; +import com.epmet.resi.group.dto.notice.form.NoticeReadListFormDTO; +import com.epmet.resi.group.dto.notice.result.NoticeReadListResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -91,4 +95,16 @@ public class NoticeReafdRecordController { ExcelUtils.exportExcelToTarget(response, null, list, NoticeReafdRecordExcel.class); } + /** + * @param formDTO + * @return + * @Author sun + * @Description 通知已读未读列表查询 + **/ + @PostMapping(value = "noticereadlist") + public Result noticeReadList(@LoginUser TokenDto tokenDto, @RequestBody NoticeReadListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, NoticeReadListFormDTO.List.class); + return new Result().ok(noticeReafdRecordService.noticeReadList(tokenDto, formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeReafdRecordDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeReafdRecordDao.java index bc16f1881b..9e767ed133 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeReafdRecordDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeReafdRecordDao.java @@ -19,9 +19,12 @@ package com.epmet.modules.notice.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.notice.entity.NoticeReafdRecordEntity; +import com.epmet.resi.group.dto.notice.NoticeReafdRecordDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 小组通知组成员阅读记录表 * @@ -36,4 +39,10 @@ public interface NoticeReafdRecordDao extends BaseDao { * @Description 删除通知已读未读数据-物理删除 **/ void delByNoticeId(@Param("noticeId") String noticeId); + + /** + * @Author sun + * @Description 根据通知Id查询组成员已读未读数据 + **/ + List getByNoticeId(@Param("noticeId") String noticeId); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeReafdRecordService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeReafdRecordService.java index b5c470dd8a..c142fefcdc 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeReafdRecordService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeReafdRecordService.java @@ -19,8 +19,11 @@ package com.epmet.modules.notice.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.modules.notice.entity.NoticeReafdRecordEntity; import com.epmet.resi.group.dto.notice.NoticeReafdRecordDTO; +import com.epmet.resi.group.dto.notice.form.NoticeReadListFormDTO; +import com.epmet.resi.group.dto.notice.result.NoticeReadListResultDTO; import java.util.List; import java.util.Map; @@ -92,4 +95,12 @@ public interface NoticeReafdRecordService extends BaseService page(Map params) { @@ -101,4 +113,58 @@ public class NoticeReafdRecordServiceImpl extends BaseServiceImpl readList = new ArrayList<>(); + List unReadList = new ArrayList<>(); + //1.根据通知Id查询组成员已读未读数据 + List list = baseDao.getByNoticeId(formDTO.getNoticeId()); + + //2.调用user服务,查询人员基础数据 + List userIdList = list.stream().map(NoticeReafdRecordDTO::getUserId).collect(Collectors.toList()); + Result> result = epmetUserOpenFeignClient.queryUserBaseInfo(userIdList); + if (!result.success()){ + throw new RenException("调用user服务,获取用户基础数据失败"); + } + List resultDTOList = result.getData(); + + //3.遍历封装数据并返回 + list.forEach(l->{ + StringBuffer name = new StringBuffer(); + StringBuffer url = new StringBuffer(); + resultDTOList.forEach(user->{ + if(l.getUserId().equals(user.getUserId())){ + name.append(user.getSurname()).append(user.getName()); + url.append(user.getHeadImgUrl()); + } + }); + if("read".equals(l.getReadFlag())){ + NoticeReadListResultDTO.NoticeReafdRecord read = new NoticeReadListResultDTO.NoticeReafdRecord(); + read.setUserId(l.getUserId()); + read.setUserName(name.toString()); + read.setUserHeadPhoto(url.toString()); + readList.add(read); + }else{ + NoticeReadListResultDTO.NoticeReafdRecord unRead = new NoticeReadListResultDTO.NoticeReafdRecord(); + unRead.setUserId(l.getUserId()); + unRead.setUserName(name.toString()); + unRead.setUserHeadPhoto(url.toString()); + unReadList.add(unRead); + } + }); + resultDTO.setReadCount(readList.size()); + resultDTO.setUnReadCount(unReadList.size()); + resultDTO.setReadList(readList); + resultDTO.setUnReadList(unReadList); + + return resultDTO; + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java index b87d78f76e..78f6812f2e 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java @@ -59,8 +59,8 @@ import com.epmet.modules.notice.service.NoticeService; import com.epmet.resi.group.constant.TopicConstant; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.notice.NoticeDTO; -import com.epmet.resi.group.dto.topic.form.AddNoticeFormDTO; -import com.epmet.resi.group.dto.topic.form.EditNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.AddNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.EditNoticeFormDTO; import com.epmet.resi.group.dto.topic.form.FileDTO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeReafdRecordDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeReafdRecordDao.xml index 95935efdd0..2d0a934811 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeReafdRecordDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeReafdRecordDao.xml @@ -3,6 +3,16 @@ + + DELETE FROM