From ebf745bf6bc3474ead3fd8545e72e52fd17f7a0a Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 20 Apr 2021 09:36:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=BB=84=E9=80=9A=E7=9F=A5=E8=AF=A6?= =?UTF-8?q?=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/notice/form/NoticeDetailFormDTO.java | 21 ++++++ .../notice/result/NoticeDetailResultDTO.java | 71 +++++++++++++++++++ .../notice/controller/NoticeController.java | 14 ++++ .../notice/dao/NoticeAttachmentDao.java | 9 +++ .../modules/notice/service/NoticeService.java | 10 +++ .../service/impl/NoticeServiceImpl.java | 64 ++++++++++++++++- .../mapper/notice/NoticeAttachmentDao.xml | 17 +++++ 7 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeDetailFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeDetailResultDTO.java diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeDetailFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeDetailFormDTO.java new file mode 100644 index 0000000000..c9a57033b1 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeDetailFormDTO.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 NoticeDetailFormDTO { + + /** + * 通知Id + */ + @NotBlank(message = "通知Id不能为空",groups = {NoticeDetailFormDTO.Detail.class}) + private String noticeId; + + public interface Detail{} +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeDetailResultDTO.java new file mode 100644 index 0000000000..eec820ee53 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeDetailResultDTO.java @@ -0,0 +1,71 @@ +package com.epmet.resi.group.dto.notice.result; + +import com.epmet.resi.group.dto.notice.form.AddNoticeFormDTO; +import com.epmet.resi.group.dto.topic.form.FileDTO; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author sun + * @Description 小组通知详情-接口返参 + */ +@Data +public class NoticeDetailResultDTO implements Serializable { + private static final long serialVersionUID = 6136787210623326830L; + + /** + * 通知Id + */ + private String noticeId; + /** + * 通知标题 + */ + private String title; + /** + * 通知内容 + */ + private String content; + /** + * 是否变更过(是:yes 否:no) + */ + private String isChange; + /** + * 发布时间yyyy-MM-dd HH:mm + */ + private String releaseTime; + /** + * 发布人头像 + */ + private String releaseUserHeadPhoto; + /** + * 发布人名称 + */ + private String releaseUserName; + /** + * 图片附件集合 + */ + private List imageList; + /** + * 文件附件url集合 + */ + private List docList; + + + @NoArgsConstructor + @Data + public static class File { + private String name; + private String url; + private String type; + private String format; + private Integer size; + private Integer duration; + } +} 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 1ebaf78bad..339fd1e04a 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 @@ -32,6 +32,8 @@ import com.epmet.modules.notice.service.NoticeService; import com.epmet.resi.group.dto.notice.NoticeDTO; import com.epmet.resi.group.dto.notice.form.AddNoticeFormDTO; import com.epmet.resi.group.dto.notice.form.EditNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.NoticeDetailFormDTO; +import com.epmet.resi.group.dto.notice.result.NoticeDetailResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -121,4 +123,16 @@ public class NoticeController { return new Result(); } + /** + * @param formDTO + * @return + * @Author sun + * @Description 小组通知详情 + **/ + @PostMapping(value = "noticedetail") + public Result noticeDetail(@LoginUser TokenDto tokenDto, @RequestBody NoticeDetailFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, NoticeDetailFormDTO.Detail.class); + return new Result().ok(noticeService.noticeDetail(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/NoticeAttachmentDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeAttachmentDao.java index 34aef12db5..5442f7d806 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeAttachmentDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeAttachmentDao.java @@ -19,9 +19,12 @@ package com.epmet.modules.notice.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.notice.entity.NoticeAttachmentEntity; +import com.epmet.resi.group.dto.notice.result.NoticeDetailResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 小组通知附件表 * @@ -36,4 +39,10 @@ public interface NoticeAttachmentDao extends BaseDao { * @Description 删除通知附件-物理删除 **/ void delByNoticeId(@Param("noticeId") String noticeId); + + /** + * @Author sun + * @Description 查询通知附件数据 + **/ + List selectListByNoticeId(@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/NoticeService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeService.java index 2c09205f37..a10a82fb07 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeService.java @@ -24,6 +24,8 @@ import com.epmet.modules.notice.entity.NoticeEntity; import com.epmet.resi.group.dto.notice.NoticeDTO; import com.epmet.resi.group.dto.notice.form.AddNoticeFormDTO; import com.epmet.resi.group.dto.notice.form.EditNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.NoticeDetailFormDTO; +import com.epmet.resi.group.dto.notice.result.NoticeDetailResultDTO; import java.util.List; import java.util.Map; @@ -111,4 +113,12 @@ public interface NoticeService extends BaseService { * @Description 小组通知变更 **/ void edit(TokenDto tokenDto, EditNoticeFormDTO formDTO); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 小组通知详情 + **/ + NoticeDetailResultDTO noticeDetail(TokenDto tokenDto, NoticeDetailFormDTO formDTO); } \ 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 78f6812f2e..8ef6c3dcc4 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 @@ -40,6 +40,7 @@ import com.epmet.constant.ReadFlagConstant; import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.dto.result.LoginUserDetailsResultDTO; +import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.constant.UserMessageConstant; @@ -59,8 +60,11 @@ 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.notice.NoticeReafdRecordDTO; import com.epmet.resi.group.dto.notice.form.AddNoticeFormDTO; import com.epmet.resi.group.dto.notice.form.EditNoticeFormDTO; +import com.epmet.resi.group.dto.notice.form.NoticeDetailFormDTO; +import com.epmet.resi.group.dto.notice.result.NoticeDetailResultDTO; import com.epmet.resi.group.dto.topic.form.FileDTO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -318,7 +322,7 @@ public class NoticeServiceImpl extends BaseServiceImpl public void edit(TokenDto tokenDto, EditNoticeFormDTO formDTO) { //1.查询通知是否存在 NoticeEntity entity = baseDao.selectById(formDTO.getNoticeId()); - if(null == entity){ + if (null == entity) { throw new RenException(String.format("小组通知变更,获取通知数据失败,通知Id->", formDTO.getNoticeId())); } //2.文字、图片安全校验 @@ -432,6 +436,64 @@ public class NoticeServiceImpl extends BaseServiceImpl } } + /** + * @param formDTO + * @return + * @Author sun + * @Description 小组通知详情 + **/ + @Override + public NoticeDetailResultDTO noticeDetail(TokenDto tokenDto, NoticeDetailFormDTO formDTO) { + NoticeDetailResultDTO resultDTO = new NoticeDetailResultDTO(); + List imageList = new ArrayList<>(); + List docList = new ArrayList<>(); + //1.查询通知基础信息 + NoticeEntity entity = baseDao.selectById(formDTO.getNoticeId()); + if (null == entity) { + return resultDTO; + } + + //2.查询通知附件数据 + List fileList = noticeAttachmentDao.selectListByNoticeId(formDTO.getNoticeId()); + + //3.调用user服务,查询通知发起人基本信息 + List userIdList = new ArrayList<>(); + userIdList.add(entity.getCreatedBy()); + Result> result = epmetUserOpenFeignClient.queryUserBaseInfo(userIdList); + if (!result.success()) { + throw new RenException("调用user服务,获取用户基础数据失败"); + } + List resultDTOList = result.getData(); + + //4.封装数据并返回 + resultDTO.setNoticeId(entity.getId()); + resultDTO.setTitle(entity.getTitle()); + resultDTO.setContent(entity.getContent()); + resultDTO.setIsChange(entity.getIsChange()); + resultDTO.setReleaseTime(entity.getChangeTime().toString()); + StringBuffer name = new StringBuffer(); + StringBuffer url = new StringBuffer(); + resultDTOList.forEach(user -> { + if (entity.getCreatedBy().equals(user.getUserId())) { + name.append(user.getSurname()).append(user.getName()); + url.append(user.getHeadImgUrl()); + } + }); + resultDTO.setReleaseUserName(name.toString()); + resultDTO.setReleaseUserHeadPhoto(url.toString()); + fileList.forEach(f -> { + if ("image".equals(f.getType())) { + imageList.add(f); + } else if ("doc".equals(f.getType())) { + docList.add(f); + } + }); + resultDTO.setImageList(imageList); + resultDTO.setDocList(docList); + + return resultDTO; + } + /** * @Author sun * @Description 文字、图片安全校验 diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeAttachmentDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeAttachmentDao.xml index 6ee12ce2e0..5423a4620a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeAttachmentDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeAttachmentDao.xml @@ -3,6 +3,23 @@ + + DELETE FROM