二审增加发布的功能

This commit is contained in:
sunflower2014 2025-09-25 20:06:44 +08:00
parent 1356038167
commit aef9d28061
2 changed files with 9 additions and 48 deletions

View File

@ -79,17 +79,11 @@ public class NewsController {
if (id == null) { if (id == null) {
return ResultObject.failed("要送审的新闻ID不可为空"); return ResultObject.failed("要送审的新闻ID不可为空");
} }
boolean isSuccessed = setEditingFlag(id);
if (!isSuccessed) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
}
log.info("path: /news/submit, method: POST, request user id: {}, news id: {}", adminUserId, id); log.info("path: /news/submit, method: POST, request user id: {}, news id: {}", adminUserId, id);
return newsService.submit(id, adminUserId); return newsService.submit(id, adminUserId);
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
} finally {
unsetEditingFlag(publishNewsDTO.getId());
} }
} }
@ -118,17 +112,11 @@ public class NewsController {
if (id == null) { if (id == null) {
return ResultObject.failed("要送审的新闻ID不可为空"); return ResultObject.failed("要送审的新闻ID不可为空");
} }
boolean isSuccessed = setEditingFlag(id);
if (!isSuccessed) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
}
log.info("path: /news/revoke, method: POST, request user id: {}, news id: {}", adminUserId, id); log.info("path: /news/revoke, method: POST, request user id: {}, news id: {}", adminUserId, id);
return newsService.revoke(id, adminUserId, adminUser.isReviewer(), adminUser.isSecondReviewer()); return newsService.revoke(id, adminUserId, adminUser.isReviewer(), adminUser.isSecondReviewer());
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
} finally {
unsetEditingFlag(publishNewsDTO.getId());
} }
} }
@ -152,7 +140,7 @@ public class NewsController {
log.warn("当前用户已被封禁! id = {}", adminUserId); log.warn("当前用户已被封禁! id = {}", adminUserId);
return ResultObject.failed("当前用户已被封禁!请联系系统管理员!"); return ResultObject.failed("当前用户已被封禁!请联系系统管理员!");
} }
if (!adminUser.isReviewer()) { if (!adminUser.isReviewer()||!adminUser.isSecondReviewer()) {
return ResultObject.failed("无此权限,非法操作!"); return ResultObject.failed("无此权限,非法操作!");
} }
@ -160,12 +148,9 @@ public class NewsController {
if (id == null) { if (id == null) {
return ResultObject.failed("要发布/下架的新闻ID不可为空"); return ResultObject.failed("要发布/下架的新闻ID不可为空");
} }
if (!adminUser.isReviewer()) {
return ResultObject.failed("当前操作非法,没有审核员权限!");
}
log.info("path: /news/publish, method: POST, request user id: {}, news id: {}", adminUserId, id); log.info("path: /news/publish, method: POST, request user id: {}, news id: {}", adminUserId, id);
return newsService.publish(id, adminUserId); return newsService.publish(id, adminUserId, adminUser.isReviewer());
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
@ -220,18 +205,12 @@ public class NewsController {
log.warn("当前用户已被封禁! id = {}", adminUserId); log.warn("当前用户已被封禁! id = {}", adminUserId);
return ResultObject.failed("当前用户已被封禁!请联系系统管理员!"); return ResultObject.failed("当前用户已被封禁!请联系系统管理员!");
} }
boolean isSuccessed = setEditingFlag(id);
if (!isSuccessed) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
}
log.info("path: /news, method: DELETE, request user id: {}, news id: {}", adminUserId, id); log.info("path: /news, method: DELETE, request user id: {}, news id: {}", adminUserId, id);
return newsService.deleteNews(id, adminUserId); return newsService.deleteNews(id, adminUserId);
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
} finally { }
unsetEditingFlag(id);
}
} }
@PostMapping("/{id}/recover") @PostMapping("/{id}/recover")
@ -286,16 +265,10 @@ public class NewsController {
log.info("path: /news/create/publish, method: POST, request user id: {}, param: {}", log.info("path: /news/create/publish, method: POST, request user id: {}, param: {}",
adminUserId, objectMapper.writeValueAsString(saveNewsDTO)); adminUserId, objectMapper.writeValueAsString(saveNewsDTO));
boolean isSuccessed = setEditingFlag(saveNewsDTO.getId());
if (!isSuccessed) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
}
return newsService.createPublish(adminUserId, saveNewsDTO, adminUser.isReviewer()); return newsService.createPublish(adminUserId, saveNewsDTO, adminUser.isReviewer());
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
} finally {
unsetEditingFlag(saveNewsDTO.getId());
} }
} }
@ -505,17 +478,11 @@ public class NewsController {
if (id == null) { if (id == null) {
return ResultObject.failed("要复审的新闻ID不可为空"); return ResultObject.failed("要复审的新闻ID不可为空");
} }
boolean isSuccessed = setEditingFlag(id);
if (!isSuccessed) {
return ResultObject.failed("该资讯正在复审中,请勿重复操作!");
}
log.info("path: /news/check, method: POST, request user id: {}, news id: {}", adminUserId, id); log.info("path: /news/check, method: POST, request user id: {}, news id: {}", adminUserId, id);
return newsService.check(id, adminUserId); return newsService.check(id, adminUserId);
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
} finally {
unsetEditingFlag(id);
} }
} }
@ -547,17 +514,11 @@ public class NewsController {
if (!(adminUser.isReviewer()||adminUser.isSecondReviewer())) { if (!(adminUser.isReviewer()||adminUser.isSecondReviewer())) {
return ResultObject.failed("无相关权限,非法操作"); return ResultObject.failed("无相关权限,非法操作");
} }
boolean isSuccessed = setEditingFlag(id);
if (!isSuccessed) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
}
log.info("path: /news/sendback, method: POST, request user id: {}, news id: {}", adminUserId, id); log.info("path: /news/sendback, method: POST, request user id: {}, news id: {}", adminUserId, id);
return newsService.sendback(id, adminUserId, adminUser.isReviewer(), adminUser.isSecondReviewer()); return newsService.sendback(id, adminUserId, adminUser.isReviewer(), adminUser.isSecondReviewer());
} catch (Exception e) { } catch (Exception e) {
log.error("解析登陆Token出错!", e); log.error("解析登陆Token出错!", e);
return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); return ResultObject.failed(500, "服务端错误,请联系系统管理员!");
} finally {
unsetEditingFlag(id);
} }
} }
@ -576,7 +537,7 @@ public class NewsController {
if (result == null ||result == 0L) { if (result == null ||result == 0L) {
return false; return false;
} }
jedis.expire(newsIdStr, 10*60L); jedis.expire(newsIdStr, 5*60L);
return true; return true;
} catch(Exception e) { } catch(Exception e) {
return false; return false;

View File

@ -110,7 +110,7 @@ public class NewsService {
this.userOperationLogMapper = userOperationLogMapper; this.userOperationLogMapper = userOperationLogMapper;
} }
public ResultObject<Void> publish(long id, long editorId) { public ResultObject<Void> publish(long id, long editorId, boolean isReviewer) {
News news = newsMapper.getById(id); News news = newsMapper.getById(id);
if (news == null) { if (news == null) {
log.warn("找不到ID为{}的新闻!", id); log.warn("找不到ID为{}的新闻!", id);
@ -123,7 +123,7 @@ public class NewsService {
if (oldStatus == 1) { if (oldStatus == 1) {
return ResultObject.failed("资讯已被撤稿,请刷新列表页面!"); return ResultObject.failed("资讯已被撤稿,请刷新列表页面!");
} }
if (oldStatus != 4) { if (oldStatus != 4 || oldStatus != 3) {
return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); return ResultObject.failed("该资讯正在审核中,请勿重复操作!");
} }
@ -139,7 +139,7 @@ public class NewsService {
return ResultObject.failed(resultObject.getCode(), resultObject.getMsg()); return ResultObject.failed(resultObject.getCode(), resultObject.getMsg());
} }
SaveNewsDTO saveNewsDTO = new SaveNewsDTO(newsDetailVO); SaveNewsDTO saveNewsDTO = new SaveNewsDTO(newsDetailVO);
return createPublish(editorId, saveNewsDTO, true); return createPublish(editorId, saveNewsDTO, isReviewer);
} }
public ResultObject<NewsDetailVO> detail(Long id) { public ResultObject<NewsDetailVO> detail(Long id) {
@ -376,8 +376,8 @@ public class NewsService {
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();
Integer newStatus = (isReviewer ? 2: 4); Integer newStatus = 2;
Integer oldStatus = (isReviewer ? 4: 1); Integer oldStatus = (isReviewer ? 4: 3);
News news; News news;
Long draftId = null; Long draftId = null;
String newsInfoId = null; String newsInfoId = null;