From dead5fb2daeff0534b77186d697b8b28d07a7023 Mon Sep 17 00:00:00 2001 From: Junling Bu Date: Sat, 6 Apr 2019 20:24:17 +0800 Subject: [PATCH] =?UTF-8?q?fix[litemall-admin-api,=20litemall-db]:=20?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E8=A7=92=E8=89=B2=E5=AD=98=E5=9C=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=EF=BC=8C=E5=88=99=E4=B8=8D=E8=83=BD=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../litemall/admin/util/AdminResponseCode.java | 2 ++ .../litemall/admin/web/AdminRoleController.java | 16 ++++++++++++++++ .../db/service/LitemallAdminService.java | 6 ++++++ 3 files changed, 24 insertions(+) diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java index 93f5eacc..f096a295 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java @@ -19,4 +19,6 @@ public class AdminResponseCode { public static final Integer USER_MOBILE_EXIST = 634; public static final Integer ROLE_NAME_EXIST = 640; public static final Integer ROLE_SUPER_SUPERMISSION = 641; + public static final Integer ROLE_USER_EXIST = 642; + } diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRoleController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRoleController.java index e9cea174..44bb645e 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRoleController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRoleController.java @@ -19,6 +19,7 @@ import org.linlinjava.litemall.db.domain.LitemallAdmin; import org.linlinjava.litemall.db.domain.LitemallBrand; import org.linlinjava.litemall.db.domain.LitemallPermission; import org.linlinjava.litemall.db.domain.LitemallRole; +import org.linlinjava.litemall.db.service.LitemallAdminService; import org.linlinjava.litemall.db.service.LitemallPermissionService; import org.linlinjava.litemall.db.service.LitemallRoleService; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +32,7 @@ import javax.validation.constraints.NotNull; import java.util.*; import static org.linlinjava.litemall.admin.util.AdminResponseCode.ROLE_NAME_EXIST; +import static org.linlinjava.litemall.admin.util.AdminResponseCode.ROLE_USER_EXIST; @RestController @RequestMapping("/admin/role") @@ -42,6 +44,8 @@ public class AdminRoleController { private LitemallRoleService roleService; @Autowired private LitemallPermissionService permissionService; + @Autowired + private LitemallAdminService adminService; @RequiresPermissions("admin:role:list") @RequiresPermissionsDesc(menu={"系统管理" , "角色管理"}, button="角色查询") @@ -132,6 +136,18 @@ public class AdminRoleController { if (id == null) { return ResponseUtil.badArgument(); } + + // 如果当前角色所对应管理员仍存在,则拒绝删除角色。 + List adminList = adminService.all(); + for(LitemallAdmin admin : adminList){ + Integer[] roleIds = admin.getRoleIds(); + for(Integer roleId : roleIds){ + if(id.equals(roleId)){ + return ResponseUtil.fail(ROLE_USER_EXIST, "当前角色存在管理员,不能删除"); + } + } + } + roleService.deleteById(id); return ResponseUtil.ok(); } diff --git a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallAdminService.java b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallAdminService.java index e0b6b750..1ce2f63d 100644 --- a/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallAdminService.java +++ b/litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallAdminService.java @@ -63,4 +63,10 @@ public class LitemallAdminService { public LitemallAdmin findById(Integer id) { return adminMapper.selectByPrimaryKeySelective(id, result); } + + public List all() { + LitemallAdminExample example = new LitemallAdminExample(); + example.or().andDeletedEqualTo(false); + return adminMapper.selectByExample(example); + } }