From 1110b5409b048dc1897039eeef87fab34bb4f6b2 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 14 Feb 2026 02:13:35 +0800 Subject: [PATCH] =?UTF-8?q?refactor(voucher):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=88=B8=E7=A0=81=E9=A2=86=E5=8F=96=E6=8E=A5=E5=8F=A3=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=99=AF=E5=8C=BAID=E5=8F=82=E6=95=B0=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 VoucherClaimReq 中的 scenicId 字段 - 移除券码领取接口中对景区ID的空值检查 - 更新查询条件,不再按景区ID过滤券码 - 修改错误提示信息为"券码不存在" - 调整领券权限校验逻辑,使用券码关联的景区ID进行验证 --- .../com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java | 1 - .../pricing/service/impl/VoucherCodeServiceImpl.java | 8 ++------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java b/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java index 7586ec15..4bb277f4 100644 --- a/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java +++ b/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java @@ -4,6 +4,5 @@ import lombok.Data; @Data public class VoucherClaimReq { - private Long scenicId; private String code; } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java index 6209afd6..9af9ed69 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java +++ b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java @@ -74,9 +74,6 @@ public void generateVoucherCodes(Long batchId, Long scenicId, Integer count) { @Override @Transactional public VoucherCodeResp claimVoucher(VoucherClaimReq req) { - if (req.getScenicId() == null) { - throw new BizException(400, "景区ID不能为空"); - } if (!StringUtils.hasText(req.getCode())) { throw new BizException(400, "券码不能为空"); } @@ -86,19 +83,18 @@ public VoucherCodeResp claimVoucher(VoucherClaimReq req) { // 验证券码是否存在且未被领取 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PriceVoucherCode::getCode, req.getCode()) - .eq(PriceVoucherCode::getScenicId, req.getScenicId()) .eq(PriceVoucherCode::getDeleted, 0); PriceVoucherCode voucherCode = voucherCodeMapper.selectOne(wrapper); if (voucherCode == null) { - throw new BizException(400, "券码不存在或不属于该景区"); + throw new BizException(400, "券码不存在"); } if (!Objects.equals(voucherCode.getStatus(), VoucherCodeStatus.UNCLAIMED.getCode())) { throw new BizException(400, "券码已被领取或已使用"); } - if (!canClaimVoucher(userId, req.getScenicId())) { + if (!canClaimVoucher(userId, voucherCode.getScenicId())) { throw new BizException(400, "该用户在此景区已领取过券码"); }