From a04e7b51830287d260a8e83f11e58a442f258ce3 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 23 Aug 2025 14:34:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(VideoRepository):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=87=AD=E8=AF=81=E6=A3=80=E6=B5=8B=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在判断视频是否购买的逻辑中添加了凭证检测 - 使用 DiscountDetectionContext 和 IVoucherService 来获取用户凭证信息 - 如果用户拥有全场免费的凭证,则认为已购买视频 --- .../ycwl/basic/repository/VideoRepository.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/ycwl/basic/repository/VideoRepository.java b/src/main/java/com/ycwl/basic/repository/VideoRepository.java index 5d3c5ab..c0d4ae6 100644 --- a/src/main/java/com/ycwl/basic/repository/VideoRepository.java +++ b/src/main/java/com/ycwl/basic/repository/VideoRepository.java @@ -3,6 +3,10 @@ package com.ycwl.basic.repository; import com.ycwl.basic.biz.PriceBiz; import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO; import com.ycwl.basic.model.mobile.order.IsBuyRespVO; +import com.ycwl.basic.pricing.dto.DiscountDetectionContext; +import com.ycwl.basic.pricing.dto.VoucherInfo; +import com.ycwl.basic.pricing.enums.VoucherDiscountType; +import com.ycwl.basic.pricing.service.IVoucherService; import com.ycwl.basic.utils.JacksonUtil; import com.ycwl.basic.mapper.VideoMapper; import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity; @@ -15,6 +19,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.math.BigDecimal; +import java.util.List; import java.util.concurrent.TimeUnit; @Component @@ -29,6 +34,8 @@ public class VideoRepository { @Autowired @Lazy private PriceBiz priceBiz; + @Autowired + private IVoucherService iVoucherService; public VideoEntity getVideo(Long videoId) { if (redisTemplate.hasKey(String.format(VIDEO_CACHE_KEY, videoId))) { @@ -106,6 +113,14 @@ public class VideoRepository { if (buy.isBuy()) { return true; } + // 确认人员faceId是否有券码 + List voucherDetails = iVoucherService.getVoucherDetails(memberVideo.getFaceId(), memberVideo.getScenicId()); + if (voucherDetails != null && !voucherDetails.isEmpty()) { + VoucherInfo voucherInfo = voucherDetails.getFirst(); + if (voucherInfo.getDiscountType().equals(VoucherDiscountType.FREE_ALL)) { + isBuy = true; + } + } return isBuy; }