Commit f5ee7fcf authored by 黎博's avatar 黎博

优化角色列表和新增角色接口

parent 91559ec6
package cn.qg.holmes.controller.auth;
import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.entity.auth.Role;
import cn.qg.holmes.service.auth.RoleService;
import cn.qg.holmes.entity.auth.*;
import cn.qg.holmes.service.auth.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
@CrossOrigin
@RestController
......@@ -19,6 +19,18 @@ public class RoleController {
@Autowired
RoleService roleService;
@Autowired
UserRoleService userRoleService;
@Autowired
UserService userService;
@Autowired
RolePermissionService rolePermissionService;
@Autowired
PermissionService permissionService;
/**
* 获取角色列表
* @param pageNum 第几页
......@@ -30,8 +42,47 @@ public class RoleController {
IPage<Role> roleIPage = new Page<>(pageNum, pageSize);
IPage page = roleService.page(roleIPage);
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> roleTotalInfoList = new ArrayList<>();
List<Role> roleList = page.getRecords();
for (Role role: roleList) {
Map<String, Object> roleInfoMap = new HashMap<>();
QueryWrapper<UserRole> userRoleQueryWrapper = new QueryWrapper<>();
QueryWrapper<RolePermission> rolePermissionQueryWrapper = new QueryWrapper<>();
Integer roleId = role.getId();
userRoleQueryWrapper.eq("role_id", roleId);
rolePermissionQueryWrapper.eq("role_id", roleId);
List<UserRole> userRoleList = userRoleService.list(userRoleQueryWrapper);
List<RolePermission> rolePermissionList = rolePermissionService.list(rolePermissionQueryWrapper);
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();
}
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();
}
userRoleQueryWrapper.clear();
rolePermissionQueryWrapper.clear();
roleInfoMap.put("roleId", role.getId());
roleInfoMap.put("roleName", role.getRoleName());
roleInfoMap.put("usernameList", usernameList);
roleInfoMap.put("permissionList", permissionNameList);
roleTotalInfoList.add(roleInfoMap);
}
map.put("total", page.getTotal());
map.put("list", page.getRecords());
map.put("list", roleTotalInfoList);
return JsonResult.buildSuccessResult(map);
}
......
package cn.qg.holmes.controller.auth;
import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.entity.auth.Role;
import cn.qg.holmes.entity.auth.RolePermission;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -19,21 +21,38 @@ public class RolePermissionController {
@Autowired
RolePermissionService rolePermissionService;
@Autowired
RoleService roleService;
/**
* 新增角色权限
* @param roleId 角色id
* @param permissionIdList 权限id列表
* @return
*/
@PostMapping("/add")
public JsonResult addRolePermission(Integer roleId, List<Integer> permissionIdList) {
public JsonResult addRolePermission(@RequestBody RolePermissionVo rolePermissionVo) {
String roleName = rolePermissionVo.getRoleName();
List<Integer> permissionIdList = rolePermissionVo.getPermissionIdList();
QueryWrapper<Role> roleQueryWrapper = new QueryWrapper<>();
roleQueryWrapper.eq("role_name", roleName);
if (roleService.getOne(roleQueryWrapper) != null) {
return JsonResult.buildErrorStateResult("角色名已存在!", false);
}
Role role = new Role();
role.setRoleName(rolePermissionVo.getRoleName());
boolean result = roleService.save(role);
if (!result) {
return JsonResult.buildErrorStateResult("新建角色失败!", false);
}
Role newRole = roleService.getOne(roleQueryWrapper);
Integer roleId = newRole.getId();
List<RolePermission> rolePermissionList = new ArrayList<>();
permissionIdList.forEach(permissionId -> {
for (Integer permissionId: permissionIdList) {
RolePermission rolePermission = new RolePermission();
rolePermission.setRoleId(roleId);
rolePermission.setPermissionId(permissionId);
rolePermissionList.add(rolePermission);
});
}
return JsonResult.buildSuccessResult(rolePermissionService.saveBatch(rolePermissionList));
}
......@@ -43,24 +62,30 @@ public class RolePermissionController {
*/
@PostMapping("/edit")
public JsonResult editRolePermission(RolePermissionVo rolePermissionVo) {
Integer roleId = rolePermissionVo.getRoleId();
List<RolePermission> rolePermissionList = rolePermissionVo.getRolePermissionList();
QueryWrapper<RolePermission> rolePermissionQueryWrapper = new QueryWrapper<>();
rolePermissionQueryWrapper.eq("role_id", roleId);
List<RolePermission> rolePermissionListDb = rolePermissionService.list(rolePermissionQueryWrapper);
for (RolePermission rolePermissionDb: rolePermissionListDb) {
boolean flag = false;
for (RolePermission rolePermission: rolePermissionList) {
if (rolePermission.getId().equals(rolePermissionDb.getPermissionId())) {
flag = true;
break;
}
}
if (!flag) {
rolePermissionService.removeById(rolePermissionDb.getId());
}
}
return JsonResult.buildSuccessResult(rolePermissionService.saveOrUpdateBatch(rolePermissionList));
// 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;
}
/**
......
......@@ -12,7 +12,6 @@ public class Role {
@TableId(type = IdType.AUTO)
private Integer id;
private String roleName;
private String roleCode;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
......
......@@ -8,5 +8,6 @@ import java.util.List;
public class RolePermissionVo {
private Integer roleId;
private List<RolePermission> rolePermissionList;
private String roleName;
private List<Integer> permissionIdList;
}
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