From aef9d280613e61a1fc687118e78f860817ebb51a Mon Sep 17 00:00:00 2001 From: sunflower2014 Date: Thu, 25 Sep 2025 20:06:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E5=AE=A1=E5=A2=9E=E5=8A=A0=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/NewsController.java | 47 ++----------------- .../reference/core/service/NewsService.java | 10 ++-- 2 files changed, 9 insertions(+), 48 deletions(-) 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 e798e2f..0a6f3c0 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 @@ -79,17 +79,11 @@ public class NewsController { if (id == null) { 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); return newsService.submit(id, adminUserId); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); - } finally { - unsetEditingFlag(publishNewsDTO.getId()); } } @@ -118,17 +112,11 @@ public class NewsController { if (id == null) { 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); return newsService.revoke(id, adminUserId, adminUser.isReviewer(), adminUser.isSecondReviewer()); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); - } finally { - unsetEditingFlag(publishNewsDTO.getId()); } } @@ -152,7 +140,7 @@ public class NewsController { log.warn("当前用户已被封禁! id = {}", adminUserId); return ResultObject.failed("当前用户已被封禁!请联系系统管理员!"); } - if (!adminUser.isReviewer()) { + if (!adminUser.isReviewer()||!adminUser.isSecondReviewer()) { return ResultObject.failed("无此权限,非法操作!"); } @@ -160,12 +148,9 @@ public class NewsController { if (id == null) { return ResultObject.failed("要发布/下架的新闻ID不可为空!"); } - if (!adminUser.isReviewer()) { - return ResultObject.failed("当前操作非法,没有审核员权限!"); - } 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) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); @@ -220,18 +205,12 @@ public class NewsController { log.warn("当前用户已被封禁! id = {}", adminUserId); 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); return newsService.deleteNews(id, adminUserId); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); - } finally { - unsetEditingFlag(id); - } + } } @PostMapping("/{id}/recover") @@ -286,16 +265,10 @@ public class NewsController { log.info("path: /news/create/publish, method: POST, request user id: {}, param: {}", adminUserId, objectMapper.writeValueAsString(saveNewsDTO)); - boolean isSuccessed = setEditingFlag(saveNewsDTO.getId()); - if (!isSuccessed) { - return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); - } return newsService.createPublish(adminUserId, saveNewsDTO, adminUser.isReviewer()); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); - } finally { - unsetEditingFlag(saveNewsDTO.getId()); } } @@ -505,17 +478,11 @@ public class NewsController { if (id == null) { 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); return newsService.check(id, adminUserId); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); - } finally { - unsetEditingFlag(id); } } @@ -547,17 +514,11 @@ public class NewsController { if (!(adminUser.isReviewer()||adminUser.isSecondReviewer())) { 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); return newsService.sendback(id, adminUserId, adminUser.isReviewer(), adminUser.isSecondReviewer()); } catch (Exception e) { log.error("解析登陆Token出错!", e); return ResultObject.failed(500, "服务端错误,请联系系统管理员!"); - } finally { - unsetEditingFlag(id); } } @@ -576,7 +537,7 @@ public class NewsController { if (result == null ||result == 0L) { return false; } - jedis.expire(newsIdStr, 10*60L); + jedis.expire(newsIdStr, 5*60L); return true; } catch(Exception e) { return false; 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 ef5f066..c5883bf 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 @@ -110,7 +110,7 @@ public class NewsService { this.userOperationLogMapper = userOperationLogMapper; } - public ResultObject publish(long id, long editorId) { + public ResultObject publish(long id, long editorId, boolean isReviewer) { News news = newsMapper.getById(id); if (news == null) { log.warn("找不到ID为{}的新闻!", id); @@ -123,7 +123,7 @@ public class NewsService { if (oldStatus == 1) { return ResultObject.failed("资讯已被撤稿,请刷新列表页面!"); } - if (oldStatus != 4) { + if (oldStatus != 4 || oldStatus != 3) { return ResultObject.failed("该资讯正在审核中,请勿重复操作!"); } @@ -139,7 +139,7 @@ public class NewsService { return ResultObject.failed(resultObject.getCode(), resultObject.getMsg()); } SaveNewsDTO saveNewsDTO = new SaveNewsDTO(newsDetailVO); - return createPublish(editorId, saveNewsDTO, true); + return createPublish(editorId, saveNewsDTO, isReviewer); } public ResultObject detail(Long id) { @@ -376,8 +376,8 @@ public class NewsService { public ResultObject createPublish(Long editorId, SaveNewsDTO saveNewsDTO, boolean isReviewer) { Long id = saveNewsDTO.getId(); Long newsId = saveNewsDTO.getId(); - Integer newStatus = (isReviewer ? 2: 4); - Integer oldStatus = (isReviewer ? 4: 1); + Integer newStatus = 2; + Integer oldStatus = (isReviewer ? 4: 3); News news; Long draftId = null; String newsInfoId = null;