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 |  132 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 2 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 005a1c0..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
@@ -1,26 +1,45 @@
 package cn.lili.controller.order;
 
+import cn.hutool.json.JSONUtil;
 import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
 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.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;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 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.*;
 
+import javax.validation.Valid;
 import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 涔板绔紝璐墿杞︽帴鍙�
@@ -39,8 +58,15 @@
      */
     @Autowired
     private CartService cartService;
+    @Autowired
+    private COSUtil cosUtil;
+
+    @Autowired
+    private OrderService orderService;
 
 
+    @Autowired
+    private UserCheckTemplateService userCheckTemplateService;
     @ApiOperation(value = "鍚戣喘鐗╄溅涓坊鍔犱竴涓骇鍝�")
     @PostMapping
     @ApiImplicitParams({
@@ -63,12 +89,45 @@
             throw new ServiceException(ResultCode.CART_ERROR);
         }
     }
+    @ApiOperation(value = "鍚戣喘鐗╄溅涓鐩栨坊鍔犱竴涓骇鍝�")
+    @PostMapping("/addCard")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "skuId", value = "浜у搧ID", required = true, dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "num", value = "姝や骇鍝佺殑璐拱鏁伴噺", required = true, dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "cartType", value = "璐墿杞︾被鍨嬶紝榛樿鍔犲叆璐墿杞�", paramType = "query")
+    })
+    public ResultMessage<Object> addCard(@NotNull(message = "浜у搧id涓嶈兘涓虹┖") String skuId,
+                                     @NotNull(message = "璐拱鏁伴噺涓嶈兘涓虹┖") @Min(value = 1, message = "鍔犲叆璐墿杞︽暟閲忓繀椤诲ぇ浜�0") Integer num) {
+        try {
+            //璇诲彇閫変腑鐨勫垪琛�
+            cartService.add(skuId, num, CartTypeEnum.CART.name(), true);
+            return ResultUtil.success();
+        } catch (ServiceException se) {
+            log.info(se.getMsg(), se);
+            throw se;
+        } catch (Exception e) {
+            log.error(ResultCode.CART_ERROR.message(), e);
+            throw new ServiceException(ResultCode.CART_ERROR);
+        }
+    }
 
 
     @ApiOperation(value = "鑾峰彇璐墿杞﹂〉闈㈣喘鐗╄溅璇︽儏")
     @GetMapping("/all")
     public ResultMessage<TradeDTO> cartAll() {
-        return ResultUtil.data(this.cartService.getAllTradeDTO());
+        TradeDTO allTradeDTO = this.cartService.getAllTradeDTO();
+        allTradeDTO.getSkuList().forEach(item->{
+            String goodsVideo = item.getGoodsSku().getGoodsVideo();
+            if (StringUtils.isNotBlank(goodsVideo)&&!goodsVideo.contains("http")) {
+                item.getGoodsSku().setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
+            }
+
+            String thumbnail = item.getGoodsSku().getThumbnail();
+            if (StringUtils.isNotBlank(thumbnail)&&!thumbnail.contains("http")) {
+                item.getGoodsSku().setThumbnail(cosUtil.getPreviewUrl(thumbnail));
+            }
+        });
+        return ResultUtil.data(allTradeDTO);
     }
 
     @ApiOperation(value = "鑾峰彇璐墿杞︽暟閲�")
@@ -151,6 +210,15 @@
     }
 
 
+    @ApiOperation(value = "鍐嶆璐拱")
+    @Validated
+    @PostMapping(value = "/sku/buyBack")
+    public ResultMessage<Object> buyBack(@RequestBody @Valid @NotEmpty List<BuyBackDTO> backDTO) {
+        cartService.buyBack(backDTO);
+        return ResultUtil.success();
+    }
+
+
     @ApiOperation(value = "鑾峰彇缁撶畻椤甸潰璐墿杞﹁鎯�")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "way", value = "璐墿杞﹁喘涔帮細CART/绔嬪嵆璐拱锛欱UY_NOW/鎷煎洟璐拱锛歅INTUAN / 绉垎璐拱锛歅OINT ", required = true, paramType = "query")
@@ -159,7 +227,22 @@
     public ResultMessage<TradeDTO> cartChecked(@NotNull(message = "璇诲彇閫変腑鍒楄〃") String way) {
         try {
             //璇诲彇閫変腑鐨勫垪琛�
-            return ResultUtil.data(this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way)));
+            TradeDTO checkedTradeDTO = this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way));
+            checkedTradeDTO.getSkuList().forEach(item->{
+
+
+                String goodsVideo = item.getGoodsSku().getGoodsVideo();
+                if (StringUtils.isNotBlank(goodsVideo)&&!goodsVideo.contains("http")) {
+                    item.getGoodsSku().setGoodsVideo(cosUtil.getPreviewUrl(goodsVideo));
+                }
+
+                String thumbnail = item.getGoodsSku().getThumbnail();
+                if (StringUtils.isNotBlank(thumbnail)&&!thumbnail.contains("http")) {
+                    item.getGoodsSku().setThumbnail(cosUtil.getPreviewUrl(thumbnail));
+                }
+            });
+            System.err.println(JSONUtil.toJsonStr(checkedTradeDTO));
+            return ResultUtil.data(checkedTradeDTO);
         } catch (ServiceException se) {
             log.error(se.getMsg(), se);
             throw se;
@@ -284,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