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