🔨 SysPermission 重构为 SysMenu,减少了大部分的配置属性,转交由前端处理
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hccake.ballcat.admin.constants.SysPermissionConst;
|
||||
import com.hccake.ballcat.admin.modules.sys.converter.SysMenuConverter;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysMenuQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysMenuRouterVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysMenuService;
|
||||
import com.hccake.ballcat.admin.oauth.SysUserDetails;
|
||||
import com.hccake.ballcat.admin.oauth.domain.UserResources;
|
||||
import com.hccake.ballcat.admin.oauth.util.SecurityUtils;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.model.result.BaseResultCode;
|
||||
import com.hccake.ballcat.common.model.result.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 菜单权限
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/sys/sysmenu")
|
||||
@Api(value = "sysmenu", tags = "菜单权限管理")
|
||||
public class SysMenuController {
|
||||
|
||||
private final SysMenuService sysMenuService;
|
||||
|
||||
/**
|
||||
* 返回当前用户的路由集合
|
||||
* @return 当前用户的路由
|
||||
*/
|
||||
@ApiOperation(value = "动态路由", notes = "动态路由")
|
||||
@GetMapping("/router")
|
||||
public R<List<SysMenuRouterVO>> getUserPermission() {
|
||||
|
||||
// 获取角色Code
|
||||
SysUserDetails sysUserDetails = SecurityUtils.getSysUserDetails();
|
||||
UserResources userResources = sysUserDetails.getUserResources();
|
||||
Collection<String> roleCodes = userResources.getRoles();
|
||||
if (CollectionUtil.isEmpty(roleCodes)) {
|
||||
return R.ok(new ArrayList<>());
|
||||
}
|
||||
|
||||
// 获取符合条件的权限
|
||||
Set<SysMenu> all = new HashSet<>();
|
||||
roleCodes.forEach(roleCode -> all.addAll(sysMenuService.listByRoleCode(roleCode)));
|
||||
|
||||
// 筛选出菜单
|
||||
List<SysMenuRouterVO> menuVOList = all.stream()
|
||||
.filter(menuVo -> SysPermissionConst.Type.BUTTON.getValue() != menuVo.getType())
|
||||
.sorted(Comparator.comparingInt(SysMenu::getSort)).map(SysMenuConverter.INSTANCE::poToRouterVo)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return R.ok(menuVOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询菜单列表
|
||||
* @param sysMenuQO 菜单权限查询对象
|
||||
* @return R 通用返回体
|
||||
*/
|
||||
@ApiOperation(value = "查询菜单列表", notes = "查询菜单列表")
|
||||
@GetMapping("/list")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysmenu:read')")
|
||||
public R<List<SysMenu>> getSysMenuPage(SysMenuQO sysMenuQO) {
|
||||
return R.ok(sysMenuService.listOrderBySort(sysMenuQO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增菜单权限
|
||||
* @param sysMenu 菜单权限
|
||||
* @return R 通用返回体
|
||||
*/
|
||||
@ApiOperation(value = "新增菜单权限", notes = "新增菜单权限")
|
||||
@CreateOperationLogging(msg = "新增菜单权限")
|
||||
@PostMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:sysmenu:add')")
|
||||
public R<String> save(@RequestBody SysMenu sysMenu) {
|
||||
return sysMenuService.save(sysMenu) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "新增菜单权限失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单权限
|
||||
* @param sysMenu 菜单权限
|
||||
* @return R 通用返回体
|
||||
*/
|
||||
@ApiOperation(value = "修改菜单权限", notes = "修改菜单权限")
|
||||
@UpdateOperationLogging(msg = "修改菜单权限")
|
||||
@PutMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:sysmenu:edit')")
|
||||
public R<String> updateById(@RequestBody SysMenu sysMenu) {
|
||||
return sysMenuService.updateById(sysMenu) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改菜单权限失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除菜单权限
|
||||
* @param id id
|
||||
* @return R 通用返回体
|
||||
*/
|
||||
@ApiOperation(value = "通过id删除菜单权限", notes = "通过id删除菜单权限")
|
||||
@DeleteOperationLogging(msg = "通过id删除菜单权限")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysmenu:del')")
|
||||
public R<String> removeById(@PathVariable Integer id) {
|
||||
return sysMenuService.removeById(id) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "通过id删除菜单权限失败");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,118 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hccake.ballcat.admin.constants.SysPermissionConst;
|
||||
import com.hccake.ballcat.admin.modules.sys.converter.SysPermissionConverter;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RouterVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService;
|
||||
import com.hccake.ballcat.admin.oauth.SysUserDetails;
|
||||
import com.hccake.ballcat.admin.oauth.domain.UserResources;
|
||||
import com.hccake.ballcat.admin.oauth.util.SecurityUtils;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
import com.hccake.ballcat.common.model.result.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author hccake
|
||||
* @date 2019/09/17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/syspermission")
|
||||
@Api(value = "syspermission", tags = "权限管理模块")
|
||||
@RequiredArgsConstructor
|
||||
public class SysPermissionController {
|
||||
|
||||
private final SysPermissionService sysPermissionService;
|
||||
|
||||
/**
|
||||
* 返回当前用户的路由集合
|
||||
* @return 当前用户的路由
|
||||
*/
|
||||
@ApiOperation(value = "动态路由", notes = "动态路由")
|
||||
@GetMapping("/router")
|
||||
public R<List<RouterVO>> getUserPermission() {
|
||||
|
||||
// 获取角色Code
|
||||
SysUserDetails sysUserDetails = SecurityUtils.getSysUserDetails();
|
||||
UserResources userResources = sysUserDetails.getUserResources();
|
||||
Collection<String> roleCodes = userResources.getRoles();
|
||||
if (CollectionUtil.isEmpty(roleCodes)) {
|
||||
return R.ok(new ArrayList<>());
|
||||
}
|
||||
|
||||
// 获取符合条件的权限
|
||||
Set<PermissionVO> all = new HashSet<>();
|
||||
roleCodes.forEach(roleCode -> all.addAll(sysPermissionService.listVOByRoleCode(roleCode)));
|
||||
|
||||
// 筛选出菜单
|
||||
List<RouterVO> routerVOList = all.stream()
|
||||
.filter(menuVo -> SysPermissionConst.Type.MENU.getValue() == menuVo.getType()
|
||||
|| SysPermissionConst.Type.DIRECTORY.getValue() == menuVo.getType())
|
||||
.sorted(Comparator.comparingInt(PermissionVO::getSort)).map(SysPermissionConverter.INSTANCE::toRouter)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return R.ok(routerVOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 所有的权限集合
|
||||
*/
|
||||
@GetMapping(value = "/list")
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:read')")
|
||||
public R<List<SysPermission>> getTree() {
|
||||
return R.ok(sysPermissionService.listOrderBySort());
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过ID查询权限的详细信息
|
||||
* @param id 权限ID
|
||||
* @return 权限详细信息
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:read')")
|
||||
public R<SysPermission> getById(@PathVariable Integer id) {
|
||||
return R.ok(sysPermissionService.getById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "新增权限", notes = "新增权限")
|
||||
@CreateOperationLogging(msg = "新增权限")
|
||||
@PostMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:add')")
|
||||
public R<Boolean> save(@Valid @RequestBody SysPermission sysMenu) {
|
||||
return R.ok(sysPermissionService.save(sysMenu));
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新权限
|
||||
* @param sysPermission 权限
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "修改权限", notes = "修改权限")
|
||||
@UpdateOperationLogging(msg = "修改权限")
|
||||
@PutMapping
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:edit')")
|
||||
public R<Boolean> update(@Valid @RequestBody SysPermission sysPermission) {
|
||||
return R.ok(sysPermissionService.updateById(sysPermission));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "通过id删除权限", notes = "通过id删除权限")
|
||||
@DeleteOperationLogging(msg = "通过id删除权限")
|
||||
@DeleteMapping("/{id}")
|
||||
@PreAuthorize("@per.hasPermission('sys:syspermission:del')")
|
||||
public R<Boolean> removeById(@PathVariable Integer id) {
|
||||
return R.ok(sysPermissionService.removeById(id));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,14 +3,14 @@ package com.hccake.ballcat.admin.modules.sys.controller;
|
||||
import com.hccake.ballcat.admin.constants.SysRoleConst;
|
||||
import com.hccake.ballcat.admin.modules.sys.converter.SysRoleConverter;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.dto.SysRoleUpdateDTO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.RoleBindUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysRoleQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RoleBindUserVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysRolePageVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysMenuService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleMenuService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysUserRoleService;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
@@ -42,11 +42,11 @@ public class SysRoleController {
|
||||
|
||||
private final SysRoleService sysRoleService;
|
||||
|
||||
private final SysPermissionService sysPermissionService;
|
||||
private final SysMenuService sysMenuService;
|
||||
|
||||
private final SysUserRoleService sysUserRoleService;
|
||||
|
||||
private final SysRolePermissionService sysRolePermissionService;
|
||||
private final SysRoleMenuService sysRoleMenuService;
|
||||
|
||||
/**
|
||||
* 分页查询角色信息
|
||||
@@ -134,7 +134,7 @@ public class SysRoleController {
|
||||
@UpdateOperationLogging(msg = "更新角色权限")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:grant')")
|
||||
public R<Boolean> savePermissionIds(@PathVariable String roleCode, @RequestBody Integer[] permissionIds) {
|
||||
return R.ok(sysRolePermissionService.saveRolePermissions(roleCode, permissionIds));
|
||||
return R.ok(sysRoleMenuService.saveRoleMenus(roleCode, permissionIds));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,8 +144,9 @@ public class SysRoleController {
|
||||
*/
|
||||
@GetMapping("/permission/code/{roleCode}")
|
||||
public R<List<Integer>> getPermissionIds(@PathVariable String roleCode) {
|
||||
return R.ok(sysPermissionService.listVOByRoleCode(roleCode).stream().map(PermissionVO::getId)
|
||||
.collect(Collectors.toList()));
|
||||
List<SysMenu> sysMenus = sysMenuService.listByRoleCode(roleCode);
|
||||
List<Integer> menuIds = sysMenus.stream().map(SysMenu::getId).collect(Collectors.toList());
|
||||
return R.ok(menuIds);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.converter;
|
||||
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysMenuRouterVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysMenuPageVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* 菜单权限模型转换器
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysMenuConverter {
|
||||
|
||||
SysMenuConverter INSTANCE = Mappers.getMapper(SysMenuConverter.class);
|
||||
|
||||
/**
|
||||
* PO 转 PageVO
|
||||
* @param sysMenu 菜单权限实体
|
||||
* @return SysMenuPageVO 菜单权限PageVO
|
||||
*/
|
||||
SysMenuPageVO poToPageVo(SysMenu sysMenu);
|
||||
|
||||
/**
|
||||
* PO 转 VO
|
||||
* @param sysMenu 菜单权限实体
|
||||
* @return SysMenuVO
|
||||
*/
|
||||
SysMenuRouterVO poToRouterVo(SysMenu sysMenu);
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.converter;
|
||||
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RouterVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* @author Hccake
|
||||
* @version 1.0
|
||||
* @date 2019/9/17 15:26
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysPermissionConverter {
|
||||
|
||||
SysPermissionConverter INSTANCE = Mappers.getMapper(SysPermissionConverter.class);
|
||||
|
||||
/**
|
||||
* 转换permissionVO为Router
|
||||
* @param permissionVO 权限VO
|
||||
* @return Router 路由对象
|
||||
*/
|
||||
RouterVO toRouter(PermissionVO permissionVO);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysMenuQO;
|
||||
import com.hccake.extend.mybatis.plus.conditions.query.LambdaQueryWrapperX;
|
||||
import com.hccake.extend.mybatis.plus.mapper.ExtendMapper;
|
||||
import com.hccake.extend.mybatis.plus.toolkit.WrappersX;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单权限
|
||||
*
|
||||
* @author hccake 2021-04-01 22:08:13
|
||||
*/
|
||||
public interface SysMenuMapper extends ExtendMapper<SysMenu> {
|
||||
|
||||
/**
|
||||
* 查询权限集合,并按sort排序(升序)
|
||||
* @param sysMenuQO 查询条件
|
||||
* @return List<SysMenu>
|
||||
*/
|
||||
default List<SysMenu> listOrderBySort(SysMenuQO sysMenuQO) {
|
||||
LambdaQueryWrapperX<SysMenu> wrapper = WrappersX.lambdaQueryX(SysMenu.class)
|
||||
.likeIfPresent(SysMenu::getId, sysMenuQO.getId()).likeIfPresent(SysMenu::getTitle, sysMenuQO.getTitle())
|
||||
.likeIfPresent(SysMenu::getPermission, sysMenuQO.getPermission())
|
||||
.likeIfPresent(SysMenu::getPath, sysMenuQO.getPath());
|
||||
wrapper.orderByAsc(SysMenu::getSort);
|
||||
return this.selectList(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色标识查询对应的菜单
|
||||
* @param roleCode 角色标识
|
||||
* @return List<SysMenu>
|
||||
*/
|
||||
List<SysMenu> listByRoleCode(String roleCode);
|
||||
|
||||
/**
|
||||
* 查询指定权限的下级权限总数
|
||||
* @param id 权限ID
|
||||
* @return 下级权限总数
|
||||
*/
|
||||
default Integer countSubMenu(Serializable id) {
|
||||
return this.selectCount(Wrappers.<SysMenu>query().lambda().eq(SysMenu::getParentId, id));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.extend.mybatis.plus.mapper.ExtendMapper;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单权限表 Mapper 接口
|
||||
*
|
||||
* @author hccake
|
||||
*/
|
||||
public interface SysPermissionMapper extends ExtendMapper<SysPermission> {
|
||||
|
||||
/**
|
||||
* 查询指定权限的下级权限总数
|
||||
* @param id 权限ID
|
||||
* @return 下级权限总数
|
||||
*/
|
||||
default Integer countSubPermission(Serializable id) {
|
||||
return this.selectCount(Wrappers.<SysPermission>query().lambda().eq(SysPermission::getParentId, id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询权限集合,并按sort排序(升序)
|
||||
* @return List<SysPermission>
|
||||
*/
|
||||
default List<SysPermission> listOrderBySort() {
|
||||
return this.selectList(Wrappers.<SysPermission>lambdaQuery().orderByAsc(SysPermission::getSort));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过角色ID查询权限
|
||||
* @param roleCode 角色ID
|
||||
* @return 指定角色拥有的权限列表
|
||||
*/
|
||||
List<PermissionVO> listVOByRoleCode(String roleCode);
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRoleMenu;
|
||||
import com.hccake.extend.mybatis.plus.mapper.ExtendMapper;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -14,14 +14,14 @@ import java.io.Serializable;
|
||||
* @author hccake
|
||||
* @since 2017-10-29
|
||||
*/
|
||||
public interface SysRolePermissionMapper extends ExtendMapper<SysRolePermission> {
|
||||
public interface SysRoleMenuMapper extends ExtendMapper<SysRoleMenu> {
|
||||
|
||||
/**
|
||||
* 根据权限ID删除角色权限关联关系
|
||||
* @param permissionId 权限ID
|
||||
* @param menuId 权限ID
|
||||
*/
|
||||
default void deleteByPermissionId(Serializable permissionId) {
|
||||
this.delete(Wrappers.<SysRolePermission>query().lambda().eq(SysRolePermission::getPermissionId, permissionId));
|
||||
default void deleteByMenuId(Serializable menuId) {
|
||||
this.delete(Wrappers.<SysRoleMenu>query().lambda().eq(SysRoleMenu::getMenuId, menuId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,7 @@ public interface SysRolePermissionMapper extends ExtendMapper<SysRolePermission>
|
||||
* @param roleCode 角色标识
|
||||
*/
|
||||
default void deleteByRoleCode(String roleCode) {
|
||||
this.delete(Wrappers.<SysRolePermission>query().lambda().eq(SysRolePermission::getRoleCode, roleCode));
|
||||
this.delete(Wrappers.<SysRoleMenu>query().lambda().eq(SysRoleMenu::getRoleCode, roleCode));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 菜单权限
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@Data
|
||||
@TableName("sys_menu")
|
||||
@ApiModel(value = "菜单权限")
|
||||
public class SysMenu {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@TableId
|
||||
@ApiModelProperty(value = "菜单ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 父级ID
|
||||
*/
|
||||
@ApiModelProperty(value = "父级ID")
|
||||
private Integer parentId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 授权标识
|
||||
*/
|
||||
@ApiModelProperty(value = "授权标识")
|
||||
private String permission;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
@ApiModelProperty(value = "路由地址")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 打开方式 (1组件 2内链 3外链)
|
||||
*/
|
||||
@ApiModelProperty(value = "打开方式 (1组件 2内链 3外链)")
|
||||
private Integer targetType;
|
||||
|
||||
/**
|
||||
* 定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)
|
||||
*/
|
||||
@ApiModelProperty(value = "定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)")
|
||||
private String uri;
|
||||
|
||||
/**
|
||||
* 显示排序
|
||||
*/
|
||||
@ApiModelProperty(value = "显示排序")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 组件缓存:0-开启,1-关闭
|
||||
*/
|
||||
@ApiModelProperty(value = "组件缓存:0-开启,1-关闭")
|
||||
private Integer keepAlive;
|
||||
|
||||
/**
|
||||
* 隐藏菜单: 0-否,1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "隐藏菜单: 0-否,1-是")
|
||||
private Integer hidden;
|
||||
|
||||
/**
|
||||
* 菜单类型 (0目录,1菜单,2按钮)
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单类型 (0目录,1菜单,2按钮)")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
@ApiModelProperty(value = "备注信息")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 逻辑删除标识,未删除为 0,已删除为删除时间
|
||||
*/
|
||||
@TableLogic
|
||||
@ApiModelProperty(value = "逻辑删除标识,未删除为 0,已删除为删除时间")
|
||||
private Long deleted;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -1,130 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 菜单
|
||||
*
|
||||
* @author ballcat code generator
|
||||
* @date 2019-10-14 17:42:23
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "菜单")
|
||||
@TableName("sys_permission")
|
||||
public class SysPermission {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@TableId(type = IdType.INPUT)
|
||||
@ApiModelProperty(value = "菜单ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 菜单标题
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 菜单权限标识
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单权限标识")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 路由URL
|
||||
*/
|
||||
@ApiModelProperty(value = "路由URL")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 路由名称
|
||||
*/
|
||||
@ApiModelProperty(value = "路由名称")
|
||||
private String routerName;
|
||||
|
||||
/**
|
||||
* component地址
|
||||
*/
|
||||
@ApiModelProperty(value = "component地址")
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 重定向地址
|
||||
*/
|
||||
@ApiModelProperty(value = "重定向地址")
|
||||
private String redirect;
|
||||
|
||||
/**
|
||||
* 链接跳转目标
|
||||
*/
|
||||
@ApiModelProperty(value = "链接跳转目标")
|
||||
private String target;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "父菜单ID")
|
||||
private Integer parentId;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@ApiModelProperty(value = "图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 排序值
|
||||
*/
|
||||
@ApiModelProperty(value = "排序值")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 0-开启,1- 关闭
|
||||
*/
|
||||
@ApiModelProperty(value = "0-开启,1- 关闭")
|
||||
private Integer keepAlive;
|
||||
|
||||
/**
|
||||
* 是否隐藏路由: 0否,1是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否隐藏路由: 0否,1是")
|
||||
private Integer hidden;
|
||||
|
||||
/**
|
||||
* 菜单类型 (0菜单 1按钮)
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单类型 (0菜单 1按钮)")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 逻辑删除标识,已删除:0,未删除:删除时间戳
|
||||
*/
|
||||
@TableLogic
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@ApiModelProperty(value = "逻辑删除标识,已删除:0,未删除:删除时间戳")
|
||||
private Long deleted;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -14,18 +14,18 @@ import lombok.Data;
|
||||
* @date 2019-10-14 17:42:23
|
||||
*/
|
||||
@Data
|
||||
@TableName("sys_role_permission")
|
||||
@TableName("sys_role_menu")
|
||||
@ApiModel(value = "角色菜单")
|
||||
public class SysRolePermission {
|
||||
public class SysRoleMenu {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public SysRolePermission() {
|
||||
public SysRoleMenu() {
|
||||
}
|
||||
|
||||
public SysRolePermission(String roleCode, Integer permissionId) {
|
||||
public SysRoleMenu(String roleCode, Integer menuId) {
|
||||
this.roleCode = roleCode;
|
||||
this.permissionId = permissionId;
|
||||
this.menuId = menuId;
|
||||
}
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
@@ -41,6 +41,6 @@ public class SysRolePermission {
|
||||
* 权限ID
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单id")
|
||||
private Integer permissionId;
|
||||
private Integer menuId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.qo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 菜单权限 查询对象
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "菜单权限查询对象")
|
||||
public class SysMenuQO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 授权标识
|
||||
*/
|
||||
@ApiModelProperty(value = "授权标识")
|
||||
private String permission;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
@ApiModelProperty(value = "路由地址")
|
||||
private String path;
|
||||
|
||||
}
|
||||
@@ -1,133 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author Hccake
|
||||
* @version 1.0
|
||||
* @date 2019/10/15 14:19
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "权限VO")
|
||||
public class PermissionVO {
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 菜单标题
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 菜单权限标识
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单权限标识")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 路由URL
|
||||
*/
|
||||
@ApiModelProperty(value = "路由URL")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 路由名称
|
||||
*/
|
||||
@ApiModelProperty(value = "路由名称")
|
||||
private String routerName;
|
||||
|
||||
/**
|
||||
* component地址
|
||||
*/
|
||||
@ApiModelProperty(value = "component地址")
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 重定向地址
|
||||
*/
|
||||
@ApiModelProperty(value = "重定向地址")
|
||||
private String redirect;
|
||||
|
||||
/**
|
||||
* 链接跳转目标
|
||||
*/
|
||||
@ApiModelProperty(value = "链接跳转目标")
|
||||
private String target;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "父菜单ID")
|
||||
private Integer parentId;
|
||||
|
||||
/**
|
||||
* 图标
|
||||
*/
|
||||
@ApiModelProperty(value = "图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 排序值
|
||||
*/
|
||||
@ApiModelProperty(value = "排序值")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 0-开启,1- 关闭
|
||||
*/
|
||||
@ApiModelProperty(value = "0-开启,1- 关闭")
|
||||
private Integer keepAlive;
|
||||
|
||||
/**
|
||||
* 是否隐藏路由: 0否,1是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否隐藏路由: 0否,1是")
|
||||
private Integer hidden;
|
||||
|
||||
/**
|
||||
* 菜单类型 (0菜单 1按钮)
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单类型 (0菜单 1按钮)")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return id.hashCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* permissionId 相同则相同
|
||||
* @param obj
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof PermissionVO) {
|
||||
Integer permissionId = ((PermissionVO) obj).getId();
|
||||
return id.equals(permissionId);
|
||||
}
|
||||
return super.equals(obj);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 前端路由视图对象
|
||||
*
|
||||
* @author hccake
|
||||
* @date 2021-03-22
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "前端路由视图对象")
|
||||
public class RouterVO {
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单id")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "父菜单id")
|
||||
private Integer parentId;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
@ApiModelProperty(value = "图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 前端路由标识路径
|
||||
*/
|
||||
@ApiModelProperty(value = "前端路由名称")
|
||||
private String routerName;
|
||||
|
||||
/**
|
||||
* 前端路由标识路径
|
||||
*/
|
||||
@ApiModelProperty(value = "前端路由标识路径")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 菜单权限标识
|
||||
*/
|
||||
@ApiModelProperty(value = "前端路由组件")
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 重定向地址
|
||||
*/
|
||||
@ApiModelProperty(value = "重定向地址")
|
||||
private String redirect;
|
||||
|
||||
/**
|
||||
* 链接跳转目标
|
||||
*/
|
||||
@ApiModelProperty(value = "链接跳转目标")
|
||||
private String target;
|
||||
|
||||
/**
|
||||
* 路由缓冲
|
||||
*/
|
||||
@ApiModelProperty(value = "开启路由缓冲")
|
||||
private Integer keepAlive;
|
||||
|
||||
/**
|
||||
* 是否隐藏路由: 0否,1是
|
||||
*/
|
||||
@ApiModelProperty(value = "是否隐藏路由: 0否,1是")
|
||||
private Integer hidden;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 菜单权限分页视图对象
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "菜单权限分页视图对象")
|
||||
public class SysMenuPageVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 父级ID
|
||||
*/
|
||||
@ApiModelProperty(value = "父级ID")
|
||||
private Integer parentId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 授权标识
|
||||
*/
|
||||
@ApiModelProperty(value = "授权标识")
|
||||
private String permission;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
@ApiModelProperty(value = "路由地址")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 打开方式 (1组件 2内链 3外链)
|
||||
*/
|
||||
@ApiModelProperty(value = "打开方式 (1组件 2内链 3外链)")
|
||||
private Integer targetType;
|
||||
|
||||
/**
|
||||
* 定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)
|
||||
*/
|
||||
@ApiModelProperty(value = "定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)")
|
||||
private String uri;
|
||||
|
||||
/**
|
||||
* 显示排序
|
||||
*/
|
||||
@ApiModelProperty(value = "显示排序")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 组件缓存:0-开启,1-关闭
|
||||
*/
|
||||
@ApiModelProperty(value = "组件缓存:0-开启,1-关闭")
|
||||
private Integer keepAlive;
|
||||
|
||||
/**
|
||||
* 隐藏菜单: 0-否,1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "隐藏菜单: 0-否,1-是")
|
||||
private Integer hidden;
|
||||
|
||||
/**
|
||||
* 菜单类型 (0目录,1菜单,2按钮)
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单类型 (0目录,1菜单,2按钮)")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
@ApiModelProperty(value = "备注信息")
|
||||
private String remarks;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 菜单权限视图对象
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "菜单权限视图对象")
|
||||
public class SysMenuRouterVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 父级ID
|
||||
*/
|
||||
@ApiModelProperty(value = "父级ID")
|
||||
private Integer parentId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单名称")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单图标")
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
@ApiModelProperty(value = "路由地址")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 打开方式 (1组件 2内链 3外链)
|
||||
*/
|
||||
@ApiModelProperty(value = "打开方式 (1组件 2内链 3外链)")
|
||||
private Integer targetType;
|
||||
|
||||
/**
|
||||
* 定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)
|
||||
*/
|
||||
@ApiModelProperty(value = "定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)")
|
||||
private String uri;
|
||||
|
||||
/**
|
||||
* 组件缓存:0-开启,1-关闭
|
||||
*/
|
||||
@ApiModelProperty(value = "组件缓存:0-开启,1-关闭")
|
||||
private Integer keepAlive;
|
||||
|
||||
/**
|
||||
* 隐藏菜单: 0-否,1-是
|
||||
*/
|
||||
@ApiModelProperty(value = "隐藏菜单: 0-否,1-是")
|
||||
private Integer hidden;
|
||||
|
||||
/**
|
||||
* 菜单类型 (0目录,1菜单,2按钮)
|
||||
*/
|
||||
@ApiModelProperty(value = "菜单类型 (0目录,1菜单,2按钮)")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
@ApiModelProperty(value = "备注信息")
|
||||
private String remarks;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service;
|
||||
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysMenuQO;
|
||||
import com.hccake.extend.mybatis.plus.service.ExtendService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单权限
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
public interface SysMenuService extends ExtendService<SysMenu> {
|
||||
|
||||
/**
|
||||
* 查询权限集合,并按sort排序(升序)
|
||||
* @param sysMenuQO 查询条件
|
||||
* @return List<SysMenu>
|
||||
*/
|
||||
List<SysMenu> listOrderBySort(SysMenuQO sysMenuQO);
|
||||
|
||||
/**
|
||||
* 根据角色标识查询对应的菜单
|
||||
* @param roleCode 角色标识
|
||||
* @return List<SysMenu>
|
||||
*/
|
||||
List<SysMenu> listByRoleCode(String roleCode);
|
||||
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service;
|
||||
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.extend.mybatis.plus.service.ExtendService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 菜单权限表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hccake
|
||||
* @since 2017-10-29
|
||||
*/
|
||||
public interface SysPermissionService extends ExtendService<SysPermission> {
|
||||
|
||||
/**
|
||||
* 通过角色编号查询URL 权限
|
||||
* @param roleCode 角色Code
|
||||
* @return 菜单列表
|
||||
*/
|
||||
List<PermissionVO> listVOByRoleCode(String roleCode);
|
||||
|
||||
/**
|
||||
* 查询权限集合,并按sort排序(升序)
|
||||
* @return List<SysPermission>
|
||||
*/
|
||||
List<SysPermission> listOrderBySort();
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service;
|
||||
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRoleMenu;
|
||||
import com.hccake.extend.mybatis.plus.service.ExtendService;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -13,21 +13,21 @@ import java.io.Serializable;
|
||||
* @author hccake
|
||||
* @since 2017-10-29
|
||||
*/
|
||||
public interface SysRolePermissionService extends ExtendService<SysRolePermission> {
|
||||
public interface SysRoleMenuService extends ExtendService<SysRoleMenu> {
|
||||
|
||||
/**
|
||||
* 更新角色菜单
|
||||
* @param roleCode 角色
|
||||
* @param permissionIds 权限ID数组
|
||||
* @param menuIds 权限ID数组
|
||||
* @return 更新角色权限关联关系是否成功
|
||||
*/
|
||||
Boolean saveRolePermissions(String roleCode, Integer[] permissionIds);
|
||||
Boolean saveRoleMenus(String roleCode, Integer[] menuIds);
|
||||
|
||||
/**
|
||||
* 根据权限ID删除角色权限关联数据
|
||||
* @param permissionId 权限ID
|
||||
* @param menuId 权限ID
|
||||
*/
|
||||
void deleteByPermissionId(Serializable permissionId);
|
||||
void deleteByMenuId(Serializable menuId);
|
||||
|
||||
/**
|
||||
* 根据角色标识删除角色权限关联关系
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.hccake.ballcat.admin.modules.sys.mapper.SysMenuMapper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysMenuQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysMenuService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleMenuService;
|
||||
import com.hccake.ballcat.common.core.exception.BusinessException;
|
||||
import com.hccake.ballcat.common.model.result.BaseResultCode;
|
||||
import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单权限
|
||||
*
|
||||
* @author hccake 2021-04-06 17:59:51
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SysMenuServiceImpl extends ExtendServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
|
||||
|
||||
private final SysRoleMenuService sysRoleMenuService;
|
||||
|
||||
/**
|
||||
* 查询权限集合,并按sort排序(升序)
|
||||
* @param sysMenuQO 查询条件
|
||||
* @return List<SysMenu>
|
||||
*/
|
||||
@Override
|
||||
public List<SysMenu> listOrderBySort(SysMenuQO sysMenuQO) {
|
||||
return baseMapper.listOrderBySort(sysMenuQO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色标识查询对应的菜单
|
||||
* @param roleCode 角色标识
|
||||
* @return List<SysMenu>
|
||||
*/
|
||||
@Override
|
||||
public List<SysMenu> listByRoleCode(String roleCode) {
|
||||
return baseMapper.listByRoleCode(roleCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean removeById(Serializable id) {
|
||||
// 查询当前权限是否有子权限
|
||||
Integer subMenu = baseMapper.countSubMenu(id);
|
||||
if (subMenu != null && subMenu > 0) {
|
||||
throw new BusinessException(BaseResultCode.LOGIC_CHECK_ERROR.getCode(), "菜单含有下级不能删除");
|
||||
}
|
||||
// 删除角色权限关联数据
|
||||
sysRoleMenuService.deleteByMenuId(id);
|
||||
// 删除当前菜单及其子菜单
|
||||
return SqlHelper.retBool(baseMapper.deleteById(id));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.hccake.ballcat.admin.modules.sys.mapper.SysPermissionMapper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysPermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService;
|
||||
import com.hccake.ballcat.common.core.exception.BusinessException;
|
||||
import com.hccake.ballcat.common.model.result.BaseResultCode;
|
||||
import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 菜单权限表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hccake
|
||||
* @since 2017-10-29
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SysPermissionServiceImpl extends ExtendServiceImpl<SysPermissionMapper, SysPermission>
|
||||
implements SysPermissionService {
|
||||
|
||||
private final SysRolePermissionService sysRolePermissionService;
|
||||
|
||||
@Override
|
||||
public List<PermissionVO> listVOByRoleCode(String roleCode) {
|
||||
return baseMapper.listVOByRoleCode(roleCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询权限集合,并按sort排序(升序)
|
||||
* @return List<SysPermission>
|
||||
*/
|
||||
@Override
|
||||
public List<SysPermission> listOrderBySort() {
|
||||
return baseMapper.listOrderBySort();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean removeById(Serializable id) {
|
||||
// 查询当前权限是否有子权限
|
||||
Integer subPermissionNum = baseMapper.countSubPermission(id);
|
||||
if (subPermissionNum != null && subPermissionNum > 0) {
|
||||
throw new BusinessException(BaseResultCode.LOGIC_CHECK_ERROR.getCode(), "菜单含有下级不能删除");
|
||||
}
|
||||
// 删除角色权限关联数据
|
||||
sysRolePermissionService.deleteByPermissionId(id);
|
||||
// 删除当前菜单及其子菜单
|
||||
return SqlHelper.retBool(baseMapper.deleteById(id));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,9 +2,9 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.hccake.ballcat.admin.modules.sys.mapper.SysRolePermissionMapper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRolePermission;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.mapper.SysRoleMenuMapper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRoleMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleMenuService;
|
||||
import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -22,25 +22,25 @@ import java.util.stream.Collectors;
|
||||
* @author hccake
|
||||
*/
|
||||
@Service
|
||||
public class SysRolePermissionServiceImpl extends ExtendServiceImpl<SysRolePermissionMapper, SysRolePermission>
|
||||
implements SysRolePermissionService {
|
||||
public class SysRoleMenuServiceImpl extends ExtendServiceImpl<SysRoleMenuMapper, SysRoleMenu>
|
||||
implements SysRoleMenuService {
|
||||
|
||||
/**
|
||||
* @param roleCode 角色
|
||||
* @param permissionIds 权限ID集合
|
||||
* @param menuIds 权限ID集合
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean saveRolePermissions(String roleCode, Integer[] permissionIds) {
|
||||
public Boolean saveRoleMenus(String roleCode, Integer[] menuIds) {
|
||||
// 1、先删除旧数据
|
||||
baseMapper.deleteByRoleCode(roleCode);
|
||||
if (permissionIds == null || permissionIds.length == 0) {
|
||||
if (menuIds == null || menuIds.length == 0) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
// 2、再批量插入新数据
|
||||
List<SysRolePermission> list = Arrays.stream(permissionIds).map(id -> new SysRolePermission(roleCode, id))
|
||||
List<SysRoleMenu> list = Arrays.stream(menuIds).map(menuId -> new SysRoleMenu(roleCode, menuId))
|
||||
.collect(Collectors.toList());
|
||||
int i = baseMapper.insertBatchSomeColumn(list);
|
||||
return SqlHelper.retBool(i);
|
||||
@@ -48,11 +48,11 @@ public class SysRolePermissionServiceImpl extends ExtendServiceImpl<SysRolePermi
|
||||
|
||||
/**
|
||||
* 根据权限ID删除角色权限关联数据
|
||||
* @param permissionId 权限ID
|
||||
* @param menuId 权限ID
|
||||
*/
|
||||
@Override
|
||||
public void deleteByPermissionId(Serializable permissionId) {
|
||||
baseMapper.deleteByPermissionId(permissionId);
|
||||
public void deleteByMenuId(Serializable menuId) {
|
||||
baseMapper.deleteByMenuId(menuId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -5,7 +5,7 @@ import com.hccake.ballcat.admin.modules.sys.mapper.SysRoleMapper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysRoleQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysRolePageVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleMenuService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleService;
|
||||
import com.hccake.ballcat.common.model.domain.PageParam;
|
||||
import com.hccake.ballcat.common.model.domain.PageResult;
|
||||
@@ -30,7 +30,7 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
public class SysRoleServiceImpl extends ExtendServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
|
||||
|
||||
private final SysRolePermissionService sysRolePermissionService;
|
||||
private final SysRoleMenuService sysRoleMenuService;
|
||||
|
||||
/**
|
||||
* 查询系统角色列表
|
||||
@@ -52,7 +52,7 @@ public class SysRoleServiceImpl extends ExtendServiceImpl<SysRoleMapper, SysRole
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean removeById(Serializable id) {
|
||||
SysRole role = getById(id);
|
||||
sysRolePermissionService.deleteByRoleCode(role.getCode());
|
||||
sysRoleMenuService.deleteByRoleCode(role.getCode());
|
||||
return SqlHelper.retBool(baseMapper.deleteById(id));
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@ import com.hccake.ballcat.admin.modules.sys.converter.SysUserConverter;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.dto.SysUserDTO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.dto.SysUserScope;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.dto.UserInfoDTO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysUser;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysUserPageVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.*;
|
||||
import com.hccake.ballcat.common.model.domain.PageParam;
|
||||
@@ -49,7 +49,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
|
||||
|
||||
private final FileService fileService;
|
||||
|
||||
private final SysPermissionService sysPermissionService;
|
||||
private final SysMenuService sysMenuService;
|
||||
|
||||
private final SysUserRoleService sysUserRoleService;
|
||||
|
||||
@@ -112,11 +112,11 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
|
||||
|
||||
// 设置权限列表(permission)
|
||||
Set<String> permissions = new HashSet<>();
|
||||
roles.forEach(code -> {
|
||||
List<String> permissionList = sysPermissionService.listVOByRoleCode(code).stream()
|
||||
.map(PermissionVO::getCode).filter(StrUtil::isNotEmpty).collect(Collectors.toList());
|
||||
for (String roleCode : roles) {
|
||||
List<String> permissionList = sysMenuService.listByRoleCode(roleCode).stream().map(SysMenu::getPermission)
|
||||
.filter(StrUtil::isNotEmpty).collect(Collectors.toList());
|
||||
permissions.addAll(permissionList);
|
||||
});
|
||||
}
|
||||
userInfoDTO.setPermissions(new ArrayList<>(permissions));
|
||||
return userInfoDTO;
|
||||
}
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hccake.ballcat.admin.modules.sys.mapper.SysPermissionMapper">
|
||||
|
||||
<sql id="Base_Alias_Column_List">
|
||||
sp.id,
|
||||
sp.title,
|
||||
sp.code,
|
||||
sp.path,
|
||||
sp.router_name,
|
||||
sp.component,
|
||||
sp.redirect,
|
||||
sp.target,
|
||||
sp.parent_id,
|
||||
sp.icon,
|
||||
sp.sort,
|
||||
sp.keep_alive,
|
||||
sp.hidden,
|
||||
sp.type,
|
||||
sp.deleted,
|
||||
sp.create_time,
|
||||
sp.update_time
|
||||
</sql>
|
||||
|
||||
<!--通过角色查询菜单信息-->
|
||||
<select id="listVOByRoleCode" resultType="com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO">
|
||||
SELECT
|
||||
<include refid="Base_Alias_Column_List"/>
|
||||
FROM
|
||||
sys_permission sp
|
||||
LEFT JOIN sys_role_permission rm ON sp.id = rm.permission_id
|
||||
WHERE
|
||||
sp.deleted = 0
|
||||
AND rm.role_code = #{roleCode}
|
||||
ORDER BY
|
||||
sp.sort DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hccake.ballcat.admin.modules.sys.mapper.SysMenuMapper">
|
||||
|
||||
<resultMap id="sysMenuMap" type="com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu">
|
||||
<id property="id" column="id"/>
|
||||
<result property="parentId" column="parent_id"/>
|
||||
<result property="title" column="title"/>
|
||||
<result property="icon" column="icon"/>
|
||||
<result property="permission" column="permission"/>
|
||||
<result property="path" column="path"/>
|
||||
<result property="targetType" column="target_type"/>
|
||||
<result property="uri" column="uri"/>
|
||||
<result property="sort" column="sort"/>
|
||||
<result property="keepAlive" column="keep_alive"/>
|
||||
<result property="hidden" column="hidden"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="remarks" column="remarks"/>
|
||||
<result property="deleted" column="deleted"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,
|
||||
parent_id,
|
||||
title,
|
||||
icon,
|
||||
permission,
|
||||
path,
|
||||
target_type,
|
||||
uri,
|
||||
sort,
|
||||
keep_alive,
|
||||
hidden,
|
||||
type,
|
||||
remarks,
|
||||
deleted,
|
||||
create_time,
|
||||
update_time
|
||||
</sql>
|
||||
|
||||
<sql id="Base_Alias_Column_List">
|
||||
sm.id,
|
||||
sm.parent_id,
|
||||
sm.title,
|
||||
sm.icon,
|
||||
sm.permission,
|
||||
sm.path,
|
||||
sm.target_type,
|
||||
sm.uri,
|
||||
sm.sort,
|
||||
sm.keep_alive,
|
||||
sm.hidden,
|
||||
sm.type,
|
||||
sm.remarks,
|
||||
sm.deleted,
|
||||
sm.create_time,
|
||||
sm.update_time
|
||||
</sql>
|
||||
|
||||
<!--通过角色查询菜单信息-->
|
||||
<select id="listByRoleCode" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysMenu">
|
||||
SELECT
|
||||
<include refid="Base_Alias_Column_List"/>
|
||||
FROM
|
||||
sys_menu sm
|
||||
LEFT JOIN sys_role_menu rm ON sm.id = rm.menu_id
|
||||
WHERE
|
||||
sm.deleted = 0
|
||||
AND rm.role_code = #{roleCode}
|
||||
ORDER BY
|
||||
sm.sort DESC
|
||||
</select>
|
||||
</mapper>
|
||||
74
doc/update_sql/0.1.0.sql
Normal file
74
doc/update_sql/0.1.0.sql
Normal file
@@ -0,0 +1,74 @@
|
||||
-- 新建菜单表
|
||||
CREATE TABLE `sys_menu` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
|
||||
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父级ID',
|
||||
`title` varchar(32) DEFAULT NULL COMMENT '菜单名称',
|
||||
`icon` varchar(32) DEFAULT NULL COMMENT '菜单图标',
|
||||
`permission` varchar(32) DEFAULT NULL COMMENT '授权标识',
|
||||
`path` varchar(128) DEFAULT NULL COMMENT '路由地址',
|
||||
`target_type` tinyint(1) DEFAULT '1' COMMENT '打开方式 (1组件 2内链 3外链)',
|
||||
`uri` varchar(128) DEFAULT '' COMMENT '定位标识 (打开方式为组件时其值为组件相对路径,其他为URL地址)',
|
||||
`sort` int(11) DEFAULT '1' COMMENT '显示排序',
|
||||
`keep_alive` tinyint(1) DEFAULT '0' COMMENT '组件缓存:0-开启,1-关闭',
|
||||
`hidden` tinyint(1) DEFAULT '0' COMMENT '隐藏菜单: 0-否,1-是',
|
||||
`type` tinyint(1) DEFAULT '0' COMMENT '菜单类型 (0目录,1菜单,2按钮)',
|
||||
`remarks` varchar(50) DEFAULT NULL COMMENT '备注信息',
|
||||
`deleted` bigint(20) DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0,已删除为删除时间',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='菜单权限';
|
||||
|
||||
-- 权限表数据到菜单表数据的转换
|
||||
INSERT INTO `sys_menu` (
|
||||
`id`,
|
||||
`parent_id`,
|
||||
`title`,
|
||||
`icon`,
|
||||
`permission`,
|
||||
`path`,
|
||||
`target_type`,
|
||||
`uri`,
|
||||
`sort`,
|
||||
`keep_alive`,
|
||||
`hidden`,
|
||||
`type`,
|
||||
`deleted`,
|
||||
`create_time`,
|
||||
`update_time`
|
||||
) (
|
||||
SELECT
|
||||
`id`,
|
||||
`parent_id`,
|
||||
`title`,
|
||||
`icon`,
|
||||
`code` AS `permission`,
|
||||
SUBSTRING_INDEX( `path`, '/', - 1 ),
|
||||
CASE
|
||||
`target`
|
||||
WHEN '_blank' THEN
|
||||
2 ELSE 1
|
||||
END AS `target_type`,
|
||||
CASE
|
||||
`type`
|
||||
WHEN 1 THEN
|
||||
`component` ELSE NULL
|
||||
END AS `uri`,
|
||||
`sort`,
|
||||
`keep_alive`,
|
||||
`hidden`,
|
||||
`type`,
|
||||
`deleted`,
|
||||
`create_time`,
|
||||
`update_time`
|
||||
FROM
|
||||
sys_permission
|
||||
)
|
||||
|
||||
-- 角色权限关联表修改
|
||||
RENAME TABLE `sys_role_permission` TO `sys_role_menu`;
|
||||
ALTER TABLE `sys_role_menu`
|
||||
CHANGE COLUMN `permission_id` `menu_id` int(11) NOT NULL COMMENT '菜单ID' AFTER `role_code`;
|
||||
|
||||
-- 删除权限表
|
||||
DROP TABLE `sys_permission`;
|
||||
Reference in New Issue
Block a user