8 files modified
1 files added
| | |
| | | import org.springblade.modules.system.entity.User; |
| | | import org.springblade.modules.system.service.IRoleService; |
| | | import org.springblade.modules.system.vo.GrantVO; |
| | | import org.springblade.modules.system.vo.RoleParam; |
| | | import org.springblade.modules.system.vo.RoleVO; |
| | | import org.springblade.modules.system.wrapper.RoleWrapper; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 自定义列表(只获取当前角色下级角色) |
| | | * @param roleParam |
| | | * @return |
| | | */ |
| | | @GetMapping("/getRoleList") |
| | | public R<List<RoleVO>> getRoleList(RoleParam roleParam) { |
| | | List<Role> list = roleService.getRoleList(roleParam); |
| | | return R.data(RoleWrapper.build().listNodeVO(list)); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.annotation.PreAuth; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tenant.annotation.NonDS; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | |
| | | @ApiOperationSupport(order = 3) |
| | | @ApiOperation(value = "下拉数据源", notes = "传入tenant") |
| | | @PreAuth(RoleConstant.HAS_ROLE_ADMIN) |
| | | public R<List<Tenant>> select(Tenant tenant, BladeUser bladeUser) { |
| | | public R<List<Tenant>> select() { |
| | | BladeUser user = AuthUtil.getUser(); |
| | | Tenant tenant = new Tenant(); |
| | | tenant.setTenantId(AuthUtil.getTenantId()); |
| | | QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant); |
| | | List<Tenant> list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper); |
| | | List<Tenant> list = tenantService.list((!user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, user.getTenantId()) : queryWrapper); |
| | | return R.data(list); |
| | | } |
| | | |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springblade.modules.system.entity.Role; |
| | | import org.springblade.modules.system.vo.RoleParam; |
| | | import org.springblade.modules.system.vo.RoleVO; |
| | | |
| | | import java.util.List; |
| | |
| | | List<String> getRoleAliases(Long[] ids); |
| | | |
| | | List<Role> getRoleListByIds(@Param("ids") String roleIds); |
| | | |
| | | /** |
| | | * 自定义列表(只获取当前角色下级角色) |
| | | * @param roleParam |
| | | * @return |
| | | */ |
| | | List<Role> getRoleList(@Param("roleParam") RoleParam roleParam); |
| | | } |
| | |
| | | |
| | | <select id="tree" resultMap="treeNodeResultMap"> |
| | | select id, parent_id, role_name as title, id as "value", id as "key" from blade_role where is_deleted = 0 |
| | | and id!=1123598816738675201 |
| | | <if test="param1!=null"> |
| | | and tenant_id = #{param1} |
| | | </if> |
| | |
| | | </foreach> |
| | | </select> |
| | | |
| | | <!--角色查询--> |
| | | <select id="getRoleList" resultType="org.springblade.modules.system.entity.Role"> |
| | | SELECT br.* FROM blade_role br |
| | | inner join ( |
| | | SELECT * FROM |
| | | ( |
| | | SELECT t1.*,IF( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild FROM |
| | | ( SELECT id, parent_id,role_name,role_alias FROM blade_role t where is_deleted =0 ORDER BY parent_id, id ) t1, |
| | | ( SELECT @pids := #{roleParam.roleId} ) t2 |
| | | ) t3 |
| | | WHERE id != 1123598816738675201 |
| | | <if test="roleParam.roleName!=null and roleParam.roleName!=''"> |
| | | and role_name like concat('%',#{roleParam.roleName},'%') |
| | | </if> |
| | | <if test="roleParam.roleAlias!=null and roleParam.roleAlias!=''"> |
| | | and role_alias like concat('%',#{roleParam.roleAlias},'%') |
| | | </if> |
| | | ) t4 on br.id = t4.id |
| | | <if test="roleParam.isNowLevel==0"> |
| | | union all |
| | | ( |
| | | SELECT * FROM blade_role where id = #{roleParam.roleId} |
| | | ) |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | |
| | | <select id="selectUserPage" resultMap="userResultMap"> |
| | | select * from blade_user where is_deleted = 0 |
| | | and id != 1123598821738675201 |
| | | <if test="tenantId!=null and tenantId != ''"> |
| | | and tenant_id = #{tenantId} |
| | | </if> |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import org.springblade.modules.system.entity.Role; |
| | | import org.springblade.modules.system.vo.RoleParam; |
| | | import org.springblade.modules.system.vo.RoleVO; |
| | | |
| | | import javax.validation.constraints.NotEmpty; |
| | |
| | | * @return |
| | | */ |
| | | List<Role> getRoleListByIds(String roleIds); |
| | | |
| | | /** |
| | | * 自定义列表(只获取当前角色下级角色) |
| | | * @param roleParam |
| | | * @return |
| | | */ |
| | | List<Role> getRoleList(RoleParam roleParam); |
| | | } |
| | |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | | import org.springblade.core.tool.constant.RoleConstant; |
| | | import org.springblade.core.tool.node.ForestNodeMerger; |
| | | import org.springblade.core.tool.node.TreeNode; |
| | | import org.springblade.core.tool.support.Kv; |
| | |
| | | |
| | | @Override |
| | | public List<TreeNode> grantTree(BladeUser user) { |
| | | List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId())); |
| | | return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId())); |
| | | return ForestNodeMerger.merge(AuthUtil.getUser().getRoleName().equals(RoleConstant.ADMINISTRATOR) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()))); |
| | | } |
| | | |
| | | @Override |
| | |
| | | import org.springblade.modules.system.service.IRoleMenuService; |
| | | import org.springblade.modules.system.service.IRoleScopeService; |
| | | import org.springblade.modules.system.service.IRoleService; |
| | | import org.springblade.modules.system.vo.RoleParam; |
| | | import org.springblade.modules.system.vo.RoleVO; |
| | | import org.springblade.modules.system.wrapper.RoleWrapper; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | } |
| | | role.setTenantId(parent.getTenantId()); |
| | | } |
| | | role.setParentId(Long.parseLong(AuthUtil.getUser().getRoleId())); |
| | | role.setIsDeleted(BladeConstant.DB_NOT_DELETED); |
| | | return saveOrUpdate(role); |
| | | } |
| | |
| | | return baseMapper.getRoleListByIds(roleIds); |
| | | } |
| | | |
| | | /** |
| | | * 自定义列表(只获取当前角色下级角色) |
| | | * @param roleParam |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Role> getRoleList(RoleParam roleParam) { |
| | | roleParam.setRoleId(AuthUtil.getUser().getRoleId()); |
| | | return baseMapper.getRoleList(roleParam); |
| | | } |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.modules.system.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import org.springblade.modules.system.entity.Role; |
| | | |
| | | /** |
| | | * 视图实体类 |
| | | * |
| | | * @author Chill |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ApiModel(value = "RoleVO对象", description = "RoleVO对象") |
| | | public class RoleParam extends Role { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | |
| | | /** |
| | | * 是否返回当前层级 0:是 1:否 |
| | | */ |
| | | private Integer isNowLevel; |
| | | |
| | | /** |
| | | * 角色id |
| | | */ |
| | | private String roleId; |
| | | |
| | | /** |
| | | * 角色名称 |
| | | */ |
| | | private String roleName; |
| | | |
| | | /** |
| | | * 角色别名 |
| | | */ |
| | | private String roleAlias; |
| | | } |