From b01056d829e406a1cd08a8275810293d041b45b5 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 14 Feb 2026 17:42:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(coupon):=20=E6=B7=BB=E5=8A=A0=E6=99=AF?= =?UTF-8?q?=E5=8C=BAID=E8=BF=87=E6=BB=A4=E5=8A=9F=E8=83=BD=E4=BB=A5?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E5=8F=AF=E7=94=A8=E4=BC=98?= =?UTF-8?q?=E6=83=A0=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在getUserCoupons接口中添加scenicId参数支持 - 修改couponService实现以按景区ID过滤优惠券 - 添加空值检查跳过无效配置的优惠券 - 更新接口文档添加scenicId参数说明 --- .../pricing/controller/PriceCalculationController.java | 4 ++-- .../com/ycwl/basic/pricing/service/ICouponService.java | 3 ++- .../basic/pricing/service/impl/CouponServiceImpl.java | 10 +++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ycwl/basic/pricing/controller/PriceCalculationController.java b/src/main/java/com/ycwl/basic/pricing/controller/PriceCalculationController.java index 5b572b83..8651a77a 100644 --- a/src/main/java/com/ycwl/basic/pricing/controller/PriceCalculationController.java +++ b/src/main/java/com/ycwl/basic/pricing/controller/PriceCalculationController.java @@ -58,13 +58,13 @@ public class PriceCalculationController { * 查询用户可用优惠券(包含领取记录信息) */ @GetMapping("/coupons/my-coupons") - public ApiResponse> getUserCoupons() { + public ApiResponse> getUserCoupons(@RequestParam(required = false) String scenicId) { Long userId = getUserId(); if (userId == null) { return ApiResponse.fail("用户未登录"); } - List coupons = couponService.getUserAvailableCoupons(userId); + List coupons = couponService.getUserAvailableCoupons(userId, scenicId); return ApiResponse.success(coupons); } diff --git a/src/main/java/com/ycwl/basic/pricing/service/ICouponService.java b/src/main/java/com/ycwl/basic/pricing/service/ICouponService.java index 23683382..795066f5 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/ICouponService.java +++ b/src/main/java/com/ycwl/basic/pricing/service/ICouponService.java @@ -59,9 +59,10 @@ public interface ICouponService { * 查询用户可用优惠券(包含领取记录信息) * * @param userId 用户ID + * @param scenicId 景区ID,传入时仅返回该景区可用的优惠券,NULL时返回全部 * @return 用户优惠券列表(包含领取记录+优惠券配置) */ - List getUserAvailableCoupons(Long userId); + List getUserAvailableCoupons(Long userId, String scenicId); /** * 领取优惠券(内部调用方法) diff --git a/src/main/java/com/ycwl/basic/pricing/service/impl/CouponServiceImpl.java b/src/main/java/com/ycwl/basic/pricing/service/impl/CouponServiceImpl.java index cfaf3ca4..a9ce5155 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/impl/CouponServiceImpl.java +++ b/src/main/java/com/ycwl/basic/pricing/service/impl/CouponServiceImpl.java @@ -295,15 +295,19 @@ public class CouponServiceImpl implements ICouponService { } @Override - public List getUserAvailableCoupons(Long userId) { + public List getUserAvailableCoupons(Long userId, String scenicId) { List records = couponClaimRecordMapper.selectUserAvailableCoupons(userId); List coupons = new ArrayList<>(); for (PriceCouponClaimRecord record : records) { PriceCouponConfig config = couponConfigMapper.selectById(record.getCouponId()); - if (config != null) { - coupons.add(buildUserCouponResp(record, config)); + if (config == null) { + continue; } + if (scenicId != null && config.getScenicId() != null && !scenicId.equals(config.getScenicId())) { + continue; + } + coupons.add(buildUserCouponResp(record, config)); } return coupons;