From 45d8b41464e9c72d667aff4ea70db7feff5152e9d67c513819d40c2ee1f75cb7 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Fri, 5 Sep 2025 15:41:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=9D=83=E9=99=90=E6=A0=91?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9D=83=E9=99=90=E8=BF=87=E6=BB=A4=EF=BC=88?= =?UTF-8?q?=E8=B6=85=E7=AE=A1=E4=B8=8D=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/dto/EbikePermissionTreeNode.java | 7 +++ .../staff/model/entity/EbikePermission.java | 7 +++ .../staff/model/vo/EbikePermissionVo.java | 8 +++- .../impl/EbikeOperatorStaffServiceImpl.java | 1 - .../impl/EbikePermissionServiceImpl.java | 46 +++++++++++++++++++ 5 files changed, 67 insertions(+), 2 deletions(-) diff --git a/ebike-staff/src/main/java/com/cdzy/staff/model/dto/EbikePermissionTreeNode.java b/ebike-staff/src/main/java/com/cdzy/staff/model/dto/EbikePermissionTreeNode.java index 649a53d..362b4c0 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/model/dto/EbikePermissionTreeNode.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/model/dto/EbikePermissionTreeNode.java @@ -69,6 +69,13 @@ public class EbikePermissionTreeNode implements Serializable { */ private String svgIcon; + private String icon; + + /** + * 按钮标识 + */ + private String buttonCode; + /** * 重定向路径 */ diff --git a/ebike-staff/src/main/java/com/cdzy/staff/model/entity/EbikePermission.java b/ebike-staff/src/main/java/com/cdzy/staff/model/entity/EbikePermission.java index f3f43f4..b9ba303 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/model/entity/EbikePermission.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/model/entity/EbikePermission.java @@ -74,6 +74,13 @@ public class EbikePermission implements Serializable { */ private String svgIcon; + private String icon; + + /** + * 按钮标识 + */ + private String buttonCode; + /** * 重定向路径 */ diff --git a/ebike-staff/src/main/java/com/cdzy/staff/model/vo/EbikePermissionVo.java b/ebike-staff/src/main/java/com/cdzy/staff/model/vo/EbikePermissionVo.java index 04629e8..e08c71e 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/model/vo/EbikePermissionVo.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/model/vo/EbikePermissionVo.java @@ -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; + /** * 重定向路径 */ diff --git a/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikeOperatorStaffServiceImpl.java b/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikeOperatorStaffServiceImpl.java index 7dcca26..bab308f 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikeOperatorStaffServiceImpl.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikeOperatorStaffServiceImpl.java @@ -81,7 +81,6 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl roles = new ArrayList<>(); permissions.add("common"); info.setPermissions(permissions); info.setRoles(list); diff --git a/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikePermissionServiceImpl.java b/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikePermissionServiceImpl.java index 0691ef9..f7a8a1b 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikePermissionServiceImpl.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/service/impl/EbikePermissionServiceImpl.java @@ -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 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 first = ebikePermissionMapper.selectListByQueryAs(queryWrapper, EbikePermissionTreeNode.class); List firstIds = first.stream().map(EbikePermissionTreeNode::getPermissionId).toList(); List second = null; @@ -74,11 +92,25 @@ public class EbikePermissionServiceImpl extends ServiceImpl 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 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);