From c3f5966e89e0f4b27442f523585c10c9a547d7ed Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 02 六月 2022 10:57:27 +0800
Subject: [PATCH] fix
---
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java | 7 +++----
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java | 33 ++++++++++++++++++++++++---------
2 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
index 93993e1..afa51f6 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AdminController.java
@@ -290,17 +290,16 @@
}
}
- @Log("鍚庡彴鐢ㄦ埛鍒犻櫎")
- @PostMapping("/del/{adminId}")
+ @GetMapping("/del/{adminId}")
public ResponseVO<Object> deleteAdmin(@PathVariable Long adminId) {
if (!permissionConfig.check(MenuEnum.ADMIN_DELETE.getCode())) {
return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
}
boolean result = adminService.deleteAdmin(adminId);
if (result) {
- return ResponseUtil.success("淇敼鎴愬姛");
+ return ResponseUtil.success("鍒犻櫎绠$悊鍛樻垚鍔燂紒");
} else {
- return ResponseUtil.fail("淇敼澶辫触");
+ return ResponseUtil.fail("鍒犻櫎绠$悊鍛樺け璐ワ紒");
}
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
index 11d7e6e..4374972 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
@@ -166,23 +166,38 @@
return updateById(admin);
}
+ @Transactional(rollbackFor = Exception.class)
public boolean deleteAdmin(Long adminId) {
+ boolean flag = false;
Admin admin = getById(adminId);
if (admin == null) {
throw new BusinessException("鎵句笉鍒扮鐞嗗憳");
}
- List<Role> roles = roleService.listByAdminId(admin.getId());
- if (CollectionUtil.isEmpty(roles)) {
- throw new BusinessException("褰撳墠鐢ㄦ埛娌℃湁瑙掕壊");
- }
- List<Integer> levels = roles.stream().map(Role::getLevel).collect(Collectors.toList());
- int min = Collections.min(levels);
- int maxLevel = roleService.assertLevels(min);
- if (!RoleLevelStatus.SUPER.getCode().equals(maxLevel)) {
+ if(!AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())){
throw new BusinessException("鍙湁瓒呯骇绠$悊鍛樻墠鑳藉垹闄ょ敤鎴�");
}
- return removeById(adminId);
+ //绠$悊鍛樿鑹插叧绯昏〃
+ AdminRoleRelationService adminRoleRelationService = SpringContextHolder.getBean(AdminRoleRelationService.class);
+ //鏈夌敤鎴峰繀瀹氭湁鐢ㄦ埛涓庤鑹茬殑鍏崇郴鏁版嵁
+ AdminRoleRelation one = adminRoleRelationService.getOne(Wrappers.lambdaQuery(AdminRoleRelation.class).eq(AdminRoleRelation::getAdminId, admin.getId()));
+ Role role = SpringContextHolder.getBean(RoleService.class).getOne(Wrappers.lambdaQuery(Role.class).eq(Role::getId, one.getRoleId()));
+
+ if (role.getLevel().equals(RoleLevelStatus.SUPER.getCode())) {
+ throw new BusinessException("瓒呯骇绠$悊鍛樻棤娉曞垹闄�");
+ } else {
+ //鍒犵敤鎴�
+ if (removeById(adminId)) {
+ //鍒犺鑹插叧绯昏〃淇℃伅
+ flag = adminRoleRelationService.removeById(one);
+ //鍒犻櫎澶辫触鍥炴粴鏁版嵁
+ if (!flag) {
+ throw new BusinessException("鍒犻櫎绠$悊鍛樼敤鎴峰け璐ワ紒");
+ }
+ }
+ }
+
+ return flag;
}
/**
--
Gitblit v1.9.3