From 829ab50b03c04d3e21c83249b79e407726a5daf6 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 3 Sep 2025 14:34:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(voucher):=20=E4=BC=98=E5=8C=96=E4=BC=98?= =?UTF-8?q?=E6=83=A0=E5=88=B8=E6=89=93=E5=8D=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加景区配置管理器验证逻辑,确保只有指定的代理可以打印优惠券 -优化代码结构,提高可读性和可维护性 --- .../pricing/service/impl/VoucherPrintServiceImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherPrintServiceImpl.java b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherPrintServiceImpl.java index 41b6dcf..72ad396 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherPrintServiceImpl.java +++ b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherPrintServiceImpl.java @@ -81,6 +81,14 @@ public class VoucherPrintServiceImpl implements VoucherPrintService { // 验证faceId是否属于当前用户 validateFaceOwnership(request.getFaceId(), currentUserId); + + ScenicConfigManager config = scenicRepository.getScenicConfigManager(face.getScenicId()); + Long brokerId = config.getLong("voucher_broker_id"); + if (brokerId != null) { + if (!request.getBrokerId().equals(brokerId)) { + return null; + } + } // 使用Redis分布式锁防止重复打印 String lockKey = String.format(PRINT_LOCK_KEY, request.getFaceId(), request.getBrokerId(), request.getScenicId()); @@ -107,7 +115,7 @@ public class VoucherPrintServiceImpl implements VoucherPrintService { if (availableVoucher == null) { throw new BaseException("暂无可用优惠券"); } - + // 生成流水号 String code = generateCode();