diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataRemoteImpl.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataRemoteImpl.java index 85da333..5ca234c 100644 --- a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataRemoteImpl.java +++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataRemoteImpl.java @@ -52,6 +52,12 @@ public class ProjectSkuDataRemoteImpl implements ProjectSkuData { */ @Override public ProjectSkuInfo getData (Long projectId, String projectSku) { - return new ProjectSkuInfo(); + Result projectSkuInfoResult = remoteProjectSkuService.getInfoByProjectIdAndSku( + projectId, projectSku + ); + if (Result.isError(projectSkuInfoResult)){ + return new ProjectSkuInfo(); + } + return projectSkuInfoResult.getData(); } } diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-product/muyu-product-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 1ab755f..a9f52bd 100644 --- a/muyu-modules/muyu-product/muyu-product-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -3,3 +3,6 @@ com.muyu.product.cache.ProjectSkuCache com.muyu.product.cache.ProjectSkuStockCache com.muyu.product.cache.RuleInfoCache com.muyu.product.cache.datasource.impl.RuleCacheDataRemoteImpl +com.muyu.product.cache.datasource.impl.ProjectInfoDataRemoteImpl +com.muyu.product.cache.datasource.impl.ProjectSkuDataRemoteImpl +com.muyu.product.cache.datasource.impl.ProjectSkuStockDataRemoteImpl diff --git a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java index e78bee4..78fab1b 100644 --- a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java +++ b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/factory/RemoteProjectSkuFactory.java @@ -5,6 +5,8 @@ import com.muyu.product.domain.ProjectSkuInfo; import com.muyu.product.remote.RemoteProjectSkuService; import org.springframework.cloud.openfeign.FallbackFactory; +import java.util.List; + /** * @author DongZl * @description: 远程调熔断器 @@ -18,6 +20,18 @@ public class RemoteProjectSkuFactory implements FallbackFactory getInfoByProjectIdAndSku (Long projectId, String projectSku) { return Result.error(cause.getMessage()); } + + /** + * 通过商品ID和SKU获取SKU信息 + * + * @param projectId 商品ID + * + * @return 商品SKU信息 + */ + @Override + public Result> listByProjectId (Long projectId) { + return Result.error(cause.getMessage()); + } }; } } 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 017380d..6616d32 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 6b66484..49c3d1f 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; @@ -18,6 +19,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 dc7deb4..73b63dc 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 @@ -6,6 +6,7 @@ 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 +15,7 @@ import org.springframework.stereotype.Service; * @Date 2024-4-2 上午 10:53 */ @Service +@Primary public class ProjectSkuStockDataImpl implements ProjectSkuStockData { @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 61b6fc6..57eb161 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 @@ -180,6 +180,7 @@ public class CartInfoServiceImpl extends ServiceImpl .name(projectInfo.getName()) .image(projectSkuInfo.getImage()) .stock(stock) + .subtotal(projectSkuInfo.getPrice().multiply(new BigDecimal(cartInfo.getNum()))) .skuRuleList(ruleModelList) .price(projectSkuInfo.getPrice()) .cartInfoId(cartInfo.getId()) @@ -190,10 +191,29 @@ public class CartInfoServiceImpl extends ServiceImpl StatisticsCartModel statisticsCartModel = StatisticsCartModel.builder() - .total(0L) - .selectTotal(0L) - .priceTotal(BigDecimal.ZERO) - .actualTotal(BigDecimal.ZERO) + .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)