|
@@ -300,6 +300,30 @@ public class NoticeServiceImpl implements NoticeService {
|
|
|
noticeRepo.updateNoticeStatus(noticeId, noticeStatus.toString());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void backMsg(UpdateNoticeInfo info) {
|
|
|
+ // 校验通知状态,只能撤回已经发送的消息
|
|
|
+ NoticeEntity originalNotice = GlobalHelper.getEntity(noticeRepo, info.getId(),
|
|
|
+ NoticeEntity.class);
|
|
|
+ if (originalNotice == null) {
|
|
|
+ throw new StatusException("501006", "找不到通知id为:" + info.getId() + "的数据");
|
|
|
+ }
|
|
|
+ if (originalNotice.getNoticeStatus() != NoticeStatus.PUBLISHED) {
|
|
|
+ throw new StatusException("501008", "只能撤回已经发送的消息");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新通知表
|
|
|
+ originalNotice.setTitle(info.getTitle());
|
|
|
+ originalNotice.setPublisher(info.getPublisher());
|
|
|
+ originalNotice.setNoticeStatus(NoticeStatus.DRAFT);
|
|
|
+ originalNotice.setContent(info.getContent());
|
|
|
+ originalNotice.setUpdateTime(new Date());
|
|
|
+ noticeRepo.save(originalNotice);
|
|
|
+
|
|
|
+ //根据noticeId删除用户通知记录
|
|
|
+ userNoticeRepo.deleteByNoticeId(info.getId());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除所有相关的通知数据
|
|
|
*
|