From 18a9f86a8c1fdb6c42c4212dcaa1de437f6f4861 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 15 十月 2025 14:25:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/user_action' into user_action

---
 buyer-api/src/main/java/cn/lili/controller/order/CartController.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/buyer-api/src/main/java/cn/lili/controller/order/CartController.java b/buyer-api/src/main/java/cn/lili/controller/order/CartController.java
index 70fc330..22b55d5 100644
--- a/buyer-api/src/main/java/cn/lili/controller/order/CartController.java
+++ b/buyer-api/src/main/java/cn/lili/controller/order/CartController.java
@@ -7,13 +7,21 @@
 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.order.cart.entity.dto.BuyBackDTO;
 import cn.lili.modules.order.cart.entity.dto.TradeDTO;
 import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
+import cn.lili.modules.order.cart.entity.vo.BindingTemplateParam;
 import cn.lili.modules.order.cart.entity.vo.TradeParams;
 import cn.lili.modules.order.cart.service.CartService;
+import cn.lili.modules.order.order.entity.dos.Order;
 import cn.lili.modules.order.order.entity.vo.ReceiptVO;
+import cn.lili.modules.order.order.service.OrderService;
 import cn.lili.utils.COSUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -22,6 +30,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -29,6 +38,7 @@
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -51,7 +61,12 @@
     @Autowired
     private COSUtil cosUtil;
 
+    @Autowired
+    private OrderService orderService;
 
+
+    @Autowired
+    private UserCheckTemplateService userCheckTemplateService;
     @ApiOperation(value = "鍚戣喘鐗╄溅涓坊鍔犱竴涓骇鍝�")
     @PostMapping
     @ApiImplicitParams({
@@ -352,4 +367,49 @@
             throw e;
         }
     }
+
+    @PreventDuplicateSubmissions
+    @ApiOperation(value = "鏍规嵁浜ゆ槗缂栧彿杩涜妯℃澘鏁版嵁缁戝畾")
+    @PostMapping("/binding/template")
+    @Transactional(rollbackFor = Exception.class)
+    public ResultMessage<Object> bindingTemplate(@RequestBody BindingTemplateParam bindingTemplateParam) {
+        List<Order> byTradeSn = orderService.getByTradeSn(bindingTemplateParam.getSn());
+        if (byTradeSn.isEmpty()) {
+            log.info("褰撳墠璁㈠崟涓嶅瓨鍦▄}", bindingTemplateParam.getSn());
+            return ResultUtil.error(ResultCode.ORDER_ERROR);
+        }
+        if (byTradeSn.size() >1) {
+            log.info("褰撳墠璁㈠崟鏁伴噺寮傚父{}", bindingTemplateParam.getSn());
+            return ResultUtil.error(ResultCode.ORDER_ERROR);
+        }
+        Order order = byTradeSn.get(0);
+        String sn = order.getSn();
+        LambdaQueryWrapper<UserCheckTemplate> eq = Wrappers.<UserCheckTemplate>lambdaQuery().eq(UserCheckTemplate::getOrderSn, sn);
+        List<UserCheckTemplate> list = userCheckTemplateService.list(eq);
+        if (!list.isEmpty()) {
+            log.info("璁㈠崟涓嶈兘閲嶅缁戝畾妯℃澘{}",bindingTemplateParam.getSn());
+            return ResultUtil.error(ResultCode.ORDER_ERROR);
+        }
+        //瀹氬埗鍟嗗搧鐗规畩澶勭悊
+        if (StringUtils.isNotBlank(bindingTemplateParam.getTemplateId())){
+            List<CustomizeTemplateForm> templateForm = bindingTemplateParam.getTemplateForm();
+            List<UserCheckTemplate> customizeTemplateForms = new ArrayList<>();
+            for (CustomizeTemplateForm customizeTemplateForm : templateForm) {
+                UserCheckTemplate userCheckTemplate = new UserCheckTemplate();
+                userCheckTemplate.setContentType(customizeTemplateForm.getContentType());
+                userCheckTemplate.setChooseImg(bindingTemplateParam.getChooseImage());
+                userCheckTemplate.setChooseImgId(bindingTemplateParam.getChooseImageId());
+                userCheckTemplate.setTemplateName(bindingTemplateParam.getTemplateName());
+                userCheckTemplate.setTemplateId(bindingTemplateParam.getTemplateId());
+                userCheckTemplate.setOrderSn(sn);
+                userCheckTemplate.setSubId(customizeTemplateForm.getId());
+                userCheckTemplate.setSubName(customizeTemplateForm.getTemplateTitle());
+                userCheckTemplate.setContent(customizeTemplateForm.getValue());
+                customizeTemplateForms.add(userCheckTemplate);
+            }
+            userCheckTemplateService.saveBatch(customizeTemplateForms);
+
+        }
+        return ResultUtil.success();
+    }
 }

--
Gitblit v1.8.0