Browse Source

小组通知详情

dev_shibei_match
sunyuchao 4 years ago
parent
commit
ebf745bf6b
  1. 21
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/NoticeDetailFormDTO.java
  2. 71
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/result/NoticeDetailResultDTO.java
  3. 14
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java
  4. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeAttachmentDao.java
  5. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeService.java
  6. 64
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java
  7. 17
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeAttachmentDao.xml

21
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{}
}

71
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<File> imageList;
/**
* 文件附件url集合
*/
private List<File> 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;
}
}

14
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<NoticeDetailResultDTO> noticeDetail(@LoginUser TokenDto tokenDto, @RequestBody NoticeDetailFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, NoticeDetailFormDTO.Detail.class);
return new Result<NoticeDetailResultDTO>().ok(noticeService.noticeDetail(tokenDto, formDTO));
}
}

9
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<NoticeAttachmentEntity> {
* @Description 删除通知附件-物理删除
**/
void delByNoticeId(@Param("noticeId") String noticeId);
/**
* @Author sun
* @Description 查询通知附件数据
**/
List<NoticeDetailResultDTO.File> selectListByNoticeId(@Param("noticeId") String noticeId);
}

10
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<NoticeEntity> {
* @Description 小组通知变更
**/
void edit(TokenDto tokenDto, EditNoticeFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 小组通知详情
**/
NoticeDetailResultDTO noticeDetail(TokenDto tokenDto, NoticeDetailFormDTO formDTO);
}

64
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<NoticeDao, NoticeEntity>
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<NoticeDao, NoticeEntity>
}
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 小组通知详情
**/
@Override
public NoticeDetailResultDTO noticeDetail(TokenDto tokenDto, NoticeDetailFormDTO formDTO) {
NoticeDetailResultDTO resultDTO = new NoticeDetailResultDTO();
List<NoticeDetailResultDTO.File> imageList = new ArrayList<>();
List<NoticeDetailResultDTO.File> docList = new ArrayList<>();
//1.查询通知基础信息
NoticeEntity entity = baseDao.selectById(formDTO.getNoticeId());
if (null == entity) {
return resultDTO;
}
//2.查询通知附件数据
List<NoticeDetailResultDTO.File> fileList = noticeAttachmentDao.selectListByNoticeId(formDTO.getNoticeId());
//3.调用user服务,查询通知发起人基本信息
List<String> userIdList = new ArrayList<>();
userIdList.add(entity.getCreatedBy());
Result<List<UserBaseInfoResultDTO>> result = epmetUserOpenFeignClient.queryUserBaseInfo(userIdList);
if (!result.success()) {
throw new RenException("调用user服务,获取用户基础数据失败");
}
List<UserBaseInfoResultDTO> 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 文字图片安全校验

17
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeAttachmentDao.xml

@ -3,6 +3,23 @@
<mapper namespace="com.epmet.modules.notice.dao.NoticeAttachmentDao">
<select id="selectListByNoticeId" resultType="com.epmet.resi.group.dto.notice.result.NoticeDetailResultDTO$File">
SELECT
file_name AS 'name',
attachment_url AS 'url',
attachment_type AS 'type',
attachment_format AS 'format',
attachment_size AS 'size',
duration AS 'duration'
FROM
notice_attachment
WHERE
del_flag = '0'
AND notice_id = #{noticeId}
ORDER BY
sort ASC
</select>
<delete id="delByNoticeId">
DELETE
FROM

Loading…
Cancel
Save