1
0
mirror of synced 2026-10-25 01:16:13 +08:00

🎨 重构 redis 配置存储与媒体下载执行器中的重复代码

This commit is contained in:
devin-ai-integration[bot]
2026-09-13 10:21:43 +08:00
committed by GitHub
parent 8833bce0cf
commit f95fd76b05
7 changed files with 186 additions and 399 deletions

View File

@@ -0,0 +1,135 @@
package me.chanjar.weixin.open.api.impl;
import lombok.NonNull;
import me.chanjar.weixin.common.redis.WxRedisOps;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
/**
* 基于 {@link WxRedisOps} 的开放平台 redis 配置存储公共实现,
* 各具体实现类只需提供对应的 {@link WxRedisOps}。
*
* @author yangyidian
*/
abstract class AbstractWxOpenInRedisOpsConfigStorage extends AbstractWxOpenInRedisConfigStorage {
/**
* redis 操作实现
*/
protected final WxRedisOps redisOps;
protected AbstractWxOpenInRedisOpsConfigStorage(@NonNull WxRedisOps redisOps, String keyPrefix) {
this.redisOps = redisOps;
this.keyPrefix = keyPrefix;
}
@Override
public String getComponentVerifyTicket() {
return redisOps.getValue(this.componentVerifyTicketKey);
}
@Override
public void setComponentVerifyTicket(String componentVerifyTicket) {
redisOps.setValue(this.componentVerifyTicketKey, componentVerifyTicket, 43200, TimeUnit.SECONDS);
}
@Override
public String getComponentAccessToken() {
return redisOps.getValue(this.componentAccessTokenKey);
}
@Override
public boolean isComponentAccessTokenExpired() {
Long expire = redisOps.getExpire(this.componentAccessTokenKey);
return expire == null || expire < 2;
}
@Override
public void expireComponentAccessToken() {
redisOps.expire(this.componentAccessTokenKey, 0, TimeUnit.SECONDS);
}
@Override
public void updateComponentAccessToken(String componentAccessToken, int expiresInSeconds) {
redisOps.setValue(this.componentAccessTokenKey, componentAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerRefreshToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerRefreshTokenKey, appId));
}
@Override
public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
redisOps.setValue(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken, 0, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerAccessToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerAccessTokenKey, appId));
}
@Override
public boolean isAuthorizerAccessTokenExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.authorizerAccessTokenKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireAuthorizerAccessToken(String appId) {
redisOps.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.authorizerAccessTokenKey, appId), authorizerAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getJsapiTicket(String appId) {
return redisOps.getValue(this.getKey(this.jsapiTicketKey, appId));
}
@Override
public boolean isJsapiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.jsapiTicketKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireJsapiTicket(String appId) {
redisOps.expire(this.getKey(this.jsapiTicketKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.jsapiTicketKey, appId), jsapiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getCardApiTicket(String appId) {
return redisOps.getValue(this.getKey(this.cardApiTicket, appId));
}
@Override
public boolean isCardApiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.cardApiTicket, appId));
return expire == null || expire < 2;
}
@Override
public void expireCardApiTicket(String appId) {
redisOps.expire(this.getKey(this.cardApiTicket, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.cardApiTicket, appId), cardApiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public Lock getLockByKey(String key) {
return redisOps.getLock(key);
}
}

View File

@@ -6,15 +6,10 @@ import me.chanjar.weixin.common.redis.WxRedisOps;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.util.Pool;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
/**
* @author <a href="https://github.com/007gzs">007</a>
*/
public class WxOpenInRedisConfigStorage extends AbstractWxOpenInRedisConfigStorage {
private final WxRedisOps redisOps;
public class WxOpenInRedisConfigStorage extends AbstractWxOpenInRedisOpsConfigStorage {
public WxOpenInRedisConfigStorage(Pool<Jedis> jedisPool) {
this(jedisPool, null);
@@ -25,116 +20,6 @@ public class WxOpenInRedisConfigStorage extends AbstractWxOpenInRedisConfigStora
}
public WxOpenInRedisConfigStorage(@NonNull WxRedisOps redisOps, String keyPrefix) {
this.redisOps = redisOps;
this.keyPrefix = keyPrefix;
}
@Override
public String getComponentVerifyTicket() {
return redisOps.getValue(this.componentVerifyTicketKey);
}
@Override
public void setComponentVerifyTicket(String componentVerifyTicket) {
redisOps.setValue(this.componentVerifyTicketKey, componentVerifyTicket, 43200, TimeUnit.SECONDS);
}
@Override
public String getComponentAccessToken() {
return redisOps.getValue(this.componentAccessTokenKey);
}
@Override
public boolean isComponentAccessTokenExpired() {
Long expire = redisOps.getExpire(this.componentAccessTokenKey);
return expire == null || expire < 2;
}
@Override
public void expireComponentAccessToken() {
redisOps.expire(this.componentAccessTokenKey, 0, TimeUnit.SECONDS);
}
@Override
public void updateComponentAccessToken(String componentAccessToken, int expiresInSeconds) {
redisOps.setValue(this.componentAccessTokenKey, componentAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerRefreshToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerRefreshTokenKey, appId));
}
@Override
public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
redisOps.setValue(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken, 0, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerAccessToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerAccessTokenKey, appId));
}
@Override
public boolean isAuthorizerAccessTokenExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.authorizerAccessTokenKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireAuthorizerAccessToken(String appId) {
redisOps.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.authorizerAccessTokenKey, appId), authorizerAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getJsapiTicket(String appId) {
return redisOps.getValue(this.getKey(this.jsapiTicketKey, appId));
}
@Override
public boolean isJsapiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.jsapiTicketKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireJsapiTicket(String appId) {
redisOps.expire(this.getKey(this.jsapiTicketKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.jsapiTicketKey, appId), jsapiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getCardApiTicket(String appId) {
return redisOps.getValue(this.getKey(this.cardApiTicket, appId));
}
@Override
public boolean isCardApiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.cardApiTicket, appId));
return expire == null || expire < 2;
}
@Override
public void expireCardApiTicket(String appId) {
redisOps.expire(this.getKey(this.cardApiTicket, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.cardApiTicket, appId), cardApiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public Lock getLockByKey(String key) {
return redisOps.getLock(key);
super(redisOps, keyPrefix);
}
}

View File

@@ -1,8 +1,5 @@
package me.chanjar.weixin.open.api.impl;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import org.springframework.data.redis.core.StringRedisTemplate;
import lombok.NonNull;
@@ -17,125 +14,13 @@ import me.chanjar.weixin.common.redis.WxRedisOps;
* @author taneg
* created on 2021/05/13 11:12:35
*/
public class WxOpenInRedisTemplateConfigStorage extends AbstractWxOpenInRedisConfigStorage {
private final WxRedisOps redisOps;
public class WxOpenInRedisTemplateConfigStorage extends AbstractWxOpenInRedisOpsConfigStorage {
public WxOpenInRedisTemplateConfigStorage(@NonNull StringRedisTemplate stringRedisTemplate, String keyPrefix) {
this(new RedisTemplateWxRedisOps(stringRedisTemplate), keyPrefix);
}
public WxOpenInRedisTemplateConfigStorage(@NonNull WxRedisOps redisOps, String keyPrefix) {
this.redisOps = redisOps;
this.keyPrefix = keyPrefix;
}
@Override
public String getComponentVerifyTicket() {
return redisOps.getValue(this.componentVerifyTicketKey);
}
@Override
public void setComponentVerifyTicket(String componentVerifyTicket) {
redisOps.setValue(this.componentVerifyTicketKey, componentVerifyTicket, 43200, TimeUnit.SECONDS);
}
@Override
public String getComponentAccessToken() {
return redisOps.getValue(this.componentAccessTokenKey);
}
@Override
public boolean isComponentAccessTokenExpired() {
Long expire = redisOps.getExpire(this.componentAccessTokenKey);
return expire == null || expire < 2;
}
@Override
public void expireComponentAccessToken() {
redisOps.expire(this.componentAccessTokenKey, 0, TimeUnit.SECONDS);
}
@Override
public void updateComponentAccessToken(String componentAccessToken, int expiresInSeconds) {
redisOps.setValue(this.componentAccessTokenKey, componentAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerRefreshToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerRefreshTokenKey, appId));
}
@Override
public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
redisOps.setValue(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken, 0, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerAccessToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerAccessTokenKey, appId));
}
@Override
public boolean isAuthorizerAccessTokenExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.authorizerAccessTokenKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireAuthorizerAccessToken(String appId) {
redisOps.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.authorizerAccessTokenKey, appId), authorizerAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getJsapiTicket(String appId) {
return redisOps.getValue(this.getKey(this.jsapiTicketKey, appId));
}
@Override
public boolean isJsapiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.jsapiTicketKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireJsapiTicket(String appId) {
redisOps.expire(this.getKey(this.jsapiTicketKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.jsapiTicketKey, appId), jsapiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getCardApiTicket(String appId) {
return redisOps.getValue(this.getKey(this.cardApiTicket, appId));
}
@Override
public boolean isCardApiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.cardApiTicket, appId));
return expire == null || expire < 2;
}
@Override
public void expireCardApiTicket(String appId) {
redisOps.expire(this.getKey(this.cardApiTicket, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.cardApiTicket, appId), cardApiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public Lock getLockByKey(String key) {
return redisOps.getLock(key);
super(redisOps, keyPrefix);
}
}

View File

@@ -5,16 +5,11 @@ import me.chanjar.weixin.common.redis.RedissonWxRedisOps;
import me.chanjar.weixin.common.redis.WxRedisOps;
import org.redisson.api.RedissonClient;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
/**
* @author yangyidian
* created on 2020/01/06
**/
public class WxOpenInRedissonConfigStorage extends AbstractWxOpenInRedisConfigStorage {
private final WxRedisOps redisOps;
public class WxOpenInRedissonConfigStorage extends AbstractWxOpenInRedisOpsConfigStorage {
public WxOpenInRedissonConfigStorage(@NonNull RedissonClient redissonClient, String keyPrefix) {
this(new RedissonWxRedisOps(redissonClient), keyPrefix);
@@ -25,116 +20,6 @@ public class WxOpenInRedissonConfigStorage extends AbstractWxOpenInRedisConfigSt
}
private WxOpenInRedissonConfigStorage(@NonNull WxRedisOps redisOps, String keyPrefix) {
this.redisOps = redisOps;
this.keyPrefix = keyPrefix;
}
@Override
public String getComponentVerifyTicket() {
return redisOps.getValue(this.componentVerifyTicketKey);
}
@Override
public void setComponentVerifyTicket(String componentVerifyTicket) {
redisOps.setValue(this.componentVerifyTicketKey, componentVerifyTicket, 43200, TimeUnit.SECONDS);
}
@Override
public String getComponentAccessToken() {
return redisOps.getValue(this.componentAccessTokenKey);
}
@Override
public boolean isComponentAccessTokenExpired() {
Long expire = redisOps.getExpire(this.componentAccessTokenKey);
return expire == null || expire < 2;
}
@Override
public void expireComponentAccessToken() {
redisOps.expire(this.componentAccessTokenKey, 0, TimeUnit.SECONDS);
}
@Override
public void updateComponentAccessToken(String componentAccessToken, int expiresInSeconds) {
redisOps.setValue(this.componentAccessTokenKey, componentAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerRefreshToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerRefreshTokenKey, appId));
}
@Override
public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) {
redisOps.setValue(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken, 0, TimeUnit.SECONDS);
}
@Override
public String getAuthorizerAccessToken(String appId) {
return redisOps.getValue(this.getKey(this.authorizerAccessTokenKey, appId));
}
@Override
public boolean isAuthorizerAccessTokenExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.authorizerAccessTokenKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireAuthorizerAccessToken(String appId) {
redisOps.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.authorizerAccessTokenKey, appId), authorizerAccessToken, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getJsapiTicket(String appId) {
return redisOps.getValue(this.getKey(this.jsapiTicketKey, appId));
}
@Override
public boolean isJsapiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.jsapiTicketKey, appId));
return expire == null || expire < 2;
}
@Override
public void expireJsapiTicket(String appId) {
redisOps.expire(this.getKey(this.jsapiTicketKey, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.jsapiTicketKey, appId), jsapiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public String getCardApiTicket(String appId) {
return redisOps.getValue(this.getKey(this.cardApiTicket, appId));
}
@Override
public boolean isCardApiTicketExpired(String appId) {
Long expire = redisOps.getExpire(this.getKey(this.cardApiTicket, appId));
return expire == null || expire < 2;
}
@Override
public void expireCardApiTicket(String appId) {
redisOps.expire(this.getKey(this.cardApiTicket, appId), 0, TimeUnit.SECONDS);
}
@Override
public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) {
redisOps.setValue(this.getKey(this.cardApiTicket, appId), cardApiTicket, expiresInSeconds - 200, TimeUnit.SECONDS);
}
@Override
public Lock getLockByKey(String key) {
return redisOps.getLock(key);
super(redisOps, keyPrefix);
}
}