From 7ca59a1b0b2ed94a1a3b9185bd758fe9f64cb7e4 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 20 Sep 2025 04:51:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(PriceBiz):=20=E6=96=B0=E5=A2=9E=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=E5=B9=B6=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 GoodsListRespVO 中的 goodsType 字段,用于区分不同商品类型。补充商品列表中“录像集”与“照片集”的类型标识。 在 PriceBiz 中注入 FaceService 并延迟加载,优化依赖关系。 根据内容购买状态判断是否整体购买,增强一口价商品的处理逻辑。 --- .../java/com/ycwl/basic/biz/PriceBiz.java | 21 +++++++++++++++++-- .../basic/controller/pc/CouponController.java | 2 +- .../model/pc/price/resp/GoodsListRespVO.java | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/PriceBiz.java b/src/main/java/com/ycwl/basic/biz/PriceBiz.java index 2b19451b..6aabab2d 100644 --- a/src/main/java/com/ycwl/basic/biz/PriceBiz.java +++ b/src/main/java/com/ycwl/basic/biz/PriceBiz.java @@ -1,6 +1,8 @@ package com.ycwl.basic.biz; import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO; +import com.ycwl.basic.model.mobile.order.IsBuyRespVO; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.coupon.entity.CouponEntity; import com.ycwl.basic.model.pc.couponRecord.resp.CouponRecordQueryResp; import com.ycwl.basic.model.pc.face.entity.FaceEntity; @@ -15,14 +17,17 @@ import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.PriceRepository; import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.TemplateRepository; +import com.ycwl.basic.service.pc.FaceService; import org.apache.commons.lang3.Strings; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; @Component @@ -38,6 +43,9 @@ public class PriceBiz { @Autowired private FaceRepository faceRepository; @Autowired + @Lazy + private FaceService faceService; + @Autowired private CouponBiz couponBiz; public List listGoodsByScenic(Long scenicId) { @@ -48,15 +56,16 @@ public class PriceBiz { GoodsListRespVO goods = new GoodsListRespVO(); goods.setGoodsId(template.getId()); goods.setGoodsName(template.getName()); + goods.setGoodsType(0); return goods; }).forEach(goodsList::add); ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId); if (scenicConfig != null) { if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceVideo())) { - goodsList.add(new GoodsListRespVO(1L, "录像集")); + goodsList.add(new GoodsListRespVO(1L, "录像集", 1)); } if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceImage())) { - goodsList.add(new GoodsListRespVO(2L, "照片集")); + goodsList.add(new GoodsListRespVO(2L, "照片集", 2)); } } return goodsList; @@ -140,6 +149,14 @@ public class PriceBiz { respVO.setBuy(Integer.valueOf(1).equals(orderEntity.getStatus())); } } + if (type == -1 && !respVO.isBuy()) { + // 查找所有内容是否购买。 + List list = faceService.faceContentList(faceId); + boolean notBuy = list.stream().anyMatch(item -> Integer.valueOf(0).equals(item.getIsBuy())); + if (!notBuy) { + respVO.setBuy(true); + } + } respVO.setShare(false); if (face == null || !face.getMemberId().equals(userId)) { respVO.setShare(true); diff --git a/src/main/java/com/ycwl/basic/controller/pc/CouponController.java b/src/main/java/com/ycwl/basic/controller/pc/CouponController.java index 4603caf2..4d88410f 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/CouponController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/CouponController.java @@ -25,7 +25,7 @@ public class CouponController { @GetMapping("/{scenicId}/goodsList") public ApiResponse> scenicGoodsList(@PathVariable Long scenicId) { List data = priceBiz.listGoodsByScenic(scenicId); - data.add(new GoodsListRespVO(-1L, "一口价")); + data.add(new GoodsListRespVO(-1L, "一口价", -1)); return ApiResponse.success(data); } diff --git a/src/main/java/com/ycwl/basic/model/pc/price/resp/GoodsListRespVO.java b/src/main/java/com/ycwl/basic/model/pc/price/resp/GoodsListRespVO.java index e07cec78..1f91ed46 100644 --- a/src/main/java/com/ycwl/basic/model/pc/price/resp/GoodsListRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/price/resp/GoodsListRespVO.java @@ -10,4 +10,5 @@ import lombok.NoArgsConstructor; public class GoodsListRespVO { private Long goodsId; private String goodsName; + private Integer goodsType; }