权限开发3

This commit is contained in:
ys.git 2025-12-08 17:01:54 +08:00
parent 98e0d131b6
commit 018560cf1e
11 changed files with 348 additions and 41 deletions

View File

@ -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(){

View File

@ -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;
} }

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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;
} }

View File

@ -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;
}

View File

@ -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

View File

@ -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);
} }

View File

@ -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);
} }

View File

@ -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;
}
} }

View File

@ -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);
}
}
} }