From f6028cfb7c7b3d5d31ca00551880346153979a1a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 14 一月 2026 11:38:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsShopController.java |   59 +++++++++++++++++++++++------------------------------------
 1 files changed, 23 insertions(+), 36 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsShopController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsShopController.java
index 94e1cb5..44efcfc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsShopController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TErpGoodsShopController.java
@@ -136,51 +136,38 @@
         shoppingCartItem.setNum(num);
         Long userId = tokenService.getLoginUser().getUserId();
         List<ShoppingCartItem> cacheList = redisCache.getCacheList("shopCart:"+userId);
+        if (cacheList==null){
+            cacheList = new ArrayList<>();
+        }
         redisCache.deleteObject("shopCart:"+userId);
-        if (cacheList != null) {
-            if (!cacheList.isEmpty()) {
+        if (num==0){
+            // 移除
+            List<ShoppingCartItem> res = new ArrayList<>();
+            for (ShoppingCartItem cartItem : cacheList) {
+                if (!cartItem.getId().equals( id)){
+                    res.add(cartItem);
+                }
+            }
+            redisCache.setCacheList("shopCart:"+userId, res);
+        }else{
+            ShoppingCartItem temp = cacheList.stream().filter(e -> e.getId().equals(id)).findFirst().orElse(null);
+            if (temp != null){
+                // 修改数量
                 for (ShoppingCartItem cartItem : cacheList) {
                     if (cartItem.getId().equals(id)) {
                         cartItem.setNum(num);
-                        if (num==0){
-                            // 移除
-                            List<ShoppingCartItem> res = new ArrayList<>();
-                            for (ShoppingCartItem c : cacheList) {
-                                if (c.getNum()==0){
-                                    continue;
-                                }
-                                res.add(c);
-                            }
-                            redisCache.setCacheList("shopCart:"+userId, res);
-                            return R.ok();
-                        }
-                        redisCache.setCacheList("shopCart:"+userId, cacheList);
-                        return R.ok();
-                    }else{
-                        cacheList.add(cartItem);
+                        break;
                     }
                 }
-            } else {
-                if (num!=0){
-                    cacheList = new ArrayList<>();
-                    cacheList.add(shoppingCartItem);
-                }
+                redisCache.setCacheList("shopCart:"+userId, cacheList);
+            }else{
+                // 新增
+                cacheList.add(shoppingCartItem);
+                redisCache.setCacheList("shopCart:"+userId, cacheList);
 
             }
-        } else {
-            cacheList = new ArrayList<>();
-            if (num!=0){
-                cacheList.add(shoppingCartItem);
-            }
+
         }
-        List<ShoppingCartItem> res = new ArrayList<>();
-        for (ShoppingCartItem cartItem : cacheList) {
-            if (cartItem.getNum()==0){
-                continue;
-            }
-            res.add(cartItem);
-        }
-        redisCache.setCacheList("shopCart:"+userId, res);
         return R.ok();
     }
 

--
Gitblit v1.7.1