Răsfoiți Sursa

feat(product): 优化购物车添加商品逻辑

- 添加用户ID获取功能
- 实现同商品检查机制
- 更新现有商品数量而非重复插入
- 添加购物车记录更新逻辑
- 保持原有购物车插入功能作为备选路径
肖路 1 lună în urmă
părinte
comite
0425566f11

+ 14 - 3
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/controller/pc/MyProductController.java

@@ -192,9 +192,20 @@ public class MyProductController {
     * */
     @PostMapping("/addProductShoppingCart")
     public R addProductShoppingCart(@RequestBody ProductShoppingCartBo bo) {
-
-        bo.setUserId(LoginHelper.getUserId());
-        productShoppingCartService.insertByBo(bo);
+        Long userId = LoginHelper.getUserId();
+        //查看是否存在同一个商品
+        ProductShoppingCart one = productShoppingCartService.getOne(Wrappers.lambdaQuery(ProductShoppingCart.class)
+            .eq(ProductShoppingCart::getUserId, userId)
+            .eq(ProductShoppingCart::getProductId, bo.getProductId())
+        );
+        if(one != null){
+            one.setProductNum(one.getProductNum() + bo.getProductNum());
+            productShoppingCartService.updateById(one);
+            return R.ok();
+        }else {
+            bo.setUserId(userId);
+            productShoppingCartService.insertByBo(bo);
+        }
         return R.ok();
     }