From 88bd75d93f86d3cf4f12e652d459da8bae71e545 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 24 六月 2025 15:22:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 framework/src/main/java/cn/lili/modules/order/cart/entity/dto/BuyBackDTO.java   |   23 +++++++++++++++++++++++
 framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java |   16 ++++++++++++++++
 buyer-api/src/main/java/cn/lili/controller/order/CartController.java            |   15 +++++++++++++++
 framework/src/main/java/cn/lili/modules/order/cart/service/CartService.java     |    4 ++++
 4 files changed, 58 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 005a1c0..6eb90b1 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
@@ -5,6 +5,7 @@
 import cn.lili.common.enums.ResultUtil;
 import cn.lili.common.exception.ServiceException;
 import cn.lili.common.vo.ResultMessage;
+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.TradeParams;
@@ -16,11 +17,16 @@
 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.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.List;
 
 /**
  * 涔板绔紝璐墿杞︽帴鍙�
@@ -151,6 +157,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")
diff --git a/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/BuyBackDTO.java b/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/BuyBackDTO.java
new file mode 100644
index 0000000..6d3ec65
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/order/cart/entity/dto/BuyBackDTO.java
@@ -0,0 +1,23 @@
+package cn.lili.modules.order.cart.entity.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 鍐嶆璐拱浣跨敤
+ *
+ * @author peng
+ * @since 2025-06-24
+ */
+@Data
+public class BuyBackDTO {
+
+    @NotBlank(message = "鍟嗗搧skuId涓嶈兘涓虹┖")
+    private String skuId;
+
+    @Min(value = 1, message = "鏈�灏忎笉鑳藉皬浜庝竴涓�")
+    private Integer num;
+}
diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartService.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartService.java
index 2d525af..7e202f8 100644
--- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartService.java
+++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartService.java
@@ -1,6 +1,7 @@
 package cn.lili.modules.order.cart.service;
 
 
+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.TradeParams;
@@ -92,6 +93,9 @@
      */
     void delete(String[] skuIds);
 
+
+    void buyBack(List<BuyBackDTO> backDTO);
+
     /**
      * 娓呯┖璐墿杞�
      */
diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java
index fc70f12..71df81f 100644
--- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java
@@ -23,6 +23,7 @@
 import cn.lili.modules.member.entity.dos.MemberAddress;
 import cn.lili.modules.member.service.MemberAddressService;
 import cn.lili.modules.member.service.MemberService;
+import cn.lili.modules.order.cart.entity.dto.BuyBackDTO;
 import cn.lili.modules.order.cart.entity.dto.MemberCouponDTO;
 import cn.lili.modules.order.cart.entity.dto.TradeDTO;
 import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
@@ -51,6 +52,7 @@
 import cn.lili.modules.store.entity.dos.StoreAddress;
 import cn.lili.modules.store.service.StoreAddressService;
 import cn.lili.modules.store.service.StoreService;
+import com.beust.ah.A;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -126,6 +128,9 @@
 
     @Autowired
     private StoreAddressService storeAddressService;
+
+    @Autowired
+    private CartService cartService;
 
     @Override
     public void add(String skuId, Integer num, String cartType, Boolean cover) {
@@ -313,6 +318,17 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void buyBack(List<BuyBackDTO> backDTO) {
+        //灏嗗師鏈夌殑鍟嗗搧鍙栨秷閫変腑
+        cartService.checkedAll(false);
+        //娣诲姞鍟嗗搧
+        backDTO.forEach(buyBackDTO -> {
+            cartService.add(buyBackDTO.getSkuId(), buyBackDTO.getNum(), CartTypeEnum.CART.name(), true);
+        });
+    }
+
+    @Override
     public void clean() {
         cache.remove(this.getOriginKey(CartTypeEnum.CART));
     }

--
Gitblit v1.8.0