页面权限树根据权限过滤(超管不影响
This commit is contained in:
parent
742ac7166c
commit
45d8b41464
@ -69,6 +69,13 @@ public class EbikePermissionTreeNode implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String svgIcon;
|
private String svgIcon;
|
||||||
|
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按钮标识
|
||||||
|
*/
|
||||||
|
private String buttonCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重定向路径
|
* 重定向路径
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -74,6 +74,13 @@ public class EbikePermission implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String svgIcon;
|
private String svgIcon;
|
||||||
|
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按钮标识
|
||||||
|
*/
|
||||||
|
private String buttonCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重定向路径
|
* 重定向路径
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -49,7 +49,6 @@ public class EbikePermissionVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 路由路径
|
* 路由路径
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "菜单标题不能为空")
|
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
|
|
||||||
@ -58,6 +57,13 @@ public class EbikePermissionVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String svgIcon;
|
private String svgIcon;
|
||||||
|
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按钮标识
|
||||||
|
*/
|
||||||
|
private String buttonCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重定向路径
|
* 重定向路径
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -81,7 +81,6 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl<EbikeOperatorStaf
|
|||||||
permissions.add("common:btn:add");
|
permissions.add("common:btn:add");
|
||||||
permissions.add("common:btn:edit");
|
permissions.add("common:btn:edit");
|
||||||
permissions.add("common:btn:delete");
|
permissions.add("common:btn:delete");
|
||||||
List<String> roles = new ArrayList<>();
|
|
||||||
permissions.add("common");
|
permissions.add("common");
|
||||||
info.setPermissions(permissions);
|
info.setPermissions(permissions);
|
||||||
info.setRoles(list);
|
info.setRoles(list);
|
||||||
|
|||||||
@ -4,7 +4,9 @@ import cn.dev33.satoken.stp.StpUtil;
|
|||||||
import com.cdzy.common.ex.EbikeException;
|
import com.cdzy.common.ex.EbikeException;
|
||||||
import com.cdzy.staff.mapper.EbikePermissionMapper;
|
import com.cdzy.staff.mapper.EbikePermissionMapper;
|
||||||
import com.cdzy.staff.model.dto.EbikePermissionTreeNode;
|
import com.cdzy.staff.model.dto.EbikePermissionTreeNode;
|
||||||
|
import com.cdzy.staff.model.dto.StaffInfo;
|
||||||
import com.cdzy.staff.model.entity.EbikePermission;
|
import com.cdzy.staff.model.entity.EbikePermission;
|
||||||
|
import com.cdzy.staff.model.entity.EbikeRole;
|
||||||
import com.cdzy.staff.model.vo.EbikePermissionVo;
|
import com.cdzy.staff.model.vo.EbikePermissionVo;
|
||||||
import com.cdzy.staff.service.EbikePermissionService;
|
import com.cdzy.staff.service.EbikePermissionService;
|
||||||
import com.cdzy.staff.utils.TreeUtil;
|
import com.cdzy.staff.utils.TreeUtil;
|
||||||
@ -15,6 +17,10 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.cdzy.staff.model.entity.table.EbikePermissionTableDef.EBIKE_PERMISSION;
|
||||||
|
import static com.cdzy.staff.model.entity.table.EbikeRolePermissionTableDef.EBIKE_ROLE_PERMISSION;
|
||||||
|
import static com.cdzy.staff.model.entity.table.EbikeStaffRoleTableDef.EBIKE_STAFF_ROLE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统权限表 服务层实现。
|
* 系统权限表 服务层实现。
|
||||||
*
|
*
|
||||||
@ -38,6 +44,8 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
|||||||
.component(ebikePermission.getComponent())
|
.component(ebikePermission.getComponent())
|
||||||
.svgIcon(ebikePermission.getSvgIcon())
|
.svgIcon(ebikePermission.getSvgIcon())
|
||||||
.redirect(ebikePermission.getRedirect())
|
.redirect(ebikePermission.getRedirect())
|
||||||
|
.buttonCode(ebikePermission.getButtonCode())
|
||||||
|
.icon(ebikePermission.getIcon())
|
||||||
.parentId(parentId)
|
.parentId(parentId)
|
||||||
.createBy(StpUtil.getLoginIdAsLong())
|
.createBy(StpUtil.getLoginIdAsLong())
|
||||||
.build();
|
.build();
|
||||||
@ -58,6 +66,8 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
|||||||
permission.setComponent(ebikePermission.getComponent());
|
permission.setComponent(ebikePermission.getComponent());
|
||||||
permission.setSvgIcon(ebikePermission.getSvgIcon());
|
permission.setSvgIcon(ebikePermission.getSvgIcon());
|
||||||
permission.setRedirect(ebikePermission.getRedirect());
|
permission.setRedirect(ebikePermission.getRedirect());
|
||||||
|
permission.setButtonCode(ebikePermission.getButtonCode());
|
||||||
|
permission.setIcon(ebikePermission.getIcon());
|
||||||
permission.setParentId(parentId);
|
permission.setParentId(parentId);
|
||||||
permission.setUpdateBy(StpUtil.getLoginIdAsLong());
|
permission.setUpdateBy(StpUtil.getLoginIdAsLong());
|
||||||
ebikePermissionMapper.update(permission);
|
ebikePermissionMapper.update(permission);
|
||||||
@ -65,8 +75,16 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EbikePermissionTreeNode> tree() {
|
public List<EbikePermissionTreeNode> tree() {
|
||||||
|
boolean sysAdmin = checkSysAdmin();
|
||||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
.isNull(EbikePermission::getParentId);
|
.isNull(EbikePermission::getParentId);
|
||||||
|
if (!sysAdmin) {
|
||||||
|
Long loginId = StpUtil.getLoginIdAsLong();
|
||||||
|
queryWrapper
|
||||||
|
.leftJoin(EBIKE_ROLE_PERMISSION).on(EBIKE_PERMISSION.PERMISSION_ID.eq(EBIKE_ROLE_PERMISSION.PERMISSION_ID))
|
||||||
|
.leftJoin(EBIKE_STAFF_ROLE).on(EBIKE_STAFF_ROLE.ROLE_ID.eq(EBIKE_ROLE_PERMISSION.ROLE_ID))
|
||||||
|
.where(EBIKE_STAFF_ROLE.STAFF_ID.eq(loginId));
|
||||||
|
}
|
||||||
List<EbikePermissionTreeNode> first = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class);
|
List<EbikePermissionTreeNode> first = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class);
|
||||||
List<Long> firstIds = first.stream().map(EbikePermissionTreeNode::getPermissionId).toList();
|
List<Long> firstIds = first.stream().map(EbikePermissionTreeNode::getPermissionId).toList();
|
||||||
List<EbikePermissionTreeNode> second = null;
|
List<EbikePermissionTreeNode> second = null;
|
||||||
@ -74,11 +92,25 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
|||||||
if (!firstIds.isEmpty()) {
|
if (!firstIds.isEmpty()) {
|
||||||
queryWrapper.clear();
|
queryWrapper.clear();
|
||||||
queryWrapper.in(EbikePermission::getParentId, firstIds);
|
queryWrapper.in(EbikePermission::getParentId, firstIds);
|
||||||
|
if (!sysAdmin) {
|
||||||
|
Long loginId = StpUtil.getLoginIdAsLong();
|
||||||
|
queryWrapper
|
||||||
|
.leftJoin(EBIKE_ROLE_PERMISSION).on(EBIKE_PERMISSION.PERMISSION_ID.eq(EBIKE_ROLE_PERMISSION.PERMISSION_ID))
|
||||||
|
.leftJoin(EBIKE_STAFF_ROLE).on(EBIKE_STAFF_ROLE.ROLE_ID.eq(EBIKE_ROLE_PERMISSION.ROLE_ID))
|
||||||
|
.where(EBIKE_STAFF_ROLE.STAFF_ID.eq(loginId));
|
||||||
|
}
|
||||||
second = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class);
|
second = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class);
|
||||||
List<Long> secondIds = second.stream().map(EbikePermissionTreeNode::getPermissionId).toList();
|
List<Long> secondIds = second.stream().map(EbikePermissionTreeNode::getPermissionId).toList();
|
||||||
if (!secondIds.isEmpty()) {
|
if (!secondIds.isEmpty()) {
|
||||||
queryWrapper.clear();
|
queryWrapper.clear();
|
||||||
queryWrapper.in(EbikePermission::getParentId, secondIds);
|
queryWrapper.in(EbikePermission::getParentId, secondIds);
|
||||||
|
if (!sysAdmin) {
|
||||||
|
Long loginId = StpUtil.getLoginIdAsLong();
|
||||||
|
queryWrapper
|
||||||
|
.leftJoin(EBIKE_ROLE_PERMISSION).on(EBIKE_PERMISSION.PERMISSION_ID.eq(EBIKE_ROLE_PERMISSION.PERMISSION_ID))
|
||||||
|
.leftJoin(EBIKE_STAFF_ROLE).on(EBIKE_STAFF_ROLE.ROLE_ID.eq(EBIKE_ROLE_PERMISSION.ROLE_ID))
|
||||||
|
.where(EBIKE_STAFF_ROLE.STAFF_ID.eq(loginId));
|
||||||
|
}
|
||||||
third = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class);
|
third = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -87,6 +119,20 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
|||||||
return first;
|
return first;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkSysAdmin() {
|
||||||
|
String loginId = StpUtil.getLoginIdAsString();
|
||||||
|
StaffInfo info = (StaffInfo) StpUtil.getSession().get(loginId);
|
||||||
|
List<EbikeRole> roles = info.getRoles();
|
||||||
|
boolean sysAdmin = false;
|
||||||
|
for (EbikeRole ebikeRole : roles) {
|
||||||
|
if (ebikeRole.getSysAdmin()) {
|
||||||
|
sysAdmin = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sysAdmin;
|
||||||
|
}
|
||||||
|
|
||||||
private void checkParent(Long parentId) {
|
private void checkParent(Long parentId) {
|
||||||
if (parentId != null) {
|
if (parentId != null) {
|
||||||
EbikePermission permission = ebikePermissionMapper.selectOneById(parentId);
|
EbikePermission permission = ebikePermissionMapper.selectOneById(parentId);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user