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/service/AdminService.java | 33 ++++++++++++++++++++++++---------
1 files changed, 24 insertions(+), 9 deletions(-)
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