feat:钱包流水"显示系统"

This commit is contained in:
dzc committed 2026-10-09 13:01:04 +08:00
1 parent b4109f55d2
commit bf5db4bbb9
2 files changed
+15 -8

No files matched your search

@@ -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<SysDept> 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 校验失败时返回逐行错误;校验通过时返回异步任务初始进度
*/
@@ -32,20 +32,23 @@ public interface WalletActiveMapper extends PjcloudBaseMapper<WalletActiveEntity
/**
* 按当前操作者数据权限分页查询开卡记录。
*
* <p>查询应用卡号、激活状态、商户部门范围、用户、商户、勾选主键及排除用户等筛选条件,
* <p>查询应用卡号、激活状态、商户部门范围、用户(单个 userId 或集合 userIds)、商户、勾选主键及排除用户等筛选条件,
* 并按饭卡顺序、记录主键倒序返回稳定分页;未绑定及硬件激活条件沿用现有 1/0 业务语义。
* 部门树条件已在服务层按用户表当前部门解析为用户主键,此处只按用户维度过滤,
* {@code dto.deptIds} 仅作为数据权限圈定的商户部门快照范围。</p>
*
* @param page 页码、每页数量及是否统计总数的分页参数
* @param dto 开卡页面或导出任务冻结后的筛选条件
* @param dto 开卡页面或导出任务冻结后的筛选条件
* @return 当前数据权限范围内的开卡记录分页,记录转换为 {@link WalletActiveVo}
*/
default Page<WalletActiveVo> scopePageList(Page page, WalletActiveDto dto) {
LambdaQueryWrapper<WalletActiveEntity> wrapper = new LambdaQueryWrapper<WalletActiveEntity>()
.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())