diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectInfoDataImpl.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectInfoDataRemoteImpl.java similarity index 93% rename from muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectInfoDataImpl.java rename to muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectInfoDataRemoteImpl.java index ad098c8..8fb9521 100644 --- a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectInfoDataImpl.java +++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectInfoDataRemoteImpl.java @@ -13,7 +13,7 @@ import org.springframework.stereotype.Service; * @Date 2024-3-27 下午 03:37 */ @Service -public class ProjectInfoDataImpl implements ProjectInfoData { +public class ProjectInfoDataRemoteImpl implements ProjectInfoData { @Autowired private RemoteProjectInfoService remoteProjectInfoService; diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataImpl.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataImpl.java deleted file mode 100644 index 79935e4..0000000 --- a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.muyu.product.cache.datasource.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 DongZl - * @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-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 new file mode 100644 index 0000000..85da333 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/ProjectSkuDataRemoteImpl.java @@ -0,0 +1,57 @@ +package com.muyu.product.cache.datasource.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.muyu.common.core.domain.Result; +import com.muyu.product.cache.datasource.ProjectSkuData; +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.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author DongZl + * @description: 商品SKU实现类 + * @Date 2024-4-1 上午 11:38 + */ +@Service +public class ProjectSkuDataRemoteImpl implements ProjectSkuData { + + @Autowired + private RemoteProjectSkuService remoteProjectSkuService; + + /** + * 通过键获取所有的hash数据 + * @param projectId 商品ID + * @return + */ + @Override + public Map getData (Long projectId) { + Result> projectListResult + = remoteProjectSkuService.listByProjectId(projectId); + if (Result.isError(projectListResult)){ + return new HashMap<>(); + } + + List projectSkuInfoList = projectListResult.getData(); + return projectSkuInfoList.stream() + .collect(Collectors.toMap(ProjectSkuInfo::getSku, projectSkuInfo -> projectSkuInfo)); + + } + + /** + * 通过缓存键和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-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataImpl.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java similarity index 96% rename from muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataImpl.java rename to muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java index 7251571..09b63f8 100644 --- a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataImpl.java +++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/datasource/impl/RuleCacheDataRemoteImpl.java @@ -17,7 +17,7 @@ import java.util.List; * @description: 规格数据获取实现层 默认就读取远程调用 * @Date 2024/4/7 下午8:32 */ -public class RuleCacheDataImpl implements RuleCacheData { +public class RuleCacheDataRemoteImpl implements RuleCacheData { @Autowired private RemoteRuleService remoteRuleService; 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 ace7fd6..1ab755f 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 @@ -2,4 +2,4 @@ com.muyu.product.cache.ProjectInfoCache com.muyu.product.cache.ProjectSkuCache com.muyu.product.cache.ProjectSkuStockCache com.muyu.product.cache.RuleInfoCache -com.muyu.product.cache.datasource.impl.RuleCacheDataImpl +com.muyu.product.cache.datasource.impl.RuleCacheDataRemoteImpl diff --git a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/RemoteProjectSkuService.java b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/RemoteProjectSkuService.java index 3b811b2..177ced8 100644 --- a/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/RemoteProjectSkuService.java +++ b/muyu-modules/muyu-product/muyu-product-remote/src/main/java/com/muyu/product/remote/RemoteProjectSkuService.java @@ -8,6 +8,8 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import java.util.List; + /** * @author DongZl * @description: 远程调用业务层 @@ -30,4 +32,11 @@ public interface RemoteProjectSkuService { @GetMapping("/info/{projectId}/{projectSku}") public Result getInfoByProjectIdAndSku(@PathVariable("projectId") Long projectId, @PathVariable("projectSku") String projectSku); + /** + * 通过商品ID和SKU获取SKU信息 + * @param projectId 商品ID + * @return 商品SKU信息 + */ + @GetMapping("/list/{projectId}") + public Result> listByProjectId(@PathVariable("projectId") Long projectId); } 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 de4c74d..6ad77df 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 @@ -51,6 +51,16 @@ 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列表 */ 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 234a911..98e0611 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 @@ -26,4 +26,11 @@ public interface ProjectSkuInfoService extends IService { * @return 商品SKU信息 */ 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/impl/ProjectSkuInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectSkuInfoServiceImpl.java index 9d457c7..05c8b16 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 @@ -74,4 +74,18 @@ public class ProjectSkuInfoServiceImpl extends ServiceImpl listByProjectId (Long projectId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProjectSkuInfo::getProjectId, projectId); + return this.list(queryWrapper); + } }