diff --git a/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java b/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java index 0a6f3c0..243231b 100644 --- a/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java +++ b/admin/src/main/java/com/jinrui/reference/admin/controller/NewsController.java @@ -140,7 +140,7 @@ public class NewsController { log.warn("当前用户已被封禁! id = {}", adminUserId); return ResultObject.failed("当前用户已被封禁!请联系系统管理员!"); } - if (!adminUser.isReviewer()||!adminUser.isSecondReviewer()) { + if (!adminUser.isReviewer() && !adminUser.isSecondReviewer()) { return ResultObject.failed("无此权限,非法操作!"); } @@ -242,6 +242,7 @@ public class NewsController { } } + @Deprecated @PostMapping("/create/publish") @OperationInfo(behavior = "发布", type = "news") public ResultObject createPublish(@RequestHeader("auth-token") String token, @@ -294,7 +295,7 @@ public class NewsController { log.info("path: /news/save, method: POST, request user id: {}, param: {}", adminUser.getId(), objectMapper.writeValueAsString(saveNewsDTO)); - return newsService.saveDraft(saveNewsDTO, adminUser.isReviewer()); + return newsService.saveDraft(saveNewsDTO, adminUser.getUserType()); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); diff --git a/core/src/main/java/com/jinrui/reference/core/service/NewsService.java b/core/src/main/java/com/jinrui/reference/core/service/NewsService.java index c5883bf..3008223 100644 --- a/core/src/main/java/com/jinrui/reference/core/service/NewsService.java +++ b/core/src/main/java/com/jinrui/reference/core/service/NewsService.java @@ -123,8 +123,14 @@ public class NewsService { if (oldStatus == 1) { return ResultObject.failed("资讯已被撤稿,请刷新列表页面!"); } - if (oldStatus != 4 || oldStatus != 3) { - return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); + if (isReviewer) { + if (oldStatus != 4) { + return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); + } + } else { + if (!(oldStatus == 4 || oldStatus == 3)) { + return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); + } } Long draftId = news.getDraftId(); @@ -373,6 +379,7 @@ public class NewsService { return llmFlag; } + @Deprecated public ResultObject createPublish(Long editorId, SaveNewsDTO saveNewsDTO, boolean isReviewer) { Long id = saveNewsDTO.getId(); Long newsId = saveNewsDTO.getId(); @@ -395,7 +402,7 @@ public class NewsService { // 已发布 saveNewsDTO.setStatus(2); saveNewsDTO.setPublishTime(new Date()); - saveNewDraft(saveNewsDTO, null, isReviewer); +// saveNewDraft(saveNewsDTO, null, isReviewer); } Long newIdRl = saveNewsDTO.getId(); @@ -524,24 +531,24 @@ public class NewsService { elasticsearchClient.update(e -> e.index(NewsInfo.INDEX_NAME).refresh(Refresh.True).id(newsInfoId).doc(newsInfo), NewsInfo.class); } - public ResultObject saveDraft(SaveNewsDTO saveNewsDTO, boolean isReviewer) { + public ResultObject saveDraft(SaveNewsDTO saveNewsDTO, String userType) { Long id = saveNewsDTO.getId(); if (id == null) { saveNewsDTO.setStatus(1); - return saveNewDraft(saveNewsDTO, null, isReviewer); + return saveNewDraft(saveNewsDTO, null, userType); } - return updateDraft(saveNewsDTO, isReviewer); + return updateDraft(saveNewsDTO, userType); } - private ResultObject updateDraft(SaveNewsDTO saveNewsDTO, boolean isReviewer) { + private ResultObject updateDraft(SaveNewsDTO saveNewsDTO, String userType) { Long id = saveNewsDTO.getId(); News news = newsMapper.getById(id); Long draftId = news.getDraftId(); if (draftId != null) { deleteDraft(draftId); } - return saveNewDraft(saveNewsDTO, news, isReviewer); + return saveNewDraft(saveNewsDTO, news, userType); } public ResultObject deleteNews(Long newsId, Long editorId) { @@ -580,7 +587,7 @@ public class NewsService { industryMapper.deleteDraft(draftId); } - private ResultObject saveNewDraft(SaveNewsDTO saveNewsDTO, News news, boolean isReviewer) { + private ResultObject saveNewDraft(SaveNewsDTO saveNewsDTO, News news, String userType) { NewsDraft newsDraft = new NewsDraft(saveNewsDTO); try { newsMapper.saveDraft(newsDraft); @@ -589,7 +596,7 @@ public class NewsService { return ResultObject.failed(500, "服务器错误,请联系系统管理员!"); } - Integer oldStatus = (isReviewer ? 3: 1); + Long draftId = newsDraft.getId(); if (news == null) { news = new News(saveNewsDTO); @@ -602,6 +609,25 @@ public class NewsService { return ResultObject.failed(500, "服务器错误,请联系系统管理员!"); } } else { + Integer oldStatus = news.getStatus(); + boolean isNormalUser = Objects.equals(userType, "00"); + boolean isSecondReviewer = Objects.equals(userType, "02"); + + if (isNormalUser) { + if (!(oldStatus == 1||oldStatus == -1)) { + return ResultObject.failed("该资讯正在审核中,请勿重复操作"); + } + } else if (isSecondReviewer) { + if (oldStatus != 3) { + return ResultObject.failed("该资讯正在审核中,请勿重复操作"); + } + } else { + if (oldStatus != 4) { + return ResultObject.failed("该资讯正在审核中,请勿重复操作"); + } + } + + String newsInfoId = news.getNewsinfoId(); news = new News(saveNewsDTO); news.setStatus(oldStatus); @@ -1108,8 +1134,11 @@ public class NewsService { log.warn("找不到ID为{}的新闻!", id); return ResultObject.failed("找不到ID为" + id + "的新闻!"); } + if (news.getDeleted()) { + return ResultObject.failed("该资讯正在审核中,请勿重复操作"); + } Integer oldStatus = news.getStatus(); - if (!Objects.equals(oldStatus, 1)||news.getDeleted()||Objects.equals(oldStatus, -1)) { + if (!(Objects.equals(oldStatus, 1)||Objects.equals(oldStatus, -1))) { return ResultObject.failed("该资讯正在审核中,请勿重复操作"); }