缓存查询数据库
parent
0cb04c8799
commit
6b251f0353
|
@ -1,9 +1,88 @@
|
||||||
package com.muyu.product.cache;
|
package com.muyu.product.cache;
|
||||||
|
|
||||||
|
import com.muyu.common.cache.abs.HashCacheAbs;
|
||||||
|
import com.muyu.common.core.text.Convert;
|
||||||
|
import com.muyu.product.cache.datasource.ProjectSkuData;
|
||||||
|
import com.muyu.product.domain.ProjectSkuInfo;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author DongZl
|
* @author DongZl
|
||||||
* @description: 商品sku基本信息
|
* @description: 商品sku基本信息
|
||||||
* @Date 2024-3-29 下午 03:06
|
* @Date 2024-3-29 下午 03:06
|
||||||
*/
|
*/
|
||||||
public class ProjectSkuCache {
|
@Component
|
||||||
|
public class ProjectSkuCache extends HashCacheAbs<Long, String, ProjectSkuInfo> {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectSkuData projectSkuData;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* key前缀
|
||||||
|
* @return key前缀
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String keyPre () {
|
||||||
|
return "project:sku:";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解码
|
||||||
|
* @param redisKey 数据库键
|
||||||
|
* @return ID
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long decode (String redisKey) {
|
||||||
|
return Convert.toLong(redisKey.replace(keyPre(), ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解码
|
||||||
|
* @param redisHashKey 数据库键
|
||||||
|
* @return ID
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String decodeHashKey (String redisHashKey) {
|
||||||
|
return redisHashKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过键获取所有的hash数据
|
||||||
|
* @param key 键
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, ProjectSkuInfo> getData (Long key) {
|
||||||
|
return projectSkuData.getData(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过缓存键和hash键获取hash值
|
||||||
|
* @param key 缓存键
|
||||||
|
* @param hashKey hash键
|
||||||
|
*
|
||||||
|
* @return hash值
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ProjectSkuInfo getData (Long key, String hashKey) {
|
||||||
|
return projectSkuData.getData(key, hashKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 默认值
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, ProjectSkuInfo> defaultValue () {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProjectSkuInfo defaultHashValue () {
|
||||||
|
return new ProjectSkuInfo();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.muyu.product.cache.datasource;
|
||||||
|
|
||||||
|
import com.muyu.product.domain.ProjectSkuInfo;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author DongZl
|
||||||
|
* @description: 商品SKU数据库读取
|
||||||
|
* @Date 2024-4-1 上午 11:35
|
||||||
|
*/
|
||||||
|
public interface ProjectSkuData {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过键获取所有的hash数据
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Map<String, ProjectSkuInfo> getData (Long projectId) ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过缓存键和hash键获取hash值
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @param projectSku 商品SKU
|
||||||
|
*
|
||||||
|
* @return hash值
|
||||||
|
*/
|
||||||
|
public ProjectSkuInfo getData (Long projectId, String projectSku);
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.muyu.product.cache.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
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.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author DongZl
|
||||||
|
* @description: 商品SKU实现类
|
||||||
|
* @Date 2024-4-1 上午 11:38
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ProjectSkuDataImpl implements ProjectSkuData {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectSkuInfoService projectSkuInfoService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过键获取所有的hash数据
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, ProjectSkuInfo> getData (Long projectId) {
|
||||||
|
LambdaQueryWrapper<ProjectSkuInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(ProjectSkuInfo::getProjectId, projectId);
|
||||||
|
List<ProjectSkuInfo> projectSkuInfoList = projectSkuInfoService.list(queryWrapper);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过缓存键和hash键获取hash值
|
||||||
|
* @param projectId 商品ID
|
||||||
|
* @param projectSku 商品SKU
|
||||||
|
* @return hash值
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ProjectSkuInfo getData (Long projectId, String projectSku) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue