From bf5db4bbb98a949aa059aa0c1c200eadd06260fe Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 9 Oct 2026 13:01:04 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E9=92=B1=E5=8C=85=E6=B5=81?= =?UTF-8?q?=E6=B0=B4"=E6=98=BE=E7=A4=BA=E7=B3=BB=E7=BB=9F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WalletActiveController.java | 16 ++++++++++------ .../wallet/mapper/WalletActiveMapper.java | 7 +++++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java index 38c3ce2d4..92d18c515 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java @@ -58,9 +58,13 @@ import java.util.List; public class WalletActiveController { private final WalletActiveService walletActiveService; - /** 钱包开卡 Excel 导入服务,隔离默认和学生模板的校验及异步编排。 */ + /** + * 钱包开卡 Excel 导入服务,隔离默认和学生模板的校验及异步编排。 + */ private final WalletActiveImportService walletActiveImportService; - /** 钱包用户导出服务,负责开卡记录分片查询、中文二级表头和异步进度。 */ + /** + * 钱包用户导出服务,负责开卡记录分片查询、中文二级表头和异步进度。 + */ private final WalletUserExportService walletUserExportService; private final MchManageService mchManageService; @@ -103,7 +107,7 @@ public class WalletActiveController { UserInfo userInfo = remoteUserService.getInnerByUserId(user.getId()).getData(); MchManageVo targetMch = mchManageService.getViewsCanteenMchByDeptId(userInfo.getSysUser().getDeptId()); if (ObjectUtil.isNotEmpty(targetMch)) { - dto.setDeptIds(List.of(targetMch.getDeptId())); + dto.setMerchantId(targetMch.getId()); } else { List deptIdList = remoteDeptService.getDescendantList(userInfo.getSysUser().getDeptId()).getData(); if (ObjectUtil.isNotEmpty(deptIdList)) { @@ -234,7 +238,7 @@ public class WalletActiveController { * 使用中文二级表头同步分片导出开卡记录,保留旧 GET 地址供既有调用方兼容。 * * @param response 当前 HTTP 下载响应 - * @param dto 页面当前开卡、用户身份、部门和勾选记录筛选条件 + * @param dto 页面当前开卡、用户身份、部门和勾选记录筛选条件 */ @GetMapping("/export") @PreAuthorize("@pms.hasPermission('wallet_walletActive_export')") @@ -257,7 +261,7 @@ public class WalletActiveController { /** * 导入默认开卡模板,按用户姓名和手机号定位用户并异步覆盖饭卡卡号。 * - * @param excelVOList 默认开卡 Excel 行 + * @param excelVOList 默认开卡 Excel 行 * @param bindingResult Excel 解析阶段的逐行错误 * @return 校验失败时返回逐行错误;校验通过时返回异步任务初始进度 */ @@ -271,7 +275,7 @@ public class WalletActiveController { /** * 导入学生开卡模板,按学校和学号定位学生并异步覆盖饭卡卡号。 * - * @param excelVOList 学生开卡 Excel 行 + * @param excelVOList 学生开卡 Excel 行 * @param bindingResult Excel 解析阶段的逐行错误 * @return 校验失败时返回逐行错误;校验通过时返回异步任务初始进度 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java index 368a2e4eb..9c1e4fb29 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java @@ -32,20 +32,23 @@ public interface WalletActiveMapper extends PjcloudBaseMapper查询应用卡号、激活状态、商户部门范围、用户、商户、勾选主键及排除用户等筛选条件, + *

查询应用卡号、激活状态、商户部门范围、用户(单个 userId 或集合 userIds)、商户、勾选主键及排除用户等筛选条件, * 并按饭卡顺序、记录主键倒序返回稳定分页;未绑定及硬件激活条件沿用现有 1/0 业务语义。 * 部门树条件已在服务层按用户表当前部门解析为用户主键,此处只按用户维度过滤, * {@code dto.deptIds} 仅作为数据权限圈定的商户部门快照范围。

* * @param page 页码、每页数量及是否统计总数的分页参数 - * @param dto 开卡页面或导出任务冻结后的筛选条件 + * @param dto 开卡页面或导出任务冻结后的筛选条件 * @return 当前数据权限范围内的开卡记录分页,记录转换为 {@link WalletActiveVo} */ default Page scopePageList(Page page, WalletActiveDto dto) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .like(ObjectUtil.isNotEmpty(dto.getCardNumber()), WalletActiveEntity::getCardNumber, dto.getCardNumber()) + .eq(ObjectUtil.isNotEmpty(dto.getMerchantId()), WalletActiveEntity::getMerchantId, dto.getMerchantId()) .eq(ObjectUtil.isNotEmpty(dto.getIsActiveHardware()), WalletActiveEntity::getIsActiveHardware, dto.getIsActiveHardware()) .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), WalletActiveEntity::getDeptId, dto.getDeptId()) + // 单个用户主键条件;与 userIds 集合条件同时存在时取交集 + .eq(ObjectUtil.isNotEmpty(dto.getUserId()), WalletActiveEntity::getUserId, dto.getUserId()) .in(ObjectUtil.isNotEmpty(dto.getUserIds()), WalletActiveEntity::getUserId, dto.getUserIds()) .notIn(ObjectUtil.isNotEmpty(dto.getExcludeUserIds()), WalletActiveEntity::getUserId, dto.getExcludeUserIds()) .in(ObjectUtil.isNotEmpty(dto.getMerchantIdList()), WalletActiveEntity::getMerchantId, dto.getMerchantIdList())