三审问题处理

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);
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<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: {}",
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, "服务端错误,请联系系统管理员!");

View File

@ -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<Void> 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<Void> saveDraft(SaveNewsDTO saveNewsDTO, boolean isReviewer) {
public ResultObject<Void> 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<Void> updateDraft(SaveNewsDTO saveNewsDTO, boolean isReviewer) {
private ResultObject<Void> 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<Void> deleteNews(Long newsId, Long editorId) {
@ -580,7 +587,7 @@ public class NewsService {
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);
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("该资讯正在审核中,请勿重复操作");
}