zxl
2025-10-15 18a9f86a8c1fdb6c42c4212dcaa1de437f6f4861
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();
    }
}