Commit dead5fb2 authored by Junling Bu's avatar Junling Bu
Browse files

fix[litemall-admin-api, litemall-db]: 如果角色存在管理员,则不能删除

parent 5c1a8f62
...@@ -19,4 +19,6 @@ public class AdminResponseCode { ...@@ -19,4 +19,6 @@ public class AdminResponseCode {
public static final Integer USER_MOBILE_EXIST = 634; public static final Integer USER_MOBILE_EXIST = 634;
public static final Integer ROLE_NAME_EXIST = 640; public static final Integer ROLE_NAME_EXIST = 640;
public static final Integer ROLE_SUPER_SUPERMISSION = 641; public static final Integer ROLE_SUPER_SUPERMISSION = 641;
public static final Integer ROLE_USER_EXIST = 642;
} }
...@@ -19,6 +19,7 @@ import org.linlinjava.litemall.db.domain.LitemallAdmin; ...@@ -19,6 +19,7 @@ import org.linlinjava.litemall.db.domain.LitemallAdmin;
import org.linlinjava.litemall.db.domain.LitemallBrand; import org.linlinjava.litemall.db.domain.LitemallBrand;
import org.linlinjava.litemall.db.domain.LitemallPermission; import org.linlinjava.litemall.db.domain.LitemallPermission;
import org.linlinjava.litemall.db.domain.LitemallRole; 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.LitemallPermissionService;
import org.linlinjava.litemall.db.service.LitemallRoleService; import org.linlinjava.litemall.db.service.LitemallRoleService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -31,6 +32,7 @@ import javax.validation.constraints.NotNull; ...@@ -31,6 +32,7 @@ import javax.validation.constraints.NotNull;
import java.util.*; import java.util.*;
import static org.linlinjava.litemall.admin.util.AdminResponseCode.ROLE_NAME_EXIST; import static org.linlinjava.litemall.admin.util.AdminResponseCode.ROLE_NAME_EXIST;
import static org.linlinjava.litemall.admin.util.AdminResponseCode.ROLE_USER_EXIST;
@RestController @RestController
@RequestMapping("/admin/role") @RequestMapping("/admin/role")
...@@ -42,6 +44,8 @@ public class AdminRoleController { ...@@ -42,6 +44,8 @@ public class AdminRoleController {
private LitemallRoleService roleService; private LitemallRoleService roleService;
@Autowired @Autowired
private LitemallPermissionService permissionService; private LitemallPermissionService permissionService;
@Autowired
private LitemallAdminService adminService;
@RequiresPermissions("admin:role:list") @RequiresPermissions("admin:role:list")
@RequiresPermissionsDesc(menu={"系统管理" , "角色管理"}, button="角色查询") @RequiresPermissionsDesc(menu={"系统管理" , "角色管理"}, button="角色查询")
...@@ -132,6 +136,18 @@ public class AdminRoleController { ...@@ -132,6 +136,18 @@ public class AdminRoleController {
if (id == null) { if (id == null) {
return ResponseUtil.badArgument(); return ResponseUtil.badArgument();
} }
// 如果当前角色所对应管理员仍存在,则拒绝删除角色。
List<LitemallAdmin> 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); roleService.deleteById(id);
return ResponseUtil.ok(); return ResponseUtil.ok();
} }
......
...@@ -63,4 +63,10 @@ public class LitemallAdminService { ...@@ -63,4 +63,10 @@ public class LitemallAdminService {
public LitemallAdmin findById(Integer id) { public LitemallAdmin findById(Integer id) {
return adminMapper.selectByPrimaryKeySelective(id, result); return adminMapper.selectByPrimaryKeySelective(id, result);
} }
public List<LitemallAdmin> all() {
LitemallAdminExample example = new LitemallAdminExample();
example.or().andDeletedEqualTo(false);
return adminMapper.selectByExample(example);
}
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment