From 625ad910c91179f8e955a3520b1e9b22f7f6150b Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 19 Nov 2025 15:08:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(printer):=20=E6=B7=BB=E5=8A=A0=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=E6=89=93=E5=8D=B0=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在PrinterMapper中新增countFacePhoto方法用于统计用户打印素材数量 - 创建GoodsDetailPrintSceneVO类继承GoodsDetailVO并添加inList字段 - 修改GoodsReqQuery类添加scene字段用于标识打印场景 - 在GoodsServiceImpl中注入PrinterMapper并实现打印状态判断逻辑 - 在PrinterMapper.xml中添加对应的SQL查询语句 - 移除BaseContextHandler引入,优化代码依赖关系 --- src/main/java/com/ycwl/basic/mapper/PrinterMapper.java | 2 +- .../model/mobile/goods/GoodsDetailPrintSceneVO.java | 10 ++++++++++ .../ycwl/basic/model/mobile/goods/GoodsReqQuery.java | 1 + .../basic/service/mobile/impl/GoodsServiceImpl.java | 10 ++++++++-- src/main/resources/mapper/PrinterMapper.xml | 3 +++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailPrintSceneVO.java diff --git a/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java b/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java index 1b49a219..996c4684 100644 --- a/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java @@ -35,7 +35,7 @@ public interface PrinterMapper { PrintTaskEntity getTaskById(Integer id); List listByScenicId(@Param("scenicId") Long scenicId); - + int countFacePhoto(Long scenicId, Long faceId, Long sourceId); List listRelation(@Param("memberId") Long memberId, @Param("scenicId") Long scenicId); List listRelationByFaceId(Long memberId, Long scenicId, Long faceId); diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailPrintSceneVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailPrintSceneVO.java new file mode 100644 index 00000000..7662c0e3 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailPrintSceneVO.java @@ -0,0 +1,10 @@ +package com.ycwl.basic.model.mobile.goods; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class GoodsDetailPrintSceneVO extends GoodsDetailVO{ + private Boolean inList; +} diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java index fef01d84..7a710cf5 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java @@ -17,4 +17,5 @@ public class GoodsReqQuery { private Long scenicId; // 源素材商品类型 1视频 2图像 private Integer sourceType; + private String scene; } 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 5ce3b9d9..9598d7d2 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 @@ -10,7 +10,6 @@ import com.ycwl.basic.utils.JacksonUtil; import com.ycwl.basic.biz.CouponBiz; import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.biz.TaskStatusBiz; -import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.StorageConstant; import com.ycwl.basic.image.watermark.ImageWatermarkFactory; import com.ycwl.basic.image.watermark.entity.WatermarkInfo; @@ -56,6 +55,7 @@ import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.WxMpUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Strings; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -109,6 +109,8 @@ public class GoodsServiceImpl implements GoodsService { private VideoUpdateConfig videoUpdateConfig; @Autowired private MemberRelationRepository memberRelationRepository; + @Autowired + private PrinterMapper printerMapper; public ApiResponse> goodsList(GoodsReqQuery query) { Long scenicId = query.getScenicId(); @@ -218,7 +220,7 @@ public class GoodsServiceImpl implements GoodsService { //图片编号 int i=1; for (SourceRespVO sourceRespVO : list) { - GoodsDetailVO goodsDetailVO = new GoodsDetailVO(); + GoodsDetailPrintSceneVO goodsDetailVO = new GoodsDetailPrintSceneVO(); goodsDetailVO.setFaceId(sourceRespVO.getFaceId()); goodsDetailVO.setGoodsId(sourceRespVO.getId()); String shootingTime = DateUtil.format(sourceRespVO.getCreateTime(), "yyyy.MM.dd HH:mm:ss"); @@ -261,6 +263,10 @@ public class GoodsServiceImpl implements GoodsService { goodsDetailVO.setUrl(sourceRespVO.getUrl()); goodsDetailVO.setCreateTime(sourceRespVO.getCreateTime()); goodsDetailVO.setIsFree(sourceRespVO.getIsFree()); + if (Strings.CI.equals("print", query.getScene())) { + // 查询该素材是否在用户打印列表中 + goodsDetailVO.setInList(printerMapper.countFacePhoto(sourceRespVO.getScenicId(), face.getId(), sourceRespVO.getId()) > 0); + } goodsDetailVOList.add(goodsDetailVO); i++; } diff --git a/src/main/resources/mapper/PrinterMapper.xml b/src/main/resources/mapper/PrinterMapper.xml index 374dfd7e..9a8664e4 100644 --- a/src/main/resources/mapper/PrinterMapper.xml +++ b/src/main/resources/mapper/PrinterMapper.xml @@ -68,6 +68,9 @@ +