From fd130c471fd8b18b7b9491d386ffebe952400a69 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 21 Nov 2025 22:15:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E6=9C=AA?= =?UTF-8?q?=E6=9D=A5=E6=A8=A1=E6=9D=BF=E4=B8=80=E5=8F=A3=E4=BB=B7=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 IsBuyBatchRespVO 类以支持批量购买响应 - 实现视频模板买断逻辑,优先检查模板是否已购买 - 在商品类型为0时,查询视频模板并判断用户是否已购买 - 若已购买,直接返回订单ID及购买状态,跳过价格查询 - 保留原有价格查询逻辑作为兜底方案 --- src/main/java/com/ycwl/basic/biz/OrderBiz.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index 062d923b..5776baa8 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -6,6 +6,7 @@ import com.ycwl.basic.mapper.OrderMapper; import com.ycwl.basic.mapper.SourceMapper; import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.mapper.VideoMapper; +import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO; import com.ycwl.basic.model.mobile.order.IsBuyRespVO; import com.ycwl.basic.model.mobile.order.PriceObj; import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; @@ -180,6 +181,20 @@ public class OrderBiz { respVO.setSlashPrice(BigDecimal.ZERO); return respVO; } + // 未来模板一口价 + if (goodsType == 0) { + // 视频,可以买断模板 + VideoEntity video = videoRepository.getVideo(goodsId); + if (video != null && video.getTemplateId() != null) { + OrderEntity templateBuy = orderMapper.getUserBuyFaceItem(memberId, faceId, -1, video.getTemplateId()); + if (templateBuy != null) { + respVO.setOrderId(templateBuy.getId()); + respVO.setBuy(true); + respVO.setFree(false); + return respVO; + } + } + } PriceObj priceObj = queryPrice(scenicId, goodsType, goodsId); if (priceObj == null) { return respVO;