diff --git a/muyu-modules/muyu-product/muyu-product-cache/pom.xml b/muyu-modules/muyu-product/muyu-product-cache/pom.xml
index a0e70a3..036d70d 100644
--- a/muyu-modules/muyu-product/muyu-product-cache/pom.xml
+++ b/muyu-modules/muyu-product/muyu-product-cache/pom.xml
@@ -25,10 +25,10 @@
muyu-common-cache
-
+
com.muyu
- muyu-product-common
+ muyu-product-remote
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectInfoDataImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectInfoDataImpl.java
index b1375f1..2858a21 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectInfoDataImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectInfoDataImpl.java
@@ -4,6 +4,7 @@ import com.muyu.product.cache.datasource.ProjectInfoData;
import com.muyu.product.domain.ProjectInfo;
import com.muyu.product.service.ProjectInfoService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
/**
@@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
* @Date 2024-3-27 下午 03:37
*/
@Service
+@Primary
public class ProjectInfoDataImpl implements ProjectInfoData {
@Autowired
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuDataImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuDataImpl.java
index 902ef52..25fb233 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuDataImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuDataImpl.java
@@ -5,6 +5,7 @@ import com.muyu.product.cache.datasource.ProjectSkuData;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.service.ProjectSkuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -17,6 +18,7 @@ import java.util.stream.Collectors;
* @Date 2024-4-1 上午 11:38
*/
@Service
+@Primary
public class ProjectSkuDataImpl implements ProjectSkuData {
@Autowired
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuStockDataImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuStockDataImpl.java
index 40331fb..2cde9db 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuStockDataImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/cache/impl/ProjectSkuStockDataImpl.java
@@ -1,11 +1,11 @@
package com.muyu.product.cache.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.product.cache.datasource.ProjectSkuStockData;
import com.muyu.product.cache.key.SkuStockKey;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.service.ProjectSkuInfoService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
/**
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
* @Date 2024-4-2 上午 10:53
*/
@Service
+@Primary
public class ProjectSkuStockDataImpl implements ProjectSkuStockData {
@Autowired
@@ -21,7 +22,7 @@ public class ProjectSkuStockDataImpl implements ProjectSkuStockData {
@Override
public Long getData (SkuStockKey key) {
- ProjectSkuInfo projectSkuInfo = projectSkuInfoService.getInfoByProjectAndSku(key.getProjectId(), key.getSku());
+ ProjectSkuInfo projectSkuInfo = projectSkuInfoService.getInfoByProjectIdAndSku(key.getProjectId(), key.getSku());
return projectSkuInfo.getStock();
}
}
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectSkuInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectSkuInfoController.java
index 8955ed6..39144ee 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectSkuInfoController.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectSkuInfoController.java
@@ -52,6 +52,15 @@ public class ProjectSkuInfoController extends BaseController {
return getDataTable(list);
}
+ /**
+ * 通过商品ID获取SKU集合
+ * @param projectId 商品ID
+ * @return 商品SKU信息
+ */
+ @GetMapping("/list/{projectId}")
+ public Result> listByProjectId(@PathVariable("projectId")Long projectId){
+ return Result.success(projectSkuInfoService.listByProjectId(projectId));
+ }
/**
* 导出商品SKU列表
*/
@@ -85,7 +94,7 @@ public class ProjectSkuInfoController extends BaseController {
@GetMapping("/info/{projectId}/{projectSku}")
public Result getInfoByProjectIdAndSku(@PathVariable("projectId")Long projectId,
@PathVariable("projectSku") String projectSku){
- return Result.success(projectSkuInfoService.getInfoByProjectAndSku(projectId, projectSku));
+ return Result.success(projectSkuInfoService.getInfoByProjectIdAndSku(projectId, projectSku));
};
/**
* 新增商品SKU
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java
index a5f9599..001d8f7 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/RuleInfoController.java
@@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;
import com.muyu.common.core.text.Convert;
import com.muyu.product.domain.model.RuleInfoAddModel;
import com.muyu.product.domain.resp.RuleInfoResp;
+import com.muyu.product.service.RuleAttrInfoService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -81,6 +82,9 @@ public class RuleInfoController extends BaseController {
return Result.success(ruleInfoService.getById(id));
}
+ @Autowired
+ private RuleAttrInfoService ruleAttrInfoService;
+
/**
* 新增商品规格
*/
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectSkuInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectSkuInfoService.java
index 1b8c375..214b515 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectSkuInfoService.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectSkuInfoService.java
@@ -19,6 +19,13 @@ public interface ProjectSkuInfoService extends IService {
*/
public List list(ProjectSkuInfo projectSkuInfo);
- ProjectSkuInfo getInfoByProjectAndSku(Long projectId,String projectSku);
+ ProjectSkuInfo getInfoByProjectIdAndSku(Long projectId,String projectSku);
+
+ /**
+ * 通过商品Id获取sku集合
+ * @param projectId 商品Id
+ * @return 商品SKU信息
+ */
+ List listByProjectId(Long projectId);
}
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java
index b1c498e..561aae7 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleAttrInfoService.java
@@ -19,4 +19,10 @@ public interface RuleAttrInfoService extends IService {
*/
public List list(RuleAttrInfo ruleAttrInfo);
+ /**
+ * 通过ruleId获取规格详情
+ * @param ruleId 规格Id
+ * @return 规格详情id
+ */
+ List getInfoByRuleId(Long ruleId);
}
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java
index cce3398..9e342a7 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/RuleInfoService.java
@@ -3,11 +3,13 @@ package com.muyu.product.service;
import java.util.List;
import com.muyu.common.core.web.page.TableDataInfo;
+import com.muyu.product.domain.RuleAttrInfo;
import com.muyu.product.domain.RuleInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.product.domain.model.RuleInfoAddModel;
import com.muyu.product.domain.req.RuleInfoQueryReq;
import com.muyu.product.domain.resp.RuleInfoResp;
+import org.apache.tomcat.util.digester.Rule;
/**
* 商品规格Service接口
@@ -32,4 +34,5 @@ public interface RuleInfoService extends IService {
public boolean save(RuleInfoAddModel ruleInfoAddModel);
TableDataInfo queryList (RuleInfoQueryReq ruleInfoQueryReq);
+
}
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectSkuInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectSkuInfoServiceImpl.java
index e4837ab..bce98ac 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectSkuInfoServiceImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectSkuInfoServiceImpl.java
@@ -66,10 +66,17 @@ public class ProjectSkuInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProjectSkuInfo::getProjectId, projectId);
queryWrapper.eq(ProjectSkuInfo::getSku, projectSku);
return this.getOne(queryWrapper);
}
+
+ @Override
+ public List listByProjectId(Long projectId) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(ProjectSkuInfo::getProjectId, projectId);
+ return this.list(queryWrapper);
+ }
}
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java
index 938c505..5bb3420 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleAttrInfoServiceImpl.java
@@ -44,10 +44,13 @@ public class RuleAttrInfoServiceImpl extends ServiceImpl getInfoByRuleId(Long ruleId) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(RuleAttrInfo::getRuleId, ruleId);
+ return this.list(queryWrapper);
+ }
}
diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java
index d4db750..c8d3c6e 100644
--- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/RuleInfoServiceImpl.java
@@ -102,4 +102,6 @@ public class RuleInfoServiceImpl extends ServiceImpl
.total(isPage ? new PageInfo<>(list).getTotal() : 0)
.build();
}
+
+
}
diff --git a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectInfoDataImpl.java b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectInfoDataImpl.java
deleted file mode 100644
index a83f370..0000000
--- a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectInfoDataImpl.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.muyu.shop.cart.cache.impl;
-
-
-import com.muyu.product.cache.datasource.ProjectInfoData;
-import com.muyu.product.domain.ProjectInfo;
-import org.springframework.stereotype.Service;
-
-/**
- * @author yangle
- * @description: 缓存数据获取
- * @Date 2024-3-27 下午 03:37
- */
-@Service
-public class ProjectInfoDataImpl implements ProjectInfoData {
-
-
- /**
- * 从数据库获取数据
- * @param key ID
- * @return 缓存对象
- */
- @Override
- public ProjectInfo getData (Long key) {
- return new ProjectInfo();
- }
-
-}
diff --git a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectSkuDataImpl.java b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectSkuDataImpl.java
deleted file mode 100644
index 4d8a93f..0000000
--- a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectSkuDataImpl.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.muyu.shop.cart.cache.impl;
-
-
-import com.muyu.product.cache.datasource.ProjectSkuData;
-import com.muyu.product.domain.ProjectSkuInfo;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author yangle
- * @description: 商品SKU实现类
- * @Date 2024-4-1 上午 11:38
- */
-@Service
-public class ProjectSkuDataImpl implements ProjectSkuData {
-
- /**
- * 通过键获取所有的hash数据
- * @param projectId 商品ID
- * @return
- */
- @Override
- public Map getData (Long projectId) {
- return new HashMap<>(); }
-
- /**
- * 通过缓存键和hash键获取hash值
- * @param projectId 商品ID
- * @param projectSku 商品SKU
- * @return hash值
- */
- @Override
- public ProjectSkuInfo getData (Long projectId, String projectSku) {
- return new ProjectSkuInfo();
- }
-}
diff --git a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectSkuStockDataImpl.java b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectSkuStockDataImpl.java
deleted file mode 100644
index 3f6edae..0000000
--- a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/cache/impl/ProjectSkuStockDataImpl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.muyu.shop.cart.cache.impl;
-
-
-import com.muyu.common.core.domain.Result;
-import com.muyu.product.cache.datasource.ProjectSkuStockData;
-import com.muyu.product.cache.key.SkuStockKey;
-import com.muyu.product.domain.ProjectSkuInfo;
-import com.muyu.product.remote.RemoteProjectSkuService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.Objects;
-
-/**
- * @author yangle
- * @description: sku库存实现类
- * @Date 2024-4-2 上午 10:53
- */
-@Service
-public class ProjectSkuStockDataImpl implements ProjectSkuStockData {
-
- @Autowired
- private RemoteProjectSkuService remoteProjectSkuService;
- @Override
- public Long getData (SkuStockKey key) {
- Result result = remoteProjectSkuService.getInfoByProjectIdAndSku(key.getProjectId(), key.getSku());
- if (Result.isSuccess(result)){
- ProjectSkuInfo projectSkuInfo = result.getData();
- if (!Objects.isNull(projectSkuInfo)){
- return projectSkuInfo.getStock();
- }
- }
- return 0L;
- }
-}
diff --git a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/controller/CartInfoController.java b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/controller/CartInfoController.java
index 844af82..7265fa4 100644
--- a/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/controller/CartInfoController.java
+++ b/muyu-modules/muyu-shop-cart/muyu-shop-cart-server/src/main/java/com/muyu/shop/cart/controller/CartInfoController.java
@@ -3,6 +3,7 @@ package com.muyu.shop.cart.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
+import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.shop.cart.domain.req.CartDetailResp;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
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 8c801e0..c84d91a 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
@@ -1,5 +1,7 @@
package com.muyu.shop.cart.service.impl;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -7,11 +9,20 @@ 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.RuleInfoCache;
import com.muyu.product.cache.key.SkuStockKey;
+import com.muyu.product.cache.model.RuleAttrCacheModel;
+import com.muyu.product.cache.model.RuleCacheModel;
+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.impl.ProjectSkuStockDataImpl;
import com.muyu.shop.cart.cache.key.CartHashKey;
+import com.muyu.shop.cart.domain.model.CartSkuModel;
+import com.muyu.shop.cart.domain.model.SkuRuleModel;
+import com.muyu.shop.cart.domain.model.StatisticsCartModel;
import com.muyu.shop.cart.domain.req.CartDetailResp;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.SystemUtils;
@@ -112,13 +123,82 @@ private ProjectSkuStockCache projectSkuStockCache;
}
return true;
}
-
+@Autowired
+private ProjectSkuCache projectSkuCache;
+ @Autowired
+ private ProjectInfoCache projectInfoCache;
+ @Autowired
+ private RuleInfoCache ruleInfoCache;
@Override
public CartDetailResp detail() {
Long userId = SecurityUtils.getUserId();
- this.cartCache.get(userId );
+ List cacheToList = this.cartCache.getToList(userId);
- return null;
+ List cartSkuModelList = cacheToList.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()
+ );
+ RuleCacheModel ruleInfoCacheData = ruleInfoCache.getData(projectInfo.getRuleId());
+ List ruleAttrModelList = ruleInfoCacheData.getRuleAttrModelList();
+ List ruleModelList = new ArrayList<>();
+ String projectSku = cartInfo.getProjectSku();
+ String[] skuArr = projectSku.split("-");
+ for (int index = 0; index < skuArr.length; index++) {
+ ruleModelList.add(
+ SkuRuleModel.builder().
+ ruleName(ruleAttrModelList.get(index).getAttrName())
+ .ruleValue(skuArr[index])
+ .build()
+ );
+ }
+ return CartSkuModel.builder()
+ .projectId(cartInfo.getProjectId())
+ .name(projectInfo.getName())
+ .image(projectSkuInfo.getImage())
+ .stock(stock)
+ .subtotal(projectSkuInfo.getPrice().multiply(new BigDecimal(cartInfo.getNum())))
+ .skuRuleList(ruleModelList)
+ .price(projectSkuInfo.getPrice())
+ .cartInfoId(cartInfo.getId())
+ .num(cartInfo.getNum())
+ .isSelected(cartInfo.getIsSelected())
+ .build();
+ }).toList();
+ List cartSkuList = new ArrayList<>();
+ StatisticsCartModel statisticsCartModel = StatisticsCartModel.builder()
+ .total(cartSkuModelList.stream()
+ .mapToLong(CartSkuModel::getNum)
+ .sum()
+ )
+ .selectTotal(
+ cartSkuModelList.stream()
+ .filter(cartSkuModel -> "Y".equals(cartSkuModel.getIsSelected()))
+ .mapToLong(CartSkuModel::getNum)
+ .sum()
+ )
+ .priceTotal(
+ cartSkuModelList.stream()
+ .filter(cartSkuModel -> "Y".equals(cartSkuModel.getIsSelected()))
+ .map(CartSkuModel::getSubtotal)
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
+ )
+ .actualTotal(
+ cartSkuModelList.stream()
+ .filter(cartSkuModel -> "Y".equals(cartSkuModel.getIsSelected()))
+ .map(CartSkuModel::getSubtotal)
+ .reduce(BigDecimal.ZERO, BigDecimal::add)
+ ).build();
+ return CartDetailResp.builder()
+ .cartSkuList(cartSkuModelList)
+ .statisticsCart(statisticsCartModel)
+ .build();
}