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);