Browse Source

通知过期后不允许编辑,阅读也不再算是已读

dev_shibei_match
sunyuchao 4 years ago
parent
commit
6760e37ec0
  1. 3
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java
  2. 16
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReadRecordServiceImpl.java
  3. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java

3
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeController.java

@ -79,9 +79,6 @@ public class NoticeController {
@PostMapping(value = "edit") @PostMapping(value = "edit")
public Result edit(@LoginUser TokenDto tokenDto, @RequestBody EditNoticeFormDTO formDTO){ public Result edit(@LoginUser TokenDto tokenDto, @RequestBody EditNoticeFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, EditNoticeFormDTO.Edit.class, EditNoticeFormDTO.EditUserShow.class); ValidatorUtils.validateEntity(formDTO, EditNoticeFormDTO.Edit.class, EditNoticeFormDTO.EditUserShow.class);
if(formDTO.getExpirationTime().before(new Date())){
throw new RenException("通知过期时间不能早于当前时间");
}
formDTO.setUserId(tokenDto.getUserId()); formDTO.setUserId(tokenDto.getUserId());
noticeService.edit(formDTO); noticeService.edit(formDTO);
return new Result(); return new Result();

16
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReadRecordServiceImpl.java

@ -48,6 +48,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -138,13 +139,18 @@ public class NoticeReadRecordServiceImpl extends BaseServiceImpl<NoticeReadRecor
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void readType(ReadTypeFormDTO formDTO) { public void readType(ReadTypeFormDTO formDTO) {
//1.根据通知Id和当前用户查询是否存在通知阅读记录 //1.查询通知详情,判断有没有过期
NoticeEntity notice = noticeDao.selectById(formDTO.getNoticeId());
//已经过期的通知,新用户阅读不算阅读,在通知有效期内没有阅读的就不算已读
if(notice.getChangeTime().before(new Date())){
return;
}
//2.根据通知Id和当前用户查询是否存在通知阅读记录
NoticeReadRecordEntity entity = baseDao.selectByNoticeId(formDTO.getNoticeId(), formDTO.getUserId()); NoticeReadRecordEntity entity = baseDao.selectByNoticeId(formDTO.getNoticeId(), formDTO.getUserId());
//2.不存在记录时新增已读记录 //3.不存在记录时新增已读记录
if (null == entity || StringUtils.isEmpty(entity.getId())) { if (null == entity || StringUtils.isEmpty(entity.getId())) {
//查询通知详情
NoticeEntity notice = noticeDao.selectById(formDTO.getNoticeId());
//新增当前人员已读数据 //新增当前人员已读数据
NoticeReadRecordEntity reafdRecord = new NoticeReadRecordEntity(); NoticeReadRecordEntity reafdRecord = new NoticeReadRecordEntity();
reafdRecord.setCustomerId(notice.getCustomerId()); reafdRecord.setCustomerId(notice.getCustomerId());
@ -155,7 +161,7 @@ public class NoticeReadRecordServiceImpl extends BaseServiceImpl<NoticeReadRecor
reafdRecord.setReadFlag(ReadFlagConstant.READ); reafdRecord.setReadFlag(ReadFlagConstant.READ);
insert(reafdRecord); insert(reafdRecord);
} else { } else {
//3.已存在记录且是已读状态不在修改 //4.已存在记录且是已读状态不在修改
if (ReadFlagConstant.UN_READ.equals(entity.getReadFlag())) { if (ReadFlagConstant.UN_READ.equals(entity.getReadFlag())) {
entity.setReadFlag(ReadFlagConstant.READ); entity.setReadFlag(ReadFlagConstant.READ);
baseDao.updateById(entity); baseDao.updateById(entity);

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeServiceImpl.java

@ -293,6 +293,14 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeDao, NoticeEntity>
if (null == entity) { if (null == entity) {
throw new RenException(String.format("小组通知变更,获取通知数据失败,通知Id->", formDTO.getNoticeId())); throw new RenException(String.format("小组通知变更,获取通知数据失败,通知Id->", formDTO.getNoticeId()));
} }
//通知已过期时不允许再次变更
if(entity.getChangeTime().before(new Date())){
throw new RenException("通知已过期不允许再次变更");
}
if(formDTO.getExpirationTime().before(new Date())){
throw new RenException("通知过期时间不能早于当前时间");
}
//2.文字、图片安全校验 //2.文字、图片安全校验
List<String> wordList = new ArrayList<>(); List<String> wordList = new ArrayList<>();
wordList.add(formDTO.getTitle()); wordList.add(formDTO.getTitle());

Loading…
Cancel
Save