feat(order): 添加未来模板一口价购买逻辑

- 引入 IsBuyBatchRespVO 类以支持批量购买响应
- 实现视频模板买断逻辑,优先检查模板是否已购买
- 在商品类型为0时,查询视频模板并判断用户是否已购买
- 若已购买,直接返回订单ID及购买状态,跳过价格查询
- 保留原有价格查询逻辑作为兜底方案
This commit is contained in:
2025-11-21 22:15:17 +08:00
parent c47c24a39a
commit fd130c471f

View File

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