From 805244052a6bf46ca56916c0220619400da809772019c554a50c0b96b8e73e73 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Wed, 3 Sep 2025 12:22:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../staff/component/EbikeTenantFactory.java | 15 +++++++++++- .../controller/EbikeOperatorController.java | 2 +- .../com/cdzy/staff/model/dto/StaffInfo.java | 5 +++- .../impl/EbikeOperatorStaffServiceImpl.java | 24 +++++++++++++++---- 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/ebike-staff/src/main/java/com/cdzy/staff/component/EbikeTenantFactory.java b/ebike-staff/src/main/java/com/cdzy/staff/component/EbikeTenantFactory.java index 2328752..76c6c8a 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/component/EbikeTenantFactory.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/component/EbikeTenantFactory.java @@ -1,10 +1,14 @@ package com.cdzy.staff.component; import cn.dev33.satoken.stp.StpUtil; +import com.cdzy.staff.model.dto.StaffInfo; +import com.cdzy.staff.model.entity.EbikeRole; import com.mybatisflex.core.tenant.TenantFactory; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; +import java.util.List; + public class EbikeTenantFactory implements TenantFactory { public Object[] getTenantIds() { @@ -12,9 +16,18 @@ public class EbikeTenantFactory implements TenantFactory { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); Object attribute = attributes.getAttribute("tenantId", RequestAttributes.SCOPE_REQUEST); if (attribute != null) { - Long tenantId = Long.valueOf(attribute.toString()); + String id = (String) StpUtil.getLoginId(); + StaffInfo staffInfo = (StaffInfo) StpUtil.getSessionByLoginId(id).get(id); + List roles = staffInfo.getRoles(); + for (EbikeRole role:roles){ + if (role.getSysAdmin()) { + return new Object[]{}; + } + } + long tenantId = Long.parseLong(attribute.toString()); return new Object[]{tenantId}; } + } return null; } diff --git a/ebike-staff/src/main/java/com/cdzy/staff/controller/EbikeOperatorController.java b/ebike-staff/src/main/java/com/cdzy/staff/controller/EbikeOperatorController.java index c73c2d2..65c6da9 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/controller/EbikeOperatorController.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/controller/EbikeOperatorController.java @@ -43,7 +43,7 @@ public class EbikeOperatorController { .operatorName(ebikeOperator.getOperatorName()) .address(ebikeOperator.getAddress()) .contactPhone(ebikeOperator.getContactPhone()) - .createBy(Long.valueOf((String) StpUtil.getLoginId())) + .createBy(StpUtil.getLoginIdAsLong()) .build(); ebikeOperatorService.save(operator); return JsonResult.success(); diff --git a/ebike-staff/src/main/java/com/cdzy/staff/model/dto/StaffInfo.java b/ebike-staff/src/main/java/com/cdzy/staff/model/dto/StaffInfo.java index 1a834e7..64346c2 100644 --- a/ebike-staff/src/main/java/com/cdzy/staff/model/dto/StaffInfo.java +++ b/ebike-staff/src/main/java/com/cdzy/staff/model/dto/StaffInfo.java @@ -1,5 +1,6 @@ package com.cdzy.staff.model.dto; +import com.cdzy.staff.model.entity.EbikeRole; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -39,7 +40,9 @@ public class StaffInfo implements Serializable { // private List roles; - private List roles; + private List roleCodes; + + private List roles; /** *权限码集合 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 a2a3b8b..7dcca26 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 @@ -6,8 +6,10 @@ import com.cdzy.common.utils.SHA256WithSaltUtil; import com.cdzy.staff.model.dto.StaffInfo; import com.cdzy.staff.model.entity.EbikeOperatorStaff; import com.cdzy.staff.mapper.EbikeOperatorStaffMapper; +import com.cdzy.staff.model.entity.EbikeRole; import com.cdzy.staff.service.EbikeOperatorStaffService; import com.cdzy.staff.model.vo.StaffVo; +import com.cdzy.staff.service.EbikeRoleService; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -17,6 +19,8 @@ import java.util.ArrayList; import java.util.List; import static com.cdzy.staff.model.entity.table.EbikeOperatorStaffTableDef.EBIKE_OPERATOR_STAFF; +import static com.cdzy.staff.model.entity.table.EbikeRoleTableDef.EBIKE_ROLE; +import static com.cdzy.staff.model.entity.table.EbikeStaffRoleTableDef.EBIKE_STAFF_ROLE; /** * 运营商员工账户表 服务层实现。 @@ -30,6 +34,9 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl list = roleService.list(queryWrapper); List permissions = new ArrayList<>(); permissions.add("common:btn:add"); permissions.add("common:btn:edit"); @@ -71,6 +84,7 @@ public class EbikeOperatorStaffServiceImpl extends ServiceImpl roles = new ArrayList<>(); permissions.add("common"); info.setPermissions(permissions); + info.setRoles(list); return info; }