fix[litemall-admin-api, litemall-db]: 如果角色存在管理员,则不能删除
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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<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);
|
||||
return ResponseUtil.ok();
|
||||
}
|
||||
|
||||
@@ -63,4 +63,10 @@ public class LitemallAdminService {
|
||||
public LitemallAdmin findById(Integer id) {
|
||||
return adminMapper.selectByPrimaryKeySelective(id, result);
|
||||
}
|
||||
|
||||
public List<LitemallAdmin> all() {
|
||||
LitemallAdminExample example = new LitemallAdminExample();
|
||||
example.or().andDeletedEqualTo(false);
|
||||
return adminMapper.selectByExample(example);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user