Commit f5ee7fcf authored by 黎博's avatar 黎博

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

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