三审问题处理

This commit is contained in:
sunflower2014 2025-09-27 19:00:12 +08:00
parent aef9d28061
commit c571f8bd28
2 changed files with 43 additions and 13 deletions

View File

@ -140,7 +140,7 @@ public class NewsController {
log.warn("当前用户已被封禁! id = {}", adminUserId); log.warn("当前用户已被封禁! id = {}", adminUserId);
return ResultObject.failed("当前用户已被封禁!请联系系统管理员!"); return ResultObject.failed("当前用户已被封禁!请联系系统管理员!");
} }
if (!adminUser.isReviewer()||!adminUser.isSecondReviewer()) { if (!adminUser.isReviewer() && !adminUser.isSecondReviewer()) {
return ResultObject.failed("无此权限,非法操作!"); return ResultObject.failed("无此权限,非法操作!");
} }
@ -242,6 +242,7 @@ public class NewsController {
} }
} }
@Deprecated
@PostMapping("/create/publish") @PostMapping("/create/publish")
@OperationInfo(behavior = "发布", type = "news") @OperationInfo(behavior = "发布", type = "news")
public ResultObject<Void> createPublish(@RequestHeader("auth-token") String token, public ResultObject<Void> createPublish(@RequestHeader("auth-token") String token,
@ -294,7 +295,7 @@ public class NewsController {
log.info("path: /news/save, method: POST, request user id: {}, param: {}", log.info("path: /news/save, method: POST, request user id: {}, param: {}",
adminUser.getId(), objectMapper.writeValueAsString(saveNewsDTO)); adminUser.getId(), objectMapper.writeValueAsString(saveNewsDTO));
return newsService.saveDraft(saveNewsDTO, adminUser.isReviewer()); return newsService.saveDraft(saveNewsDTO, adminUser.getUserType());
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");

View File

@ -123,9 +123,15 @@ public class NewsService {
if (oldStatus == 1) { if (oldStatus == 1) {
return ResultObject.failed("资讯已被撤稿,请刷新列表页面!"); return ResultObject.failed("资讯已被撤稿,请刷新列表页面!");
} }
if (oldStatus != 4 || oldStatus != 3) { if (isReviewer) {
if (oldStatus != 4) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
} }
} else {
if (!(oldStatus == 4 || oldStatus == 3)) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
}
}
Long draftId = news.getDraftId(); Long draftId = news.getDraftId();
if (draftId == null) { if (draftId == null) {
@ -373,6 +379,7 @@ public class NewsService {
return llmFlag; return llmFlag;
} }
@Deprecated
public ResultObject<Void> createPublish(Long editorId, SaveNewsDTO saveNewsDTO, boolean isReviewer) { public ResultObject<Void> createPublish(Long editorId, SaveNewsDTO saveNewsDTO, boolean isReviewer) {
Long id = saveNewsDTO.getId(); Long id = saveNewsDTO.getId();
Long newsId = saveNewsDTO.getId(); Long newsId = saveNewsDTO.getId();
@ -395,7 +402,7 @@ public class NewsService {
// 已发布 // 已发布
saveNewsDTO.setStatus(2); saveNewsDTO.setStatus(2);
saveNewsDTO.setPublishTime(new Date()); saveNewsDTO.setPublishTime(new Date());
saveNewDraft(saveNewsDTO, null, isReviewer); // saveNewDraft(saveNewsDTO, null, isReviewer);
} }
Long newIdRl = saveNewsDTO.getId(); 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); elasticsearchClient.update(e -> e.index(NewsInfo.INDEX_NAME).refresh(Refresh.True).id(newsInfoId).doc(newsInfo), NewsInfo.class);
} }
public ResultObject<Void> saveDraft(SaveNewsDTO saveNewsDTO, boolean isReviewer) { public ResultObject<Void> saveDraft(SaveNewsDTO saveNewsDTO, String userType) {
Long id = saveNewsDTO.getId(); Long id = saveNewsDTO.getId();
if (id == null) { if (id == null) {
saveNewsDTO.setStatus(1); saveNewsDTO.setStatus(1);
return saveNewDraft(saveNewsDTO, null, isReviewer); return saveNewDraft(saveNewsDTO, null, userType);
} }
return updateDraft(saveNewsDTO, isReviewer); return updateDraft(saveNewsDTO, userType);
} }
private ResultObject<Void> updateDraft(SaveNewsDTO saveNewsDTO, boolean isReviewer) { private ResultObject<Void> updateDraft(SaveNewsDTO saveNewsDTO, String userType) {
Long id = saveNewsDTO.getId(); Long id = saveNewsDTO.getId();
News news = newsMapper.getById(id); News news = newsMapper.getById(id);
Long draftId = news.getDraftId(); Long draftId = news.getDraftId();
if (draftId != null) { if (draftId != null) {
deleteDraft(draftId); deleteDraft(draftId);
} }
return saveNewDraft(saveNewsDTO, news, isReviewer); return saveNewDraft(saveNewsDTO, news, userType);
} }
public ResultObject<Void> deleteNews(Long newsId, Long editorId) { public ResultObject<Void> deleteNews(Long newsId, Long editorId) {
@ -580,7 +587,7 @@ public class NewsService {
industryMapper.deleteDraft(draftId); industryMapper.deleteDraft(draftId);
} }
private ResultObject<Void> saveNewDraft(SaveNewsDTO saveNewsDTO, News news, boolean isReviewer) { private ResultObject<Void> saveNewDraft(SaveNewsDTO saveNewsDTO, News news, String userType) {
NewsDraft newsDraft = new NewsDraft(saveNewsDTO); NewsDraft newsDraft = new NewsDraft(saveNewsDTO);
try { try {
newsMapper.saveDraft(newsDraft); newsMapper.saveDraft(newsDraft);
@ -589,7 +596,7 @@ public class NewsService {
return ResultObject.failed(500, "服务器错误,请联系系统管理员!"); return ResultObject.failed(500, "服务器错误,请联系系统管理员!");
} }
Integer oldStatus = (isReviewer ? 3: 1);
Long draftId = newsDraft.getId(); Long draftId = newsDraft.getId();
if (news == null) { if (news == null) {
news = new News(saveNewsDTO); news = new News(saveNewsDTO);
@ -602,6 +609,25 @@ public class NewsService {
return ResultObject.failed(500, "服务器错误,请联系系统管理员!"); return ResultObject.failed(500, "服务器错误,请联系系统管理员!");
} }
} else { } 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(); String newsInfoId = news.getNewsinfoId();
news = new News(saveNewsDTO); news = new News(saveNewsDTO);
news.setStatus(oldStatus); news.setStatus(oldStatus);
@ -1108,8 +1134,11 @@ public class NewsService {
log.warn("找不到ID为{}的新闻!", id); log.warn("找不到ID为{}的新闻!", id);
return ResultObject.failed("找不到ID为" + id + "的新闻!"); return ResultObject.failed("找不到ID为" + id + "的新闻!");
} }
if (news.getDeleted()) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作");
}
Integer oldStatus = news.getStatus(); 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("该资讯正在审核中,请勿重复操作"); return ResultObject.failed("该资讯正在审核中,请勿重复操作");
} }