From a3bc9357b52ff21207794abe50c37172e0fee389 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 28 Jul 2025 22:36:30 +0800 Subject: [PATCH] isBuy --- .../java/com/ycwl/basic/biz/OrderBiz.java | 3 +++ .../basic/repository/VideoRepository.java | 22 ++++++++++++++++++- .../service/mobile/impl/GoodsServiceImpl.java | 19 ++++++++++------ .../service/pc/impl/FaceServiceImpl.java | 4 ++++ 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index 2fc611f..6cb7366 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -152,6 +152,9 @@ public class OrderBiz { if (!isBuy) { if (goodsType == 0) { VideoEntity video = videoRepository.getVideo(goodsId); + if (video == null) { + return respVO; + } TaskEntity task = videoTaskRepository.getTaskById(video.getTaskId()); Long templateId = video.getTemplateId(); // -1为整个模板购买 diff --git a/src/main/java/com/ycwl/basic/repository/VideoRepository.java b/src/main/java/com/ycwl/basic/repository/VideoRepository.java index 6ea6edb..5d3c5ab 100644 --- a/src/main/java/com/ycwl/basic/repository/VideoRepository.java +++ b/src/main/java/com/ycwl/basic/repository/VideoRepository.java @@ -1,5 +1,8 @@ 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.utils.JacksonUtil; import com.ycwl.basic.mapper.VideoMapper; import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity; @@ -7,6 +10,7 @@ import com.ycwl.basic.model.pc.video.entity.VideoEntity; import com.ycwl.basic.model.pc.video.resp.VideoRespVO; import com.ycwl.basic.model.task.req.VideoInfoReq; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; @@ -22,6 +26,9 @@ public class VideoRepository { public static final String VIDEO_CACHE_KEY = "video:%s"; public static final String VIDEO_BY_TASK_ID_CACHE_KEY = "video:task:%s"; + @Autowired + @Lazy + private PriceBiz priceBiz; public VideoEntity getVideo(Long videoId) { if (redisTemplate.hasKey(String.format(VIDEO_CACHE_KEY, videoId))) { @@ -86,7 +93,20 @@ public class VideoRepository { if (memberVideo == null) { return false; } - return Integer.valueOf(1).equals(memberVideo.getIsBuy()); + boolean isBuy = Integer.valueOf(1).equals(memberVideo.getIsBuy()); + if (isBuy) { + return isBuy; + } + + // 一口价 + IsBuyBatchRespVO buy = priceBiz.isBuy(userId, memberVideo.getFaceId(), memberVideo.getScenicId(), -1, null); + if (buy == null) { + return false; + } + if (buy.isBuy()) { + return true; + } + return isBuy; } public boolean clearVideoCache(Long videoId) { diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java index 2673034..b618376 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java @@ -269,14 +269,19 @@ public class GoodsServiceImpl implements GoodsService { goodsDetailVO.setFaceId(entity.getFaceId()); goodsDetailVO.setIsBuy(entity.getIsBuy()); if (Integer.valueOf(0).equals(entity.getIsBuy())) { - PriceObj priceObj = orderBiz.queryPrice(videoRespVO.getScenicId(), 0, videoId); - if (priceObj.isFree()) { - goodsDetailVO.setIsBuy(1); + IsBuyRespVO buy = orderBiz.isBuy(userId, videoRespVO.getScenicId(), 0, videoId); + if (!buy.isBuy()) { + PriceObj priceObj = orderBiz.queryPrice(videoRespVO.getScenicId(), 0, videoId); + if (priceObj.isFree()) { + goodsDetailVO.setIsBuy(1); + } else { + goodsDetailVO.setIsBuy(0); + goodsDetailVO.setPrice(priceObj.getPrice().toString()); + goodsDetailVO.setOrigPrice(priceObj.getPrice()); + goodsDetailVO.setSlashPrice(priceObj.getSlashPrice()); + } } else { - goodsDetailVO.setIsBuy(0); - goodsDetailVO.setPrice(priceObj.getPrice().toString()); - goodsDetailVO.setOrigPrice(priceObj.getPrice()); - goodsDetailVO.setSlashPrice(priceObj.getSlashPrice()); + goodsDetailVO.setIsBuy(1); } } } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index 25292ef..b9384bd 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -413,6 +413,10 @@ public class FaceServiceImpl implements FaceService { contentPageVO.setLockType(1); } } + IsBuyRespVO buy = orderBiz.isBuy(userId, contentPageVO.getScenicId(), contentPageVO.getGoodsType(), contentPageVO.getContentId()); + if (buy.isBuy()) { + contentPageVO.setIsBuy(1); + } }); SourceReqQuery sourceReqQuery = new SourceReqQuery();