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; }