mirror of
https://gitee.com/san-bing/JChargePointProtocol
synced 2026-05-06 10:59:57 +08:00
云快充1.5.0 初始化
This commit is contained in:
17
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileCacheEvictEvent.java
vendored
Normal file
17
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileCacheEvictEvent.java
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.pile;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Data
|
||||
public class PileCacheEvictEvent {
|
||||
|
||||
private UUID pileId;
|
||||
private String pileCode;
|
||||
|
||||
}
|
||||
47
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileCacheKey.java
vendored
Normal file
47
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileCacheKey.java
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.pile;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import sanbing.jcpp.infrastructure.cache.VersionedCacheKey;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
@RequiredArgsConstructor
|
||||
@Builder
|
||||
public class PileCacheKey implements VersionedCacheKey {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 6366389552842340207L;
|
||||
|
||||
private final UUID pileId;
|
||||
private final String pileCode;
|
||||
|
||||
public PileCacheKey(UUID pileId) {
|
||||
this(pileId, null);
|
||||
}
|
||||
|
||||
public PileCacheKey(String pileCode) {
|
||||
this(null, pileCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return Optional.ofNullable(pileId).map(UUID::toString).orElse(pileCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVersioned() {
|
||||
return pileId != null;
|
||||
}
|
||||
|
||||
}
|
||||
22
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileCaffeineCache.java
vendored
Normal file
22
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileCaffeineCache.java
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.pile;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.cache.CacheManager;
|
||||
import org.springframework.stereotype.Service;
|
||||
import sanbing.jcpp.app.dal.entity.Pile;
|
||||
import sanbing.jcpp.infrastructure.cache.CacheConstants;
|
||||
import sanbing.jcpp.infrastructure.cache.VersionedCaffeineCache;
|
||||
|
||||
@ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "caffeine", matchIfMissing = true)
|
||||
@Service("PileCache")
|
||||
public class PileCaffeineCache extends VersionedCaffeineCache<PileCacheKey, Pile> {
|
||||
|
||||
public PileCaffeineCache(CacheManager cacheManager) {
|
||||
super(cacheManager, CacheConstants.PILE_CACHE);
|
||||
}
|
||||
|
||||
}
|
||||
33
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileRedisCache.java
vendored
Normal file
33
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/pile/PileRedisCache.java
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.pile;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||
import org.springframework.data.redis.serializer.SerializationException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import sanbing.jcpp.app.dal.entity.Pile;
|
||||
import sanbing.jcpp.infrastructure.cache.*;
|
||||
import sanbing.jcpp.infrastructure.util.jackson.JacksonUtil;
|
||||
|
||||
@ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "redis")
|
||||
@Service("PileCache")
|
||||
public class PileRedisCache extends VersionedRedisCache<PileCacheKey, Pile> {
|
||||
|
||||
public PileRedisCache(JCPPRedisCacheConfiguration configuration, CacheSpecsMap cacheSpecsMap, LettuceConnectionFactory connectionFactory) {
|
||||
super(CacheConstants.PILE_CACHE, cacheSpecsMap, connectionFactory, configuration, new JCPPRedisSerializer<>() {
|
||||
|
||||
@Override
|
||||
public byte[] serialize(Pile pile) throws SerializationException {
|
||||
return JacksonUtil.writeValueAsBytes(pile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pile deserialize(PileCacheKey key, byte[] bytes) throws SerializationException {
|
||||
return JacksonUtil.fromBytes(bytes, Pile.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
41
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/session/PileSessionCacheKey.java
vendored
Normal file
41
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/session/PileSessionCacheKey.java
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.session;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author baigod
|
||||
*/
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
@RequiredArgsConstructor
|
||||
@Builder
|
||||
public class PileSessionCacheKey implements Serializable {
|
||||
|
||||
private final UUID pileId;
|
||||
private final String pileCode;
|
||||
|
||||
public PileSessionCacheKey(UUID pileId) {
|
||||
this(pileId, null);
|
||||
}
|
||||
|
||||
public PileSessionCacheKey(String pileCode) {
|
||||
this(null, pileCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return Optional.ofNullable(pileId).map(UUID::toString).orElse(pileCode);
|
||||
}
|
||||
|
||||
}
|
||||
24
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/session/PileSessionCaffeineCache.java
vendored
Normal file
24
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/session/PileSessionCaffeineCache.java
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.session;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.cache.CacheManager;
|
||||
import org.springframework.stereotype.Service;
|
||||
import sanbing.jcpp.app.data.PileSession;
|
||||
import sanbing.jcpp.infrastructure.cache.CacheConstants;
|
||||
import sanbing.jcpp.infrastructure.cache.CaffeineTransactionalCache;
|
||||
|
||||
/**
|
||||
* @author baigod
|
||||
*/
|
||||
@ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "caffeine", matchIfMissing = true)
|
||||
@Service("PileSessionCache")
|
||||
public class PileSessionCaffeineCache extends CaffeineTransactionalCache<PileSessionCacheKey, PileSession> {
|
||||
|
||||
public PileSessionCaffeineCache(CacheManager cacheManager) {
|
||||
super(cacheManager, CacheConstants.PILE_SESSION_CACHE);
|
||||
}
|
||||
}
|
||||
36
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/session/PileSessionRedisCache.java
vendored
Normal file
36
jcpp-app/src/main/java/sanbing/jcpp/app/service/cache/session/PileSessionRedisCache.java
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* 抖音关注:程序员三丙
|
||||
* 知识星球:https://t.zsxq.com/j9b21
|
||||
*/
|
||||
package sanbing.jcpp.app.service.cache.session;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||
import org.springframework.data.redis.serializer.SerializationException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import sanbing.jcpp.app.data.PileSession;
|
||||
import sanbing.jcpp.infrastructure.cache.*;
|
||||
import sanbing.jcpp.infrastructure.util.jackson.JacksonUtil;
|
||||
|
||||
/**
|
||||
* @author baigod
|
||||
*/
|
||||
@ConditionalOnProperty(prefix = "cache", value = "type", havingValue = "redis")
|
||||
@Service("PileSessionCache")
|
||||
public class PileSessionRedisCache extends RedisTransactionalCache<PileSessionCacheKey, PileSession> {
|
||||
|
||||
public PileSessionRedisCache(JCPPRedisCacheConfiguration configuration, CacheSpecsMap cacheSpecsMap, LettuceConnectionFactory connectionFactory) {
|
||||
super(CacheConstants.PILE_SESSION_CACHE, cacheSpecsMap, connectionFactory, configuration, new JCPPRedisSerializer<>() {
|
||||
|
||||
@Override
|
||||
public byte[] serialize(PileSession pileSession) throws SerializationException {
|
||||
return JacksonUtil.writeValueAsBytes(pileSession);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PileSession deserialize(PileSessionCacheKey key, byte[] bytes) throws SerializationException {
|
||||
return JacksonUtil.fromBytes(bytes, PileSession.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user