From 132ea274f2661148d7b2749357c1d9460670724a Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Sun, 7 Apr 2024 20:03:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E5=86=99RuleCache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/cart/domain/model/CartSkuModel.java | 10 ++++++ .../service/impl/CartInfoServiceImpl.java | 34 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/muyu-modules/muyu-shop-cart/muyu-shop-cart-common/src/main/java/com/muyu/shop/cart/domain/model/CartSkuModel.java b/muyu-modules/muyu-shop-cart/muyu-shop-cart-common/src/main/java/com/muyu/shop/cart/domain/model/CartSkuModel.java index 9532a4b..64ef79b 100644 --- a/muyu-modules/muyu-shop-cart/muyu-shop-cart-common/src/main/java/com/muyu/shop/cart/domain/model/CartSkuModel.java +++ b/muyu-modules/muyu-shop-cart/muyu-shop-cart-common/src/main/java/com/muyu/shop/cart/domain/model/CartSkuModel.java @@ -29,6 +29,11 @@ public class CartSkuModel { */ private String image; + /** + * 商品ID + */ + private Long projectId; + /** * 商品名称 */ @@ -49,6 +54,11 @@ public class CartSkuModel { */ private Long num; + /** + * 库存 + */ + private Long stock; + /** * 购物车小计 */ diff --git a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/service/impl/CartInfoServiceImpl.java b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/service/impl/CartInfoServiceImpl.java index c939b07..e0a082c 100644 --- a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/service/impl/CartInfoServiceImpl.java +++ b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/service/impl/CartInfoServiceImpl.java @@ -10,8 +10,12 @@ import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.text.Convert; import com.muyu.common.core.utils.ObjUtils; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.product.cache.ProjectInfoCache; +import com.muyu.product.cache.ProjectSkuCache; import com.muyu.product.cache.ProjectSkuStockCache; import com.muyu.product.cache.key.SkuStockKey; +import com.muyu.product.domain.ProjectInfo; +import com.muyu.product.domain.ProjectSkuInfo; import com.muyu.shop.cart.cache.CartCache; import com.muyu.shop.cart.cache.key.CartHashKey; import com.muyu.shop.cart.domain.model.CartSkuModel; @@ -39,6 +43,12 @@ public class CartInfoServiceImpl extends ServiceImpl @Autowired private CartCache cartCache; + @Autowired + private ProjectSkuCache projectSkuCache; + + @Autowired + private ProjectInfoCache projectInfoCache; + @Autowired private ProjectSkuStockCache projectSkuStockCache; @@ -132,6 +142,30 @@ public class CartInfoServiceImpl extends ServiceImpl Long userId = SecurityUtils.getUserId(); List cartInfoList = cartCache.getToList(userId); // CartInfo -> CartSkuModel + List cartSkuModelList = cartInfoList.stream() + .map(cartInfo -> { + ProjectSkuInfo projectSkuInfo + = projectSkuCache.get(cartInfo.getProjectId(), cartInfo.getProjectSku()); + ProjectInfo projectInfo + = projectInfoCache.get(cartInfo.getProjectId()); + Long stock = projectSkuStockCache.get( + SkuStockKey.builder() + .projectId(cartInfo.getProjectId()) + .sku(cartInfo.getProjectSku()) + .build() + ); + // RuleCache + return CartSkuModel.builder() + .projectId(cartInfo.getProjectId()) + .name(projectInfo.getName()) + .image(projectSkuInfo.getImage()) + .stock(stock) + .price(projectSkuInfo.getPrice()) + .cartInfoId(cartInfo.getId()) + .num(cartInfo.getNum()) + .isSelected(cartInfo.getIsSelected()) + .build(); + }).toList(); List cartSkuList = new ArrayList<>();