Эх сурвалжийг харах

公告撤回包括待发布

qinchao 4 жил өмнө
parent
commit
bb75bba3f5

+ 9 - 7
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/NoticeServiceImpl.java

@@ -327,17 +327,19 @@ public class NoticeServiceImpl implements NoticeService {
         if(optional.isPresent()){
             NoticeEntity entity = optional.get();
 
-            if (entity.getNoticeStatus() != NoticeStatus.PUBLISHED) {
-                throw new StatusException("501008", "只能撤回已发送的消息");
+            if (entity.getNoticeStatus() != NoticeStatus.PUBLISHED && entity.getNoticeStatus() != NoticeStatus.TO_BE_PUBLISHED) {
+                throw new StatusException("501008", "只能撤回已发送或者待发送的消息");
             } else {
                 //根据noticeId删除用户通知,改为更新是否已经撤回状态
                 //userNoticeRepo.deleteByNoticeId(id);
-                userNoticeRepo.updateNoticeRecalledStatus(id);
+                if(entity.getNoticeStatus() != NoticeStatus.PUBLISHED){
+                    //如果已发送更新用户通知状态
+                    userNoticeRepo.updateNoticeRecalledStatus(id);
+                }
+                entity.setNoticeStatus(NoticeStatus.RECALLED);
+                entity.setUpdateTime(new Date());
+                noticeRepo.save(entity);
             }
-
-            entity.setNoticeStatus(NoticeStatus.RECALLED);
-            entity.setUpdateTime(new Date());
-            noticeRepo.save(entity);
         } else {
             throw new StatusException("501006", "找不到通知id为:" + id + "的数据");
         }