fix 删除角色时判断是否有用户

This commit is contained in:
lijiarao
2021-08-30 10:58:25 +08:00
parent 03dc058b5e
commit ecdeadeb49
@@ -13,6 +13,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.SysDepartTreeModel; import com.jero.common.system.vo.SysDepartTreeModel;
import com.jero.common.system.vo.SysRoleTreeModel; import com.jero.common.system.vo.SysRoleTreeModel;
import com.jero.modules.system.entity.*; import com.jero.modules.system.entity.*;
@@ -184,14 +185,13 @@ public class SysRoleController {
} }
/** /**
* 通过id删除 * 通过id删除
* @param id * @param id
* @return * @return
*/ */
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:role:del") @RequiresPermissions("sys:role:del")
@RequestMapping(value = "/delete", method = RequestMethod.GET) @RequestMapping(value = "/delete", method = RequestMethod.GET)
public Result<?> delete(@RequestParam(name="id",required=true) String id) { public Result<?> delete(@RequestParam(name="id") String id) {
IPage<SysUser> pageInfo = sysUserService.getUserByRoleId(new Page<>(), id, null); IPage<SysUser> pageInfo = sysUserService.getUserByRoleId(new Page<>(), id, null);
long total = pageInfo.getTotal(); long total = pageInfo.getTotal();
if (total == 0) { if (total == 0) {
@@ -203,22 +203,31 @@ public class SysRoleController {
} }
/** /**
* 批量删除 * 批量删除
* @param ids * @param ids
* @return * @return
*/ */
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:role:del") @RequiresPermissions("sys:role:del")
@RequestMapping(value = "/deleteBatch", method = RequestMethod.GET) @RequestMapping(value = "/deleteBatch", method = RequestMethod.GET)
public Result<SysRole> deleteBatch(@RequestParam(name="ids",required=true) String ids) { public Result<String> deleteBatch(@RequestParam(name="ids") String ids) {
Result<SysRole> result = new Result<SysRole>(); if (oConvertUtils.isEmpty(ids)) {
if(oConvertUtils.isEmpty(ids)) { throw new JeroBootException("未选中角色!");
result.error500("未选中角色!");
}else {
sysRoleService.deleteBatchRole(ids.split(","));
result.success("删除角色成功!");
} }
return result; List<String> roleNames = new ArrayList<>();
String[] split = ids.split(",");
for (String id : split) {
IPage<SysUser> pageInfo = sysUserService.getUserByRoleId(new Page<>(), id, null);
long total = pageInfo.getTotal();
if (total != 0) {
SysRole sysRole = sysRoleService.getById(id);
roleNames.add(sysRole.getRoleName());
}
}
if (!roleNames.isEmpty()) {
throw new JeroBootException(roleNames + "删除角色失败,角色下存在未删除用户");
}
sysRoleService.deleteBatchRole(split);
return Result.OK("删除角色成功!");
} }
/** /**