购物车
parent
945df9659b
commit
3d665a91bf
|
@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
|
||||||
* @Date 2024-3-27 下午 03:37
|
* @Date 2024-3-27 下午 03:37
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ProjectInfoDataImpl implements ProjectInfoData {
|
public class ProjectInfoDataRemoteImpl implements ProjectInfoData {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RemoteProjectInfoService remoteProjectInfoService;
|
private RemoteProjectInfoService remoteProjectInfoService;
|
|
@ -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<String, ProjectSkuInfo> 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();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<String, ProjectSkuInfo> getData (Long projectId) {
|
||||||
|
Result<List<ProjectSkuInfo>> projectListResult
|
||||||
|
= remoteProjectSkuService.listByProjectId(projectId);
|
||||||
|
if (Result.isError(projectListResult)){
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectSkuInfo> 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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,7 +17,7 @@ import java.util.List;
|
||||||
* @description: 规格数据获取实现层 默认就读取远程调用
|
* @description: 规格数据获取实现层 默认就读取远程调用
|
||||||
* @Date 2024/4/7 下午8:32
|
* @Date 2024/4/7 下午8:32
|
||||||
*/
|
*/
|
||||||
public class RuleCacheDataImpl implements RuleCacheData {
|
public class RuleCacheDataRemoteImpl implements RuleCacheData {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RemoteRuleService remoteRuleService;
|
private RemoteRuleService remoteRuleService;
|
|
@ -2,4 +2,4 @@ com.muyu.product.cache.ProjectInfoCache
|
||||||
com.muyu.product.cache.ProjectSkuCache
|
com.muyu.product.cache.ProjectSkuCache
|
||||||
com.muyu.product.cache.ProjectSkuStockCache
|
com.muyu.product.cache.ProjectSkuStockCache
|
||||||
com.muyu.product.cache.RuleInfoCache
|
com.muyu.product.cache.RuleInfoCache
|
||||||
com.muyu.product.cache.datasource.impl.RuleCacheDataImpl
|
com.muyu.product.cache.datasource.impl.RuleCacheDataRemoteImpl
|
||||||
|
|
|
@ -8,6 +8,8 @@ import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author DongZl
|
* @author DongZl
|
||||||
* @description: 远程调用业务层
|
* @description: 远程调用业务层
|
||||||
|
@ -30,4 +32,11 @@ public interface RemoteProjectSkuService {
|
||||||
@GetMapping("/info/{projectId}/{projectSku}")
|
@GetMapping("/info/{projectId}/{projectSku}")
|
||||||
public Result<ProjectSkuInfo> getInfoByProjectIdAndSku(@PathVariable("projectId") Long projectId,
|
public Result<ProjectSkuInfo> getInfoByProjectIdAndSku(@PathVariable("projectId") Long projectId,
|
||||||
@PathVariable("projectSku") String projectSku);
|
@PathVariable("projectSku") String projectSku);
|
||||||
|
/**
|
||||||
|
* 通过商品ID和SKU获取SKU信息
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @return 商品SKU信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/list/{projectId}")
|
||||||
|
public Result<List<ProjectSkuInfo>> listByProjectId(@PathVariable("projectId") Long projectId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,16 @@ public class ProjectSkuInfoController extends BaseController {
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过商品ID获取SKU集合
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @return 商品SKU信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/list/{projectId}")
|
||||||
|
public Result<List<ProjectSkuInfo>> listByProjectId(@PathVariable("projectId") Long projectId){
|
||||||
|
return Result.success(projectSkuInfoService.listByProjectId(projectId));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出商品SKU列表
|
* 导出商品SKU列表
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -26,4 +26,11 @@ public interface ProjectSkuInfoService extends IService<ProjectSkuInfo> {
|
||||||
* @return 商品SKU信息
|
* @return 商品SKU信息
|
||||||
*/
|
*/
|
||||||
ProjectSkuInfo getInfoByProjectIdAndSku (Long projectId, String projectSku);
|
ProjectSkuInfo getInfoByProjectIdAndSku (Long projectId, String projectSku);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过商品ID获取SKU集合
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @return 商品SKU信息
|
||||||
|
*/
|
||||||
|
List<ProjectSkuInfo> listByProjectId (Long projectId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,4 +74,18 @@ public class ProjectSkuInfoServiceImpl extends ServiceImpl<ProjectSkuInfoMapper,
|
||||||
queryWrapper.eq(ProjectSkuInfo::getSku, projectSku);
|
queryWrapper.eq(ProjectSkuInfo::getSku, projectSku);
|
||||||
return this.getOne(queryWrapper);
|
return this.getOne(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过商品ID获取SKU集合
|
||||||
|
*
|
||||||
|
* @param projectId 商品ID
|
||||||
|
*
|
||||||
|
* @return 商品SKU信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<ProjectSkuInfo> listByProjectId (Long projectId) {
|
||||||
|
LambdaQueryWrapper<ProjectSkuInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(ProjectSkuInfo::getProjectId, projectId);
|
||||||
|
return this.list(queryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue