|
|
package com.yeqifu.sys.cache;
|
|
|
|
|
|
import com.yeqifu.bus.entity.Customer;
|
|
|
import com.yeqifu.bus.entity.Goods;
|
|
|
import com.yeqifu.bus.entity.Provider;
|
|
|
import com.yeqifu.bus.mapper.CustomerMapper;
|
|
|
import com.yeqifu.bus.mapper.GoodsMapper;
|
|
|
import com.yeqifu.bus.mapper.ProviderMapper;
|
|
|
import com.yeqifu.sys.common.SpringUtil;
|
|
|
import com.yeqifu.sys.entity.Dept;
|
|
|
import com.yeqifu.sys.entity.User;
|
|
|
import com.yeqifu.sys.mapper.DeptMapper;
|
|
|
import com.yeqifu.sys.mapper.UserMapper;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* CachePool 类用于处理缓存操作,模拟类似 Redis 的缓存管理功能。
|
|
|
* 提供了添加缓存、删除缓存、清空缓存和同步缓存等功能。
|
|
|
* 主要用于缓存部门、用户、客户、供应商、商品等信息。
|
|
|
*
|
|
|
* @Author: 落亦-
|
|
|
* @Date: 2019/12/20 18:05
|
|
|
*/
|
|
|
public class CachePool {
|
|
|
|
|
|
/**
|
|
|
* 缓存容器,用于存放所有缓存数据,键值对存储。
|
|
|
* 这个容器类似于 Redis,存储了不同实体的缓存数据。
|
|
|
*/
|
|
|
public static volatile Map<String, Object> CACHE_CONTAINER = new HashMap<>();
|
|
|
|
|
|
/**
|
|
|
* 根据指定的键删除缓存数据。
|
|
|
*
|
|
|
* @param key 键,缓存的唯一标识符
|
|
|
*/
|
|
|
public static void removeCacheByKey(String key) {
|
|
|
// 判断缓存容器中是否包含指定的键
|
|
|
if (CACHE_CONTAINER.containsKey(key)) {
|
|
|
// 删除指定键的缓存数据
|
|
|
CACHE_CONTAINER.remove(key);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 清空所有缓存数据。
|
|
|
* 该方法会清除缓存容器中的所有条目。
|
|
|
*/
|
|
|
public static void removeAll() {
|
|
|
// 清空缓存容器
|
|
|
CACHE_CONTAINER.clear();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 同步数据到缓存。
|
|
|
* 从数据库中获取部门、用户、客户、供应商、商品等数据,并将其放入缓存容器。
|
|
|
*/
|
|
|
public static void syncData() {
|
|
|
// 同步部门数据
|
|
|
DeptMapper deptMapper = SpringUtil.getBean(DeptMapper.class);
|
|
|
List<Dept> deptList = deptMapper.selectList(null);
|
|
|
for (Dept dept : deptList) {
|
|
|
// 将部门数据存入缓存容器
|
|
|
CACHE_CONTAINER.put("dept:" + dept.getId(), dept);
|
|
|
}
|
|
|
|
|
|
// 同步用户数据
|
|
|
UserMapper userMapper = SpringUtil.getBean(UserMapper.class);
|
|
|
List<User> userList = userMapper.selectList(null);
|
|
|
for (User user : userList) {
|
|
|
// 将用户数据存入缓存容器
|
|
|
CACHE_CONTAINER.put("user:" + user.getId(), user);
|
|
|
}
|
|
|
|
|
|
// 同步客户数据
|
|
|
CustomerMapper customerMapper = SpringUtil.getBean(CustomerMapper.class);
|
|
|
List<Customer> customerList = customerMapper.selectList(null);
|
|
|
for (Customer customer : customerList) {
|
|
|
// 将客户数据存入缓存容器
|
|
|
CACHE_CONTAINER.put("customer:" + customer.getId(), customer);
|
|
|
}
|
|
|
|
|
|
// 同步供应商数据
|
|
|
ProviderMapper providerMapper = SpringUtil.getBean(ProviderMapper.class);
|
|
|
List<Provider> providerList = providerMapper.selectList(null);
|
|
|
for (Provider provider : providerList) {
|
|
|
// 将供应商数据存入缓存容器
|
|
|
CACHE_CONTAINER.put("provider:" + provider.getId(), provider);
|
|
|
}
|
|
|
|
|
|
// 同步商品数据
|
|
|
GoodsMapper goodsMapper = SpringUtil.getBean(GoodsMapper.class);
|
|
|
List<Goods> goodsList = goodsMapper.selectList(null);
|
|
|
for (Goods goods : goodsList) {
|
|
|
// 将商品数据存入缓存容器
|
|
|
CACHE_CONTAINER.put("goods:" + goods.getId(), goods);
|
|
|
}
|
|
|
}
|
|
|
}
|