From b9b0f640390ab405b4727411ee15c364236317ff Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Thu, 22 Jan 2026 18:08:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=89=E8=AE=BF=E6=B6=89=E8=AF=89--=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=9D=83=E9=99=90=E9=9C=80=E8=A6=81=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=9C=AC=E4=BA=BA=E5=BD=95=E5=85=A5=E6=9D=A5?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ComplaintCollectionServiceImpl.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java index 68f273c..c75298f 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -131,16 +131,19 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic @Override + @Transactional(rollbackFor = Exception.class) public Result delComplaintCollection(ComplaintCollectionDelRequest request) { ComplaintCollectionQueryParam param = new ComplaintCollectionQueryParam(); param.setId(request.getId()); List query = complaintCollectionResourceService.query(param); if (CollectionUtil.isEmpty(query)) { - throw new RuntimeException("未找到可删除信息"); + throw new IllegalStateException("未找到可删除信息" + request.getId()); } if (!"0".equals(query.get(0).getStatus())) { - throw new RuntimeException("目标信息状态不可删除"); + throw new IllegalStateException("目标信息状态不可删除" + request.getId()); } + // 鉴权 + checkDeletePermission(query.get(0)); boolean deleted = complaintCollectionResourceService.deleteById(request.getId()); if (!deleted) { throw new RuntimeException("删除失败"); @@ -909,4 +912,33 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic } + + /** + * 删除鉴权 + * 1、本人可删除 + * 2、市局管理员可删除 + * 3、超级管理员可删除 + * + * @param complaintCollection + */ + private void checkDeletePermission(ComplaintCollection complaintCollection) { + UserAuth currentUser = UserContextHolder.getCurrentUser(); + List authDepartIds = currentUser.getAuthDepartIds(); + // 本人可删 + if (currentUser.getUserName().equals(complaintCollection.getCreateBy())) { + return; + } + // 超级管理员可删 + if (AppConstants.USER_TYPE_SUPER.equals(currentUser.getUserType())) { + return; + } + // 市局管理员可删除 + if (currentUser.getRoleCodes() != null && currentUser.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) { + return; + } + // 后续二级机构专班可以删除三级机构的 + // 否则直接异常 + throw new IllegalStateException("当前账号无权限操作该数据。请使用市局管理员账号登录,或确认该数据是否为本人录入。"); + } + }