From 7bd8ca216a8b507d3545fe72a8776467938b44f7 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期六, 11 十月 2025 16:35:34 +0800
Subject: [PATCH] 定制模块

---
 buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java                       |   34 ++++++++
 framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java |   29 +++++++
 framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java           |    3 
 buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java                      |   11 ++
 framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java                           |   18 ++++
 framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java                       |    9 ++
 framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java                  |   27 ++++++
 framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java            |    3 
 framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java          |    2 
 framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml                        |   32 ++++++++
 framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java              |   19 ++++
 11 files changed, 185 insertions(+), 2 deletions(-)

diff --git a/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java b/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java
index 217afee..9fc0b62 100644
--- a/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/payment/CashierController.java
@@ -3,7 +3,11 @@
 import cn.lili.common.enums.ResultCode;
 import cn.lili.common.enums.ResultUtil;
 import cn.lili.common.exception.ServiceException;
+import cn.lili.common.utils.StringUtils;
 import cn.lili.common.vo.ResultMessage;
+import cn.lili.modules.lmk.domain.entity.UserCheckTemplate;
+import cn.lili.modules.lmk.domain.form.CustomizeTemplateForm;
+import cn.lili.modules.lmk.service.UserCheckTemplateService;
 import cn.lili.modules.payment.kit.CashierSupport;
 import cn.lili.modules.payment.kit.dto.PayParam;
 import cn.lili.modules.payment.entity.enums.PaymentClientEnum;
@@ -15,11 +19,14 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 涔板绔�,鏀堕摱鍙版帴鍙�
@@ -36,14 +43,37 @@
     @Autowired
     private CashierSupport cashierSupport;
 
+    @Autowired
+    private UserCheckTemplateService  userCheckTemplateService;
+
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "client", value = "瀹㈡埛绔被鍨�", paramType = "path", allowableValues = "PC,H5,WECHAT_MP,APP")
     })
-    @GetMapping(value = "/tradeDetail")
+    @PostMapping(value = "/tradeDetail")
     @ApiOperation(value = "鑾峰彇鏀粯璇︽儏")
-    public ResultMessage paymentParams(@Validated PayParam payParam) {
+    @Transactional(rollbackFor = Exception.class)
+    public ResultMessage paymentParams(@Validated @RequestBody PayParam payParam) {
         CashierParam cashierParam = cashierSupport.cashierParam(payParam);
+        //瀹氬埗鍟嗗搧鐗规畩澶勭悊
+        if (StringUtils.isNotBlank(payParam.getTemplateId())){
+            List<CustomizeTemplateForm> templateForm = payParam.getTemplateForm();
+            List<UserCheckTemplate> customizeTemplateForms = new ArrayList<>();
+            String orderSns = cashierParam.getOrderSns();
+            for (CustomizeTemplateForm customizeTemplateForm : templateForm) {
+                UserCheckTemplate userCheckTemplate = new UserCheckTemplate();
+                userCheckTemplate.setChooseImg(payParam.getChooseImage());
+                userCheckTemplate.setTemplateName(payParam.getTemplateName());
+                userCheckTemplate.setTemplateId(payParam.getTemplateId());
+                userCheckTemplate.setOrderSn(orderSns);
+                userCheckTemplate.setSubId(customizeTemplateForm.getId());
+                userCheckTemplate.setSubName(customizeTemplateForm.getTemplateTitle());
+                userCheckTemplate.setContent(customizeTemplateForm.getValue());
+                customizeTemplateForms.add(userCheckTemplate);
+            }
+            userCheckTemplateService.saveBatch(customizeTemplateForms);
+
+        }
         return ResultUtil.data(cashierParam);
     }
 
diff --git a/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java
index 349ac8d..28df163 100644
--- a/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/store/StoreBuyerController.java
@@ -13,6 +13,8 @@
 import cn.lili.modules.goods.service.GoodsService;
 import cn.lili.modules.goods.service.GoodsUnitService;
 import cn.lili.modules.goods.service.StoreGoodsLabelService;
+import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate;
+import cn.lili.modules.lmk.service.GoodsCustomizeTemplateService;
 import cn.lili.modules.store.entity.dos.Store;
 import cn.lili.modules.store.entity.dto.StoreBankDTO;
 import cn.lili.modules.store.entity.dto.StoreCompanyDTO;
@@ -75,6 +77,9 @@
 
     @Autowired
     private GoodsService goodsService;
+
+    @Autowired
+    private GoodsCustomizeTemplateService goodsCustomizeTemplateService;
 
     @ApiOperation(value = "鑾峰彇搴楅摵鍒楄〃鍒嗛〉")
     @GetMapping
@@ -170,4 +175,10 @@
         goodsService.addGoods(goodsOperationDTO);
         return ResultUtil.success();
     }
+
+    @ApiOperation(value = "瀹氬埗鍟嗗搧鑾峰彇妯℃澘淇℃伅")
+    @GetMapping(value = "/getTemplate/{skuId}")
+    public Result getTemplate(@PathVariable String skuId) {
+        return goodsCustomizeTemplateService.getCustomizeTemplate(skuId);
+    }
 }
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java
new file mode 100644
index 0000000..0841a94
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/CustomizeTemplateForm.java
@@ -0,0 +1,19 @@
+package cn.lili.modules.lmk.domain.form;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+@Data
+public class CustomizeTemplateForm {
+
+
+    /** 妯℃澘id */
+    private String id;
+
+    /** 瀛愭ā鏉挎爣棰� */
+    private String templateTitle;
+
+    /** 瀛愭ā鏉垮��*/
+    private String value;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java
new file mode 100644
index 0000000..7bc083d
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CustomizeTemplateVO.java
@@ -0,0 +1,27 @@
+package cn.lili.modules.lmk.domain.vo;
+
+import cn.lili.modules.lmk.domain.entity.TemplateConstomizeTitle;
+import cn.lili.modules.lmk.domain.entity.TemplateImgs;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CustomizeTemplateVO {
+    /**
+     * 妯℃澘id
+     */
+    private String id;
+    /**
+     * 妯℃澘鍚嶇О
+     */
+    private String name;
+    /**
+     * 鍥剧墖鍒楄〃
+     */
+    private List<TemplateImgs> templateImgs;
+    /**
+     * 鏍囬
+     */
+    private List<TemplateConstomizeTitle>  templateConstomizeTitles;
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java
index 50805c9..0493a13 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/GoodsCustomizeTemplateMapper.java
@@ -1,6 +1,7 @@
 package cn.lili.modules.lmk.mapper;
 
 import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate;
+import cn.lili.modules.lmk.domain.vo.CustomizeTemplateVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO;
@@ -31,4 +32,6 @@
     */
     IPage getPage(IPage page, @Param("query") GoodsCustomizeTemplateQuery query);
 
+    CustomizeTemplateVO getCustomizeTemplate(@Param("id") String id);
+
 }
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java b/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
index d163c27..4e17f8e 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/GoodsCustomizeTemplateService.java
@@ -62,4 +62,6 @@
      * @return
      */
     Result all();
+
+    Result getCustomizeTemplate(String id);
 }
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
index 7a9c203..46ad265 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/GoodsCustomizeTemplateServiceImpl.java
@@ -1,5 +1,11 @@
 package cn.lili.modules.lmk.service.impl;
 
+import cn.lili.common.utils.StringUtils;
+import cn.lili.modules.goods.entity.dos.GoodsSku;
+import cn.lili.modules.goods.service.GoodsSkuService;
+import cn.lili.modules.lmk.domain.entity.TemplateImgs;
+import cn.lili.modules.lmk.domain.vo.CustomizeTemplateVO;
+import cn.lili.utils.COSUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import cn.lili.modules.lmk.domain.entity.GoodsCustomizeTemplate;
 import cn.lili.modules.lmk.mapper.GoodsCustomizeTemplateMapper;
@@ -9,6 +15,7 @@
 import cn.lili.modules.lmk.domain.form.GoodsCustomizeTemplateForm;
 import cn.lili.modules.lmk.domain.vo.GoodsCustomizeTemplateVO;
 import cn.lili.modules.lmk.domain.query.GoodsCustomizeTemplateQuery;
+import jodd.util.StringUtil;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import cn.lili.utils.PageUtil;
@@ -30,6 +37,9 @@
 
     private final GoodsCustomizeTemplateMapper goodsCustomizeTemplateMapper;
 
+    private final GoodsSkuService goodsSkuService;
+
+    private final COSUtil cosUtil;
     /**
      * 娣诲姞
      * @param form
@@ -116,4 +126,23 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    public Result getCustomizeTemplate(String id) {
+        GoodsSku goodsSku = goodsSkuService.getById(id);
+        String templateId = goodsSku.getCustomizeTemplateId();
+        CustomizeTemplateVO customizeTemplate = baseMapper.getCustomizeTemplate(templateId);
+        if (customizeTemplate != null) {
+            List<TemplateImgs> templateImgs = customizeTemplate.getTemplateImgs();
+            if (!templateImgs.isEmpty()) {
+                for (TemplateImgs templateImg : templateImgs) {
+                    String imgUrl = templateImg.getImgUrl();
+                    if (StringUtils.isNotBlank(imgUrl)&&!imgUrl.contains("http")) {
+                        templateImg.setImgUrl(cosUtil.getPreviewUrl(imgUrl));
+                    }
+                }
+            }
+        }
+        return Result.ok().data(customizeTemplate);
+    }
 }
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
index c39556f..f6e730a 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
@@ -17,6 +17,8 @@
 import cn.lili.modules.order.order.entity.enums.*;
 import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
 import cn.lili.mybatis.BaseEntity;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -191,6 +193,13 @@
      */
     @ApiModelProperty(value = "鏄惁鏄ぜ鍝佸崱")
     private String couponFlag;
+
+    @ApiModelProperty(value ="琛ㄧず铏氭嫙瀹氬埗鍟嗗搧绫诲瀷 鐜版湁绫诲瀷锛氬畾鍒跺晢鍝�")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    /**
+     * @see CustomizeFlagEnum
+     */
+    private String customizeFlag;
     /**
      * 璁㈠崟鍦板潃淇敼鐘舵��
      */
diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
index c3003e8..833fe7f 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -277,6 +277,9 @@
                                 String couponName = skuInfo.getCouponName();
                                 orderItem.setCouponId(couponId);
                                 orderItem.setCouponName(couponName);
+                            }//璁㈠崟涓湁瀹氬埗鍟嗗搧灏嗚鍗曟敼涓哄畾鍒跺晢鍝�
+                            else if (CustomizeFlagEnum.CUSTOMIZE.name().equals(skuInfo.getCustomizeFlag())) {
+                                order.setCustomizeFlag(CustomizeFlagEnum.CUSTOMIZE.name());
                             }
                         }
                         orderItems.add(orderItem);
diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java b/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java
index a0b1f66..df74e53 100644
--- a/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java
+++ b/framework/src/main/java/cn/lili/modules/payment/kit/dto/PayParam.java
@@ -1,10 +1,12 @@
 package cn.lili.modules.payment.kit.dto;
 
+import cn.lili.modules.lmk.domain.form.CustomizeTemplateForm;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.ToString;
 
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 /**
  * 鏀粯鍙傛暟
@@ -29,6 +31,22 @@
     @ApiModelProperty(value = "瀹㈡埛绔被鍨�")
     private String clientType;
 
+    @ApiModelProperty(value = "妯℃澘淇℃伅")
+    private List<CustomizeTemplateForm> templateForm;
+
+    @ApiModelProperty(value = "妯℃澘id")
+    private String templateId;
+
+    @ApiModelProperty(value = "妯℃澘鍚嶇О")
+    private String templateName;
+
+    @ApiModelProperty(value = "閫変腑鍥剧墖")
+    private String chooseImage;
+
+    @ApiModelProperty(value = "閫変腑鍥剧墖Id")
+    private String chooseImageId;
+
+
 
 
 }
diff --git a/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml b/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
index d025c4b..47018a2 100644
--- a/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/GoodsCustomizeTemplateMapper.xml
@@ -37,5 +37,37 @@
         WHERE
             LGCT.delete_flag = 0
     </select>
+    <resultMap id="getCustomizeTemplateMap" type="cn.lili.modules.lmk.domain.vo.CustomizeTemplateVO">
+        <id property="id" column="id"/>
+        <result property="name" column="template_name"/>
+        <collection property="templateImgs" ofType="cn.lili.modules.lmk.domain.entity.TemplateImgs">
+            <id property="id" column="imgId"/>
+            <result property="imgUrl" column="img_url"/>
+        </collection>
+        <collection property="templateConstomizeTitles" ofType="cn.lili.modules.lmk.domain.entity.TemplateConstomizeTitle">
+            <id property="id" column="titleId"/>
+            <result property="contentType" column="content_type"/>
+            <result property="templateTitle" column="template_title"/>
+        </collection>
+    </resultMap>
+    <select id="getCustomizeTemplate" resultMap="getCustomizeTemplateMap">
+        SELECT
+            lgct.id,
+            lgct.template_name,
+            lti.id imgId,
+            lti.img_url,
+            ltct.id titleId,
+            ltct.template_title,
+            ltct.content_type
+        FROM
+            lmk_goods_customize_template lgct
+                JOIN lmk_template_imgs lti ON lti.template_id = lgct.id
+                JOIN lmk_template_constomize_title ltct ON ltct.template_id = lgct.id
+        WHERE
+          lgct.id = #{id}
+          AND lgct.delete_flag = 0
+          AND lti.delete_flag = 0
+          AND ltct.delete_flag = 0
+    </select>
 
 </mapper>

--
Gitblit v1.8.0