权限开发3
This commit is contained in:
parent
98e0d131b6
commit
018560cf1e
@ -4,9 +4,11 @@ package com.xdap.self_development.controller;
|
|||||||
import com.definesys.mpaas.common.http.Response;
|
import com.definesys.mpaas.common.http.Response;
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
||||||
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
||||||
|
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
||||||
import com.xdap.self_development.pojo.ModelRolesPojo;
|
import com.xdap.self_development.pojo.ModelRolesPojo;
|
||||||
import com.xdap.self_development.pojo.dto.PageResultDTO;
|
import com.xdap.self_development.pojo.dto.PageResultDTO;
|
||||||
import com.xdap.self_development.pojo.view.MenuListView;
|
import com.xdap.self_development.pojo.view.MenuListView;
|
||||||
|
import com.xdap.self_development.pojo.view.MenuParamView;
|
||||||
import com.xdap.self_development.pojo.view.ParametersView;
|
import com.xdap.self_development.pojo.view.ParametersView;
|
||||||
import com.xdap.self_development.service.ModelMenuPermissionService;
|
import com.xdap.self_development.service.ModelMenuPermissionService;
|
||||||
import com.xdap.self_development.service.ModelRoleService;
|
import com.xdap.self_development.service.ModelRoleService;
|
||||||
@ -34,39 +36,93 @@ public class PermissionController {
|
|||||||
|
|
||||||
//添加角色
|
//添加角色
|
||||||
@PostMapping("/addRoles")
|
@PostMapping("/addRoles")
|
||||||
Response addRoles(ModelRolesRequest request){
|
Response addRoles(@RequestBody ModelRolesRequest request){
|
||||||
try {
|
try {
|
||||||
modelRoleService.addRoles(request);
|
modelRoleService.addRoles(request);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException("添加失败:" +e.getMessage());
|
throw new RuntimeException("添加失败:检查是否存在重复角色(名称+代码)" +e.getMessage());
|
||||||
}
|
}
|
||||||
return Response.ok();
|
return Response.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
//查看角色
|
//查看角色
|
||||||
@GetMapping("/selectRoles")
|
@GetMapping("/selectRoles")
|
||||||
Response selectRoles(@RequestParam String userID){
|
Response selectRoles(){
|
||||||
try {
|
try {
|
||||||
// PageResultDTO<ModelRolesPojo> modelRolesPojoPageResultDTO = modelRoleService.selectRoles(userID);
|
List<ModelRolesPojo> modelRolesPojos = modelRoleService.selectRoles();
|
||||||
List<ModelRolesPojo> modelRolesPojos = modelRoleService.selectRoles(userID);
|
|
||||||
return Response.ok().data(modelRolesPojos);
|
return Response.ok().data(modelRolesPojos);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//为角色添加权限
|
//删除角色
|
||||||
@PostMapping("/insertPerForRole")
|
@GetMapping("/removeRoles")
|
||||||
public Response insertPerForRole(@RequestBody List<RolePerJoinRequest> request){
|
Response removeRoles(@RequestParam String roleID,String userID){
|
||||||
try {
|
try {
|
||||||
modelRoleService.insertPerForRole(request);
|
modelRoleService.removeRoles(roleID,userID);
|
||||||
return Response.ok();
|
return Response.ok();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e.getMessage());
|
throw new RuntimeException(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//修改角色信息
|
|
||||||
|
|
||||||
|
|
||||||
|
//获取用户权限
|
||||||
|
@GetMapping("/selectPersByUser")
|
||||||
|
Response selectPersByUser(@RequestParam String userOrDepID){
|
||||||
|
try {
|
||||||
|
List<MenuParamView> views = modelRoleService.selectPersByUser(userOrDepID);
|
||||||
|
return Response.ok().data(views);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取角色权限
|
||||||
|
@GetMapping("/selectPersByRole")
|
||||||
|
Response selectPersByRole(@RequestParam String roleID){
|
||||||
|
try {
|
||||||
|
List<MenuParamView> views = modelRoleService.selectPersByRole(roleID);
|
||||||
|
return Response.ok().data(views);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//为用户绑定角色
|
||||||
|
@PostMapping("/userRoleBinding")
|
||||||
|
public Response userRoleBinding(@RequestBody List<UserRoleBindingRequest> userRoleBindingRequest){
|
||||||
|
try {
|
||||||
|
modelRoleService.userRoleBinding(userRoleBindingRequest);
|
||||||
|
return Response.ok();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//修改角色权限(关联权限修改 增加,修改,删除)
|
||||||
|
@PostMapping("/updatePerForRole")
|
||||||
|
public Response updatePerForRole(@RequestBody List<RolePerJoinRequest> request){
|
||||||
|
try {
|
||||||
|
modelRoleService.updatePerForRole(request);
|
||||||
|
return Response.ok();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//修改单个角色信息(基础信息)
|
||||||
|
@PostMapping("/updateRole")
|
||||||
|
public Response updateRole(@RequestBody ModelRolesPojo modelRolesPojo,@RequestParam String userID){
|
||||||
|
try {
|
||||||
|
modelRoleService.updateRole(modelRolesPojo,userID);
|
||||||
|
return Response.ok();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//菜单查询
|
//菜单查询
|
||||||
@GetMapping("/selectMenus")
|
@GetMapping("/selectMenus")
|
||||||
Response selectMenus(){
|
Response selectMenus(){
|
||||||
|
|||||||
@ -9,4 +9,5 @@ public class RolePerJoinRequest {
|
|||||||
private String menuId;
|
private String menuId;
|
||||||
private String parameterId;
|
private String parameterId;
|
||||||
private Integer parameterPer;
|
private Integer parameterPer;
|
||||||
|
private String userId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
package com.xdap.self_development.controller.request;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserRoleBindingRequest {
|
||||||
|
//角色ID 用户ID 用户是否是部门0:用户 1部门
|
||||||
|
private String roleId;
|
||||||
|
private String userOrDeptId;
|
||||||
|
private Integer isDept;
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package com.xdap.self_development.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum ParamPermissionEnum {
|
||||||
|
|
||||||
|
REVIEW(1, "查看"),
|
||||||
|
EDITOR(2, "编辑");
|
||||||
|
|
||||||
|
private final Integer code;
|
||||||
|
private final String desc;
|
||||||
|
|
||||||
|
ParamPermissionEnum(Integer code, String desc) {
|
||||||
|
this.code = code;
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ParamPermissionEnum getByCode(Integer code) {
|
||||||
|
if (code == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (ParamPermissionEnum status : values()) {
|
||||||
|
if (status.code.equals(code)) {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ParamPermissionEnum getByDesc(String desc) {
|
||||||
|
if (desc == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (ParamPermissionEnum status : values()) {
|
||||||
|
if (status.desc.equals(desc)) {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,5 +16,7 @@ public class MenuListView {
|
|||||||
private String id;
|
private String id;
|
||||||
private String parent_id;
|
private String parent_id;
|
||||||
private String menu;
|
private String menu;
|
||||||
|
private String menuDesc;
|
||||||
ArrayList<MenuListView> listViews;
|
ArrayList<MenuListView> listViews;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.xdap.self_development.pojo.view;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class MenuParamView {
|
||||||
|
private String id;
|
||||||
|
private String menuPath;
|
||||||
|
private String subsystem;
|
||||||
|
private String parameterName;
|
||||||
|
private String parameterPer;
|
||||||
|
|
||||||
|
}
|
||||||
@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
|
|||||||
|
|
||||||
@SQLQuery(value = {
|
@SQLQuery(value = {
|
||||||
@SQL(view = "getAllParameters",
|
@SQL(view = "getAllParameters",
|
||||||
sql = "SELECT DISTINCT mp.parameter_name as 'parameterName', mp.id as 'parameterId' FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' ORDER BY mp.parameter_name where mp.subsystem_name = #subsystem")
|
sql = "SELECT DISTINCT mp.parameter_name as 'parameterName', mp.id as 'parameterId' FROM yfsjglpt_model_parameter mp INNER JOIN yfsjglpt_model_parameter_and_template mpat ON mp.id = mpat.parameter_id INNER JOIN yfsjglpt_model_template mt ON mpat.template_id = mt.id INNER JOIN ( SELECT template_name, MAX(version) AS max_version FROM yfsjglpt_model_template WHERE status = 'COMPLETE' GROUP BY template_name ) latest ON mt.template_name = latest.template_name AND mt.version = latest.max_version WHERE mt.status = 'COMPLETE' and mp.subsystem_name = #subsystem ORDER BY mp.parameter_name ")
|
||||||
})
|
})
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.xdap.self_development.service;
|
package com.xdap.self_development.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.xdap.self_development.pojo.ModelMenuDictionaryPojo;
|
||||||
import com.xdap.self_development.pojo.view.MenuListView;
|
import com.xdap.self_development.pojo.view.MenuListView;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -10,4 +11,6 @@ public interface ModelMenuPermissionService {
|
|||||||
|
|
||||||
//菜单查询
|
//菜单查询
|
||||||
List<MenuListView> selectMenus();
|
List<MenuListView> selectMenus();
|
||||||
|
//根据ID查询路径
|
||||||
|
ModelMenuDictionaryPojo selectMenuById(String menuId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,10 @@ package com.xdap.self_development.service;
|
|||||||
|
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
||||||
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
||||||
|
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
||||||
import com.xdap.self_development.pojo.ModelRolesPojo;
|
import com.xdap.self_development.pojo.ModelRolesPojo;
|
||||||
import com.xdap.self_development.pojo.dto.PageResultDTO;
|
import com.xdap.self_development.pojo.dto.PageResultDTO;
|
||||||
|
import com.xdap.self_development.pojo.view.MenuParamView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -14,8 +16,18 @@ public interface ModelRoleService {
|
|||||||
void addRoles(ModelRolesRequest request);
|
void addRoles(ModelRolesRequest request);
|
||||||
|
|
||||||
PageResultDTO<ModelRolesPojo> selectRolesByPage(String userID);
|
PageResultDTO<ModelRolesPojo> selectRolesByPage(String userID);
|
||||||
List<ModelRolesPojo> selectRoles(String userID);
|
List<ModelRolesPojo> selectRoles();
|
||||||
|
|
||||||
|
|
||||||
void insertPerForRole(List<RolePerJoinRequest> request);
|
void updatePerForRole(List<RolePerJoinRequest> request);
|
||||||
|
|
||||||
|
void updateRole(ModelRolesPojo modelRolesPojo, String userID);
|
||||||
|
|
||||||
|
List<MenuParamView> selectPersByUser(String userOrDepID);
|
||||||
|
|
||||||
|
List<MenuParamView> selectPersByRole(String roleID);
|
||||||
|
|
||||||
|
void removeRoles(String roleID, String userID);
|
||||||
|
|
||||||
|
void userRoleBinding(List<UserRoleBindingRequest> userRoleBindingRequest);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.xdap.self_development.service.impl;
|
|||||||
|
|
||||||
import com.xdap.self_development.config.BusinessDatabase;
|
import com.xdap.self_development.config.BusinessDatabase;
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
||||||
import com.xdap.self_development.pojo.ModelMenuPermissionPojo;
|
import com.xdap.self_development.pojo.ModelMenuDictionaryPojo;
|
||||||
import com.xdap.self_development.pojo.ModelRolesPojo;
|
import com.xdap.self_development.pojo.ModelRolesPojo;
|
||||||
import com.xdap.self_development.pojo.view.MenuListView;
|
import com.xdap.self_development.pojo.view.MenuListView;
|
||||||
import com.xdap.self_development.service.ModelMenuPermissionService;
|
import com.xdap.self_development.service.ModelMenuPermissionService;
|
||||||
@ -31,18 +31,19 @@ public class ModelMenuPermissionServiceImpl implements ModelMenuPermissionServic
|
|||||||
|
|
||||||
Map<String, MenuListView> nodeMap = new HashMap<>();
|
Map<String, MenuListView> nodeMap = new HashMap<>();
|
||||||
List<MenuListView> views = new ArrayList<>();
|
List<MenuListView> views = new ArrayList<>();
|
||||||
List<ModelMenuPermissionPojo> permissionPojos = businessDatabase.getBusinessDatabase()
|
List<ModelMenuDictionaryPojo> permissionPojos = businessDatabase.getBusinessDatabase()
|
||||||
.doQuery(ModelMenuPermissionPojo.class);
|
.doQuery(ModelMenuDictionaryPojo.class);
|
||||||
|
|
||||||
for (ModelMenuPermissionPojo pojo : permissionPojos) {
|
for (ModelMenuDictionaryPojo pojo : permissionPojos) {
|
||||||
MenuListView node = new MenuListView();
|
MenuListView node = new MenuListView();
|
||||||
node.setId(pojo.getId());
|
node.setId(pojo.getId());
|
||||||
node.setMenu(pojo.getMenuName());
|
node.setMenu(pojo.getMenuName());
|
||||||
|
node.setMenuDesc(pojo.getMenuDesc());
|
||||||
node.setListViews(new ArrayList<>());
|
node.setListViews(new ArrayList<>());
|
||||||
nodeMap.put(pojo.getId(), node);
|
nodeMap.put(pojo.getId(), node);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ModelMenuPermissionPojo pojo : permissionPojos) {
|
for (ModelMenuDictionaryPojo pojo : permissionPojos) {
|
||||||
String parentId = pojo.getParentId();
|
String parentId = pojo.getParentId();
|
||||||
MenuListView currentNode = nodeMap.get(pojo.getId());
|
MenuListView currentNode = nodeMap.get(pojo.getId());
|
||||||
|
|
||||||
@ -61,4 +62,16 @@ public class ModelMenuPermissionServiceImpl implements ModelMenuPermissionServic
|
|||||||
|
|
||||||
return views;
|
return views;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ModelMenuDictionaryPojo selectMenuById(String menuId) {
|
||||||
|
if (ObjectUtils.isEmpty(menuId)) {
|
||||||
|
throw new RuntimeException("根据ID查询菜单时ID未传入");
|
||||||
|
}
|
||||||
|
ModelMenuDictionaryPojo modelMenuDictionaryPojo = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("id", menuId)
|
||||||
|
.doQuery(ModelMenuDictionaryPojo.class).get(0);
|
||||||
|
return modelMenuDictionaryPojo;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,18 +4,21 @@ package com.xdap.self_development.service.impl;
|
|||||||
import com.xdap.self_development.config.BusinessDatabase;
|
import com.xdap.self_development.config.BusinessDatabase;
|
||||||
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
import com.xdap.self_development.controller.request.ModelRolesRequest;
|
||||||
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
import com.xdap.self_development.controller.request.RolePerJoinRequest;
|
||||||
import com.xdap.self_development.pojo.ModelMenuParameterPojo;
|
import com.xdap.self_development.controller.request.UserRoleBindingRequest;
|
||||||
import com.xdap.self_development.pojo.ModelRolePermissionPojo;
|
import com.xdap.self_development.enums.ParamPermissionEnum;
|
||||||
import com.xdap.self_development.pojo.ModelRolesPojo;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
import com.xdap.self_development.pojo.Parameter;
|
import com.xdap.self_development.pojo.*;
|
||||||
import com.xdap.self_development.pojo.dto.PageResultDTO;
|
import com.xdap.self_development.pojo.dto.PageResultDTO;
|
||||||
import com.xdap.self_development.pojo.view.MenuListView;
|
import com.xdap.self_development.pojo.view.MenuListView;
|
||||||
|
import com.xdap.self_development.pojo.view.MenuParamView;
|
||||||
|
import com.xdap.self_development.service.ModelMenuPermissionService;
|
||||||
import com.xdap.self_development.service.ModelRoleService;
|
import com.xdap.self_development.service.ModelRoleService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -27,6 +30,8 @@ public class ModelRoleServiceImpl implements ModelRoleService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
BusinessDatabase businessDatabase;
|
BusinessDatabase businessDatabase;
|
||||||
|
@Autowired
|
||||||
|
ModelMenuPermissionService modelMenuPermissionService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addRoles(ModelRolesRequest request) {
|
public void addRoles(ModelRolesRequest request) {
|
||||||
@ -34,6 +39,7 @@ public class ModelRoleServiceImpl implements ModelRoleService {
|
|||||||
BeanUtils.copyProperties(request, modelRolesPojo);
|
BeanUtils.copyProperties(request, modelRolesPojo);
|
||||||
modelRolesPojo.setCreatedBy(request.getUserId());
|
modelRolesPojo.setCreatedBy(request.getUserId());
|
||||||
modelRolesPojo.setCreationDate(new Date());
|
modelRolesPojo.setCreationDate(new Date());
|
||||||
|
modelRolesPojo.setIsEnabled(1);
|
||||||
businessDatabase.getBusinessDatabase()
|
businessDatabase.getBusinessDatabase()
|
||||||
.doInsert(modelRolesPojo);
|
.doInsert(modelRolesPojo);
|
||||||
}
|
}
|
||||||
@ -44,46 +50,191 @@ public class ModelRoleServiceImpl implements ModelRoleService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ModelRolesPojo> selectRoles(String userID) {
|
public List<ModelRolesPojo> selectRoles() {
|
||||||
List<ModelRolesPojo> modelRolesPojos = businessDatabase.getBusinessDatabase()
|
List<ModelRolesPojo> modelRolesPojos = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("is_enabled", 1)
|
||||||
.doQuery(ModelRolesPojo.class);
|
.doQuery(ModelRolesPojo.class);
|
||||||
return modelRolesPojos;
|
return modelRolesPojos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void insertPerForRole(List<RolePerJoinRequest> requests) {
|
@Transactional(rollbackFor = CommonException.class)
|
||||||
|
public void updatePerForRole(List<RolePerJoinRequest> requests) {
|
||||||
|
//将老权限置为未启用
|
||||||
|
List<String> roleids = requests.stream().map(x -> x.getRoleId()).distinct().collect(Collectors.toList());
|
||||||
|
for (String roleId : roleids) {
|
||||||
|
if (ObjectUtils.isNotEmpty(roleId)) {
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.update("is_enable", 0)
|
||||||
|
.eq("role_id", roleId)
|
||||||
|
.doUpdate(ModelRolePermissionPojo.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//增加新权限
|
||||||
for (RolePerJoinRequest request : requests) {
|
for (RolePerJoinRequest request : requests) {
|
||||||
|
|
||||||
String roleId = request.getRoleId();
|
String roleId = request.getRoleId();
|
||||||
String menuId = request.getMenuId();
|
String menuId = request.getMenuId();
|
||||||
String parameterId = request.getParameterId();
|
String parameterId = request.getParameterId();
|
||||||
Integer parameterPer = request.getParameterPer();
|
Integer parameterPer = request.getParameterPer();
|
||||||
if (ObjectUtils.isEmpty(parameterId)||ObjectUtils.isEmpty(roleId)||ObjectUtils.isEmpty(menuId)) {
|
if (ObjectUtils.isEmpty(parameterId) || ObjectUtils.isEmpty(parameterPer) || ObjectUtils.isEmpty(roleId) || ObjectUtils.isEmpty(menuId)) {
|
||||||
log.warn("参数不完整无法写入");
|
log.warn("参数不完整无法写入");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//查找参数 组装权限
|
List<ModelMenuParameterPojo> modelMenuParameterPojos = businessDatabase.getBusinessDatabase()
|
||||||
Parameter parameter = businessDatabase.getBusinessDatabase()
|
.eq("menu_id", menuId)
|
||||||
.eq("id", parameterId)
|
.eq("parameter_id", parameterId)
|
||||||
.doQuery(Parameter.class).get(0);
|
.eq("parameter_per", parameterPer)
|
||||||
String uuid = String.valueOf(UUID.randomUUID());
|
.doQuery(ModelMenuParameterPojo.class);
|
||||||
ModelMenuParameterPojo modelMenuParameterPojo = new ModelMenuParameterPojo();
|
|
||||||
modelMenuParameterPojo.setMenuId(menuId);
|
//如果参数权限没有配置
|
||||||
modelMenuParameterPojo.setSubsystem(parameter.getSubsystemName());
|
String id = String.valueOf(UUID.randomUUID());
|
||||||
modelMenuParameterPojo.setParameterId(parameterId);
|
if (ObjectUtils.isEmpty(modelMenuParameterPojos)) {
|
||||||
modelMenuParameterPojo.setParameterPer(parameterPer);
|
//查找参数 组装权限
|
||||||
modelMenuParameterPojo.setId(uuid);
|
Parameter parameter = businessDatabase.getBusinessDatabase()
|
||||||
modelMenuParameterPojo.setCreationDate(new Date());
|
.eq("id", parameterId)
|
||||||
businessDatabase.getBusinessDatabase()
|
.doQuery(Parameter.class).get(0);
|
||||||
.doInsert(modelMenuParameterPojo);
|
ModelMenuParameterPojo modelMenuParameterPojo = new ModelMenuParameterPojo();
|
||||||
|
modelMenuParameterPojo.setMenuId(menuId);
|
||||||
|
modelMenuParameterPojo.setSubsystem(parameter.getSubsystemName());
|
||||||
|
modelMenuParameterPojo.setParameterId(parameterId);
|
||||||
|
modelMenuParameterPojo.setParameterPer(parameterPer);
|
||||||
|
modelMenuParameterPojo.setId(id);
|
||||||
|
modelMenuParameterPojo.setCreatedBy(request.getUserId());
|
||||||
|
modelMenuParameterPojo.setCreationDate(new Date());
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.doInsert(modelMenuParameterPojo);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
id = modelMenuParameterPojos.get(0).getId();
|
||||||
|
}
|
||||||
|
|
||||||
//为角色分配权限
|
//为角色分配权限
|
||||||
ModelRolePermissionPojo pojo = new ModelRolePermissionPojo();
|
ModelRolePermissionPojo pojo = new ModelRolePermissionPojo();
|
||||||
pojo.setRoleId(roleId);
|
pojo.setRoleId(roleId);
|
||||||
pojo.setPerId(uuid);
|
pojo.setPerId(id);
|
||||||
|
pojo.setCreationDate(new Date());
|
||||||
|
pojo.setCreatedBy(request.getUserId());
|
||||||
businessDatabase.getBusinessDatabase()
|
businessDatabase.getBusinessDatabase()
|
||||||
.doInsert(pojo);
|
.doInsert(pojo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateRole(ModelRolesPojo modelRolesPojo, String userID) {
|
||||||
|
modelRolesPojo.setLastUpdatedBy(userID);
|
||||||
|
modelRolesPojo.setLastUpdateDate(new Date());
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.doUpdate(modelRolesPojo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MenuParamView> selectPersByUser(String userOrDepID) {
|
||||||
|
if (ObjectUtils.isEmpty(userOrDepID)) {
|
||||||
|
throw new RuntimeException("用户或部门ID为空");
|
||||||
|
}
|
||||||
|
List<ModelDepUserRolePojo> userOrDeps = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("user_or_dep", userOrDepID)
|
||||||
|
.doQuery(ModelDepUserRolePojo.class);
|
||||||
|
List<MenuParamView> paramViews = new ArrayList<>();
|
||||||
|
for (ModelDepUserRolePojo userOrDep : userOrDeps) {
|
||||||
|
List<MenuParamView> views = selectPersByRole(userOrDep.getRoleId());
|
||||||
|
paramViews.addAll(views);
|
||||||
|
|
||||||
|
}
|
||||||
|
return paramViews;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MenuParamView> selectPersByRole(String roleID) {
|
||||||
|
if (ObjectUtils.isEmpty(roleID)) {
|
||||||
|
throw new RuntimeException("角色为空");
|
||||||
|
}
|
||||||
|
ArrayList<MenuParamView> menuParamViews = new ArrayList<>();
|
||||||
|
List<ModelRolePermissionPojo> role = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("role_id", roleID)
|
||||||
|
.doQuery(ModelRolePermissionPojo.class);
|
||||||
|
List<String> perids = role.stream().map(x -> x.getPerId()).distinct().collect(Collectors.toList());
|
||||||
|
if (ObjectUtils.isEmpty(role)) {
|
||||||
|
throw new RuntimeException("该角色没有权限:"+roleID);
|
||||||
|
}
|
||||||
|
List<ModelMenuParameterPojo> menuParameters = businessDatabase.getBusinessDatabase()
|
||||||
|
.in("id", perids)
|
||||||
|
.doQuery(ModelMenuParameterPojo.class);
|
||||||
|
//获取权限
|
||||||
|
for (ModelMenuParameterPojo menuParameter : menuParameters) {
|
||||||
|
ModelMenuDictionaryPojo modelMenuDictionaryPojo = modelMenuPermissionService.selectMenuById(menuParameter.getMenuId());
|
||||||
|
String parameterId = menuParameter.getParameterId();
|
||||||
|
|
||||||
|
//查找参数 组装权限
|
||||||
|
Parameter parameter = businessDatabase.getBusinessDatabase()
|
||||||
|
.eq("id", parameterId)
|
||||||
|
.doQuery(Parameter.class).get(0);
|
||||||
|
|
||||||
|
ParamPermissionEnum byCode = ParamPermissionEnum.getByCode(menuParameter.getParameterPer());
|
||||||
|
if (byCode == null) {
|
||||||
|
throw new RuntimeException("权限异常");
|
||||||
|
}
|
||||||
|
MenuParamView menuParamView = new MenuParamView();
|
||||||
|
menuParamView.setId(menuParameter.getId());
|
||||||
|
menuParamView.setMenuPath(modelMenuDictionaryPojo.getMenuDesc());
|
||||||
|
menuParamView.setSubsystem(menuParameter.getSubsystem());
|
||||||
|
menuParamView.setParameterName(parameter.getParameterName());
|
||||||
|
menuParamView.setParameterPer(byCode.getDesc());
|
||||||
|
menuParamViews.add(menuParamView);
|
||||||
|
}
|
||||||
|
|
||||||
|
return menuParamViews;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void removeRoles(String roleID, String userID) {
|
||||||
|
if (ObjectUtils.isEmpty(roleID)) {
|
||||||
|
throw new RuntimeException("删除的角色为空");
|
||||||
|
}
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.update("is_enabled", 0)
|
||||||
|
.update("last_updated_by", userID)
|
||||||
|
.update("last_update_date", new Date())
|
||||||
|
.eq("id", roleID)
|
||||||
|
.doUpdate(ModelRolesPojo.class);
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.update("is_enable", 0)
|
||||||
|
.update("last_updated_by", userID)
|
||||||
|
.update("last_update_date", new Date())
|
||||||
|
.eq("role_id", roleID)
|
||||||
|
.doUpdate(ModelRolePermissionPojo.class);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void userRoleBinding(List<UserRoleBindingRequest> userRoleBindingRequest) {
|
||||||
|
//将角色绑定的老版本人员置为未启用
|
||||||
|
List<String> roleids = userRoleBindingRequest.stream().map(x -> x.getRoleId()).distinct().collect(Collectors.toList());
|
||||||
|
for (String roleId : roleids) {
|
||||||
|
if (ObjectUtils.isNotEmpty(roleId)) {
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.update("is_enable", 0)
|
||||||
|
.eq("role_id", roleId)
|
||||||
|
.doUpdate(ModelDepUserRolePojo.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (UserRoleBindingRequest roleBindingRequest : userRoleBindingRequest) {
|
||||||
|
String roleId = roleBindingRequest.getRoleId();
|
||||||
|
String userOrDeptId = roleBindingRequest.getUserOrDeptId();
|
||||||
|
Integer isDept = roleBindingRequest.getIsDept();
|
||||||
|
ModelDepUserRolePojo modelDepUserRolePojo = new ModelDepUserRolePojo();
|
||||||
|
modelDepUserRolePojo.setRoleId(roleId);
|
||||||
|
modelDepUserRolePojo.setUserOrDep(userOrDeptId);
|
||||||
|
if (isDept != 0 && isDept != 1) {
|
||||||
|
throw new RuntimeException("用户定位异常,非用户或部门");
|
||||||
|
}
|
||||||
|
modelDepUserRolePojo.setIsDep(isDept);
|
||||||
|
|
||||||
|
businessDatabase.getBusinessDatabase()
|
||||||
|
.doInsert(modelDepUserRolePojo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user