Commit e65f3e37 authored by 黎博's avatar 黎博

修改角色编辑、角色删除将可靠

parent f5ee7fcf
......@@ -56,29 +56,19 @@ public class RoleController {
List<String> usernameList = new ArrayList<>();
List<String> permissionNameList = new ArrayList<>();
for (UserRole userRole: userRoleList) {
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
userQueryWrapper.eq("id", userRole.getUserId());
List<User> userList = userService.list(userQueryWrapper);
for (User user: userList) {
usernameList.add(user.getUsername());
}
userQueryWrapper.clear();
User user = userService.getById(userRole.getUserId());
usernameList.add(user.getUsername());
}
for (RolePermission rolePermission: rolePermissionList) {
QueryWrapper<Permission> permissionQueryWrapper = new QueryWrapper<>();
permissionQueryWrapper.eq("id", rolePermission.getPermissionId());
List<Permission> permissionList = permissionService.list(permissionQueryWrapper);
for (Permission permission: permissionList) {
permissionNameList.add(permission.getPermissionName());
}
permissionQueryWrapper.clear();
Permission permission = permissionService.getById(rolePermission.getPermissionId());
permissionNameList.add(permission.getPermissionName());
}
userRoleQueryWrapper.clear();
rolePermissionQueryWrapper.clear();
roleInfoMap.put("roleId", role.getId());
roleInfoMap.put("roleName", role.getRoleName());
roleInfoMap.put("usernameList", usernameList);
roleInfoMap.put("permissionList", permissionNameList);
roleInfoMap.put("permissionNameList", permissionNameList);
roleTotalInfoList.add(roleInfoMap);
}
map.put("total", page.getTotal());
......@@ -86,33 +76,4 @@ public class RoleController {
return JsonResult.buildSuccessResult(map);
}
/**
* 新增角色
* @param role 角色实体
* @return
*/
@PostMapping("/add")
public JsonResult addRole(@RequestBody Role role) {
return JsonResult.buildSuccessResult(roleService.save(role));
}
/**
* 编辑角色
* @param role 角色实体
* @return
*/
@PostMapping("/edit")
public JsonResult editRole(@RequestBody Role role) {
return JsonResult.buildSuccessResult(roleService.saveOrUpdate(role));
}
/**
* 删除角色
* @param roleId 角色id
* @return
*/
@PostMapping("/del")
public JsonResult delRole(Integer roleId) {
return JsonResult.buildSuccessResult(roleService.removeById(roleId));
}
}
......@@ -7,6 +7,7 @@ import cn.qg.holmes.entity.auth.RolePermissionVo;
import cn.qg.holmes.service.auth.RolePermissionService;
import cn.qg.holmes.service.auth.RoleService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -61,40 +62,72 @@ public class RolePermissionController {
* @return
*/
@PostMapping("/edit")
public JsonResult editRolePermission(RolePermissionVo rolePermissionVo) {
// Integer roleId = rolePermissionVo.getRoleId();
// List<Integer> permissionIdList = rolePermissionVo.getPermissionIdList();
// QueryWrapper<RolePermission> rolePermissionQueryWrapper = new QueryWrapper<>();
// rolePermissionQueryWrapper.eq("role_id", roleId);
// List<RolePermission> rolePermissionListDb = rolePermissionService.list(rolePermissionQueryWrapper);
// for (RolePermission rolePermissionDb: rolePermissionListDb) {
// boolean flag = false;
// for (Integer permissionId: permissionIdList) {
// rolePermissionQueryWrapper.eq("permission_id", permissionId);
// RolePermission rolePermission = rolePermissionService.getOne(rolePermissionQueryWrapper);
// if (rolePermission == null) {
//
// }
// if (rolePermission != null && rolePermission.getId().equals(rolePermissionDb.getPermissionId())) {
// flag = true;
// break;
// }
// }
// if (!flag) {
// rolePermissionService.removeById(rolePermissionDb.getId());
// }
// }
// return JsonResult.buildSuccessResult(rolePermissionService.saveOrUpdateBatch(rolePermissionList));
return null;
public JsonResult editRolePermission(@RequestBody RolePermissionVo rolePermissionVo) {
Integer roleId = rolePermissionVo.getRoleId();
String roleName = rolePermissionVo.getRoleName();
Role role = new Role();
role.setId(roleId);
role.setRoleName(roleName);
boolean editRoleResult = roleService.saveOrUpdate(role);
if (!editRoleResult) {
return JsonResult.buildErrorStateResult("修改角色失败!", false);
}
try {
QueryWrapper<RolePermission> rolePermissionQueryWrapper = new QueryWrapper<>();
rolePermissionQueryWrapper.eq("role_id", roleId);
// 先查出数据库里有哪些
List<RolePermission> rolePermissionListInDB = rolePermissionService.list(rolePermissionQueryWrapper);
List<Integer> permissionIdList = rolePermissionVo.getPermissionIdList();
// 循环删除需要删除的
for (RolePermission rolePermission: rolePermissionListInDB) {
if (!permissionIdList.contains(rolePermission.getPermissionId())) {
rolePermissionService.removeById(rolePermission.getId());
}
}
rolePermissionQueryWrapper.clear();
// 然后处理需要新增或修改的
for (Integer permissionId: permissionIdList) {
rolePermissionQueryWrapper.eq("role_id", roleId);
rolePermissionQueryWrapper.eq("permission_id", permissionId);
RolePermission rolePermission = rolePermissionService.getOne(rolePermissionQueryWrapper);
if (rolePermission == null) {
rolePermission = new RolePermission();
rolePermission.setRoleId(roleId);
rolePermission.setPermissionId(permissionId);
rolePermissionService.saveOrUpdate(rolePermission);
} else {
rolePermission.setRoleId(roleId);
rolePermission.setPermissionId(permissionId);
rolePermissionService.saveOrUpdate(rolePermission);
}
rolePermissionQueryWrapper.clear();
}
return JsonResult.buildSuccessResult(true);
} catch (Exception e) {
e.printStackTrace();
return JsonResult.buildErrorStateResult("角色权限分配失败!", false);
}
}
/**
* 删除角色权限
* @param rolePermissionId 角色权限
* 删除角色以及角色对应权限
* @param roleId 角色id
* @return
*/
@GetMapping("/del")
public JsonResult delRolePermission(Integer rolePermissionId) {
return JsonResult.buildSuccessResult(rolePermissionService.removeById(rolePermissionId));
public JsonResult delRolePermission(Integer roleId) {
try {
roleService.removeById(roleId);
QueryWrapper<RolePermission> rolePermissionQueryWrapper = new QueryWrapper<>();
rolePermissionQueryWrapper.eq("role_id", roleId);
List<RolePermission> rolePermissionList = rolePermissionService.list(rolePermissionQueryWrapper);
for (RolePermission rolePermission: rolePermissionList) {
rolePermissionService.removeById(rolePermission.getId());
}
return JsonResult.buildSuccessResult(true);
} catch (Exception e) {
e.printStackTrace();
return JsonResult.buildErrorStateResult("角色删除失败!", false);
}
}
}
Markdown is supported
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