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;