页面权限树根据权限过滤(超管不影响
This commit is contained in:
parent
742ac7166c
commit
45d8b41464
@ -69,6 +69,13 @@ public class EbikePermissionTreeNode implements Serializable {
|
||||
*/
|
||||
private String svgIcon;
|
||||
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 按钮标识
|
||||
*/
|
||||
private String buttonCode;
|
||||
|
||||
/**
|
||||
* 重定向路径
|
||||
*/
|
||||
|
||||
@ -74,6 +74,13 @@ public class EbikePermission implements Serializable {
|
||||
*/
|
||||
private String svgIcon;
|
||||
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 按钮标识
|
||||
*/
|
||||
private String buttonCode;
|
||||
|
||||
/**
|
||||
* 重定向路径
|
||||
*/
|
||||
|
||||
@ -49,7 +49,6 @@ public class EbikePermissionVo implements Serializable {
|
||||
/**
|
||||
* 路由路径
|
||||
*/
|
||||
@NotBlank(message = "菜单标题不能为空")
|
||||
private String path;
|
||||
|
||||
|
||||
@ -58,6 +57,13 @@ public class EbikePermissionVo implements Serializable {
|
||||
*/
|
||||
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:edit");
|
||||
permissions.add("common:btn:delete");
|
||||
List<String> roles = new ArrayList<>();
|
||||
permissions.add("common");
|
||||
info.setPermissions(permissions);
|
||||
info.setRoles(list);
|
||||
|
||||
@ -4,7 +4,9 @@ import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.cdzy.common.ex.EbikeException;
|
||||
import com.cdzy.staff.mapper.EbikePermissionMapper;
|
||||
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.EbikeRole;
|
||||
import com.cdzy.staff.model.vo.EbikePermissionVo;
|
||||
import com.cdzy.staff.service.EbikePermissionService;
|
||||
import com.cdzy.staff.utils.TreeUtil;
|
||||
@ -15,6 +17,10 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
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())
|
||||
.svgIcon(ebikePermission.getSvgIcon())
|
||||
.redirect(ebikePermission.getRedirect())
|
||||
.buttonCode(ebikePermission.getButtonCode())
|
||||
.icon(ebikePermission.getIcon())
|
||||
.parentId(parentId)
|
||||
.createBy(StpUtil.getLoginIdAsLong())
|
||||
.build();
|
||||
@ -58,6 +66,8 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
||||
permission.setComponent(ebikePermission.getComponent());
|
||||
permission.setSvgIcon(ebikePermission.getSvgIcon());
|
||||
permission.setRedirect(ebikePermission.getRedirect());
|
||||
permission.setButtonCode(ebikePermission.getButtonCode());
|
||||
permission.setIcon(ebikePermission.getIcon());
|
||||
permission.setParentId(parentId);
|
||||
permission.setUpdateBy(StpUtil.getLoginIdAsLong());
|
||||
ebikePermissionMapper.update(permission);
|
||||
@ -65,8 +75,16 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
||||
|
||||
@Override
|
||||
public List<EbikePermissionTreeNode> tree() {
|
||||
boolean sysAdmin = checkSysAdmin();
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.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<Long> firstIds = first.stream().map(EbikePermissionTreeNode::getPermissionId).toList();
|
||||
List<EbikePermissionTreeNode> second = null;
|
||||
@ -74,11 +92,25 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
||||
if (!firstIds.isEmpty()) {
|
||||
queryWrapper.clear();
|
||||
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);
|
||||
List<Long> secondIds = second.stream().map(EbikePermissionTreeNode::getPermissionId).toList();
|
||||
if (!secondIds.isEmpty()) {
|
||||
queryWrapper.clear();
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -87,6 +119,20 @@ public class EbikePermissionServiceImpl extends ServiceImpl<EbikePermissionMappe
|
||||
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) {
|
||||
if (parentId != null) {
|
||||
EbikePermission permission = ebikePermissionMapper.selectOneById(parentId);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user