From d7ed10f45d81d644e3c70f084cea10cb861d4326 Mon Sep 17 00:00:00 2001 From: ziin Date: Tue, 6 Jan 2026 19:14:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(tenant-withdraw):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=8B=E7=BA=A7=E7=A7=9F=E6=88=B7=E6=8F=90=E7=8E=B0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KeyboardTenantWithdrawOrderPageReqVO.java | 3 +++ .../KeyboardTenantWithdrawOrderMapper.java | 1 + ...eyboardTenantWithdrawOrderServiceImpl.java | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantwithdraworder/vo/KeyboardTenantWithdrawOrderPageReqVO.java b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantwithdraworder/vo/KeyboardTenantWithdrawOrderPageReqVO.java index 6a2a6ad..68f14da 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantwithdraworder/vo/KeyboardTenantWithdrawOrderPageReqVO.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantwithdraworder/vo/KeyboardTenantWithdrawOrderPageReqVO.java @@ -111,4 +111,7 @@ public class KeyboardTenantWithdrawOrderPageReqVO extends PageParam { @Schema(description = "更新时间") private LocalDateTime updatedAt; + @Schema(description = "租户ID列表(用于下级租户过滤)", hidden = true) + private List tenantIds; + } \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantwithdraworder/KeyboardTenantWithdrawOrderMapper.java b/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantwithdraworder/KeyboardTenantWithdrawOrderMapper.java index d0c5eec..5a15434 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantwithdraworder/KeyboardTenantWithdrawOrderMapper.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantwithdraworder/KeyboardTenantWithdrawOrderMapper.java @@ -19,6 +19,7 @@ public interface KeyboardTenantWithdrawOrderMapper extends BaseMapperX selectPage(KeyboardTenantWithdrawOrderPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .inIfPresent(KeyboardTenantWithdrawOrderDO::getTenantId, reqVO.getTenantIds()) .eqIfPresent(KeyboardTenantWithdrawOrderDO::getWithdrawNo, reqVO.getWithdrawNo()) .eqIfPresent(KeyboardTenantWithdrawOrderDO::getBizNo, reqVO.getBizNo()) .eqIfPresent(KeyboardTenantWithdrawOrderDO::getCurrency, reqVO.getCurrency()) diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java index 9efb9fe..655fc5c 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantwithdraworder/KeyboardTenantWithdrawOrderServiceImpl.java @@ -7,9 +7,11 @@ import com.yolo.keyboard.dal.dataobject.tenantwithdraworder.KeyboardTenantWithdr import com.yolo.keyboard.dal.mysql.tenantwithdraworder.KeyboardTenantWithdrawOrderMapper; import com.yolo.keyboard.framework.common.pojo.PageResult; import com.yolo.keyboard.framework.common.util.object.BeanUtils; +import com.yolo.keyboard.framework.tenant.core.context.TenantContextHolder; import com.yolo.keyboard.module.system.dal.dataobject.tenant.TenantDO; import com.yolo.keyboard.module.system.dal.mysql.tenant.TenantMapper; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -84,6 +86,26 @@ public class KeyboardTenantWithdrawOrderServiceImpl implements KeyboardTenantWit @Override public PageResult getTenantWithdrawOrderPage(KeyboardTenantWithdrawOrderPageReqVO pageReqVO) { + // 根据当前租户级别过滤下级租户的提现申请 + Long currentTenantId = TenantContextHolder.getTenantId(); + if (currentTenantId != null) { + TenantDO currentTenant = tenantMapper.selectById(currentTenantId); + if (currentTenant != null && currentTenant.getTenantLevel() != null + && currentTenant.getTenantLevel() != 0) { + // 非系统管理员:只能查看直属下级租户的提现申请 + List subordinateTenants = tenantMapper.selectList( + new LambdaQueryWrapper().eq(TenantDO::getParentId, currentTenantId)); + List subordinateTenantIds = subordinateTenants.stream() + .map(TenantDO::getId) + .collect(Collectors.toList()); + if (CollUtil.isEmpty(subordinateTenantIds)) { + // 没有下级租户,返回空结果 + return PageResult.empty(0L); + } + pageReqVO.setTenantIds(subordinateTenantIds); + } + } + // 分页查询租户提现订单数据 PageResult pageResult = tenantWithdrawOrderMapper.selectPage(pageReqVO); if (CollUtil.isEmpty(pageResult.getList())) {