【添加】菜单 增/改/删 接口处理完毕

This commit is contained in:
zer0Black
2023-10-02 22:54:52 +08:00
parent 28e53c2aa4
commit 8835e61f4e
5 changed files with 160 additions and 2 deletions
@@ -8,6 +8,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MD5Util;
import com.jero.common.util.UUIDGenerator;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.system.entity.SysDepartPermission;
import com.jero.modules.system.entity.SysPermission;
@@ -232,6 +233,7 @@ public class SysPermissionController {
public Result<Object> add(@RequestBody SysPermission permission) {
try {
permission = PermissionDataUtil.intelligentProcessData(permission);
permission.setId(UUIDGenerator.generate());
sysPermissionService.addPermission(permission);
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
@@ -249,6 +251,7 @@ public class SysPermissionController {
public Result<Object> edit(@RequestBody SysPermission permission) {
try {
permission = PermissionDataUtil.intelligentProcessData(permission);
permission.setId(UUIDGenerator.generate());
sysPermissionService.editPermission(permission);
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
@@ -29,7 +29,7 @@ public class SysPermission implements Serializable {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@TableId(type = IdType.INPUT)
private String id;
/**
@@ -290,6 +290,13 @@ public class SyncIamController {
if (bpmcAcceptDto.getType().equals(DockingConstant.BPMC_TYPE_RESOURCE)){
ResourceDto resourceDto = objectMapper.readValue(bpmcAcceptDto.getEntity(), ResourceDto.class);
// 根据新增/编辑/删除调用不同的业务处理代码
if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){
bpmcResponseDto = this.syncIamService.resourceCreateService(resourceDto);
} else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_UPDATE)) {
bpmcResponseDto = this.syncIamService.resourceUpdateService(resourceDto);
} else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) {
bpmcResponseDto = this.syncIamService.resourceDeleteService(resourceDto);
}
}
if (bpmcAcceptDto.getType().equals(DockingConstant.BPMC_TYPE_USER_ROLE)){
@@ -302,7 +309,7 @@ public class SyncIamController {
// 根据新增/编辑/删除调用不同的业务处理代码
}
return BpmcResponseDto.success();
return bpmcResponseDto;
}
}
@@ -16,6 +16,7 @@ import com.jero.modules.docking.iam.annotation.IamProperty;
import com.jero.modules.docking.iam.dto.IamCommonAcceptDto;
import com.jero.modules.docking.iam.dto.IamOrgAcceptDto;
import com.jero.modules.docking.iam.dto.IamUserAcceptDto;
import com.jero.modules.docking.iam.dto.bpmc.ResourceDto;
import com.jero.modules.docking.iam.dto.bpmc.RoleDto;
import com.jero.modules.docking.iam.dto.response.*;
import com.jero.modules.docking.iam.exception.IamGlobalException;
@@ -24,9 +25,11 @@ import com.jero.modules.docking.iam.po.SendPoSystemPo;
import com.jero.modules.docking.iam.po.SendReturnsPo;
import com.jero.modules.docking.utils.DockingConstant;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.entity.SysPermission;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysPermissionService;
import com.jero.modules.system.service.ISysRoleService;
import com.jero.modules.system.service.ISysUserService;
import org.apache.commons.lang3.StringUtils;
@@ -65,6 +68,9 @@ public class SyncIamService {
@Resource
private ISysRoleService sysRoleService;
@Resource
private ISysPermissionService sysPermissionService;
/**
* 校验IAM调用时的账号密码是否正确
* 校验通过了正常走后续,不通过直接返回
@@ -627,6 +633,10 @@ public class SyncIamService {
SysRole sysRole = sysRoleService.getById(roleDto.getId());
if (sysRole == null){
return BpmcResponseDto.error("未找到对应id角色,无法更新");
}
if (StrUtil.isNotEmpty(roleDto.getName())){
sysRole.setRoleName(roleDto.getName());
}
@@ -672,4 +682,132 @@ public class SyncIamService {
return BpmcResponseDto.success();
}
/**
* 菜单创建
*/
public BpmcResponseDto resourceCreateService(ResourceDto resourceDto){
try {
SysPermission sysPermission = new SysPermission();
sysPermission.setId(resourceDto.getId());
sysPermission.setParentId(resourceDto.getParentId());
sysPermission.setName(resourceDto.getName());
sysPermission.setPermsType("1"); // 1显示2禁用,固定为1
sysPermission.setIcon("copy"); //IAM 没有icon字段,设定为固定值
sysPermission.setPerms(resourceDto.getCode());
sysPermission.setComponent(resourceDto.getCode()); // 组件的路径
sysPermission.setUrl(resourceDto.getUrl()); // 地址栏显示的路径
sysPermission.setSortNo(Double.valueOf(resourceDto.getSort()));
// sysPermission的 menuType 0:一级菜单;1:子菜单 ;2:按钮权限)
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getType()){
if (StrUtil.isEmpty(resourceDto.getParentId())){
sysPermission.setMenuType(0);
} else {
sysPermission.setMenuType(1);
}
} else {
sysPermission.setMenuType(2);
}
sysPermission.setCreateTime(new Date());
sysPermission.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
sysPermission.setUpdateTime(resourceDto.getModifyTime());
sysPermission.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
sysPermission.setDescription(resourceDto.getDescription());
// 以下为IAM没有的属性,设置默认值
sysPermission.setRoute(true); // 是否路由,设固定值
sysPermission.setKeepAlive(false); // 是否缓存,设固定值
sysPermission.setDelFlag(CommonConstant.DEL_FLAG_0);
sysPermission.setRuleFlag(0); // 是否配置菜单的数据权限 1是0否 默认0
sysPermission.setHidden(false); // 是否配置菜单的数据权限 1是0否 默认0
sysPermission.setStatus("1"); // 按钮权限状态(0无效1有效)
sysPermission.setAlwaysShow(false);
sysPermission.setInternalOrExternal(false); // 默认为内部打开(即跳转页面)
sysPermissionService.addPermission(sysPermission);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
/**
* 菜单更新
*/
public BpmcResponseDto resourceUpdateService(ResourceDto resourceDto){
try {
if (StrUtil.isEmpty(resourceDto.getId())){
return BpmcResponseDto.error("菜单id为空,无法更新");
}
SysPermission sysPermission = sysPermissionService.getById(resourceDto.getId());
if (sysPermission == null){
return BpmcResponseDto.error("未找到对应id功能权限,无法更新");
}
if (StrUtil.isNotEmpty(resourceDto.getParentId())){
sysPermission.setParentId(resourceDto.getParentId());
}
if (StrUtil.isNotEmpty(resourceDto.getName())){
sysPermission.setName(resourceDto.getName());
}
if (StrUtil.isNotEmpty(resourceDto.getCode())){
sysPermission.setPerms(resourceDto.getCode());
sysPermission.setComponent(resourceDto.getCode()); // 组件的路径
}
if (StrUtil.isNotEmpty(resourceDto.getUrl())){
sysPermission.setUrl(resourceDto.getUrl()); // 地址栏显示的路径
}
sysPermission.setSortNo(Double.valueOf(resourceDto.getSort()));
// sysPermission的 menuType 0:一级菜单;1:子菜单 ;2:按钮权限)
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getType()){
if (StrUtil.isEmpty(resourceDto.getParentId())){
sysPermission.setMenuType(0);
} else {
sysPermission.setMenuType(1);
}
} else {
sysPermission.setMenuType(2);
}
sysPermission.setUpdateTime(resourceDto.getModifyTime());
sysPermission.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
sysPermission.setDescription(resourceDto.getDescription());
sysPermissionService.editPermission(sysPermission);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
/**
* 菜单删除(真实删除)
*/
public BpmcResponseDto resourceDeleteService(ResourceDto resourceDto){
try {
if (StrUtil.isEmpty(resourceDto.getId())){
return BpmcResponseDto.error("菜单id为空,无法删除");
}
sysPermissionService.deletePermission(resourceDto.getId());
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
}
@@ -69,4 +69,14 @@ public class DockingConstant {
*/
public static String BPMC_ACTION_DELETE = "delete";
/**
* 竹云统一认证平台,功能权限(资源类型):菜单
*/
public static int BPMC_RESOURCE_TYPE_MENU = 0;
/**
* 竹云统一认证平台,功能权限(资源类型):按钮
*/
public static int BPMC_RESOURCE_TYPE_BUTTON = 1;
}