From a22c68995a08a84aec2764329b3bef7a66be63a3 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Fri, 31 Jul 2026 15:43:43 +0000 Subject: [PATCH] =?UTF-8?q?refactor(open,channel):=20=E6=B6=88=E9=99=A4=20?= =?UTF-8?q?redis=20=E9=85=8D=E7=BD=AE=E5=AD=98=E5=82=A8=E4=B8=8E=E5=AA=92?= =?UTF-8?q?=E4=BD=93=E4=B8=8B=E8=BD=BD=E6=89=A7=E8=A1=8C=E5=99=A8=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit open: 三个 WxOpenInRedis*ConfigStorage 的 20 个方法逐字符相同,抽取 AbstractWxOpenInRedisOpsConfigStorage 统一实现,子类仅保留构造函数。 channel: 两个媒体下载执行器中的 uri 拼参与临时文件命名逻辑上移到 ChannelMediaDownloadRequestExecutor。 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- ...tpChannelMediaDownloadRequestExecutor.java | 26 +--- .../ChannelMediaDownloadRequestExecutor.java | 41 ++++++ ...tsChannelMediaDownloadRequestExecutor.java | 26 +--- ...AbstractWxOpenInRedisOpsConfigStorage.java | 135 ++++++++++++++++++ .../api/impl/WxOpenInRedisConfigStorage.java | 119 +-------------- .../WxOpenInRedisTemplateConfigStorage.java | 119 +-------------- .../impl/WxOpenInRedissonConfigStorage.java | 119 +-------------- 7 files changed, 186 insertions(+), 399 deletions(-) create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/AbstractWxOpenInRedisOpsConfigStorage.java diff --git a/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ApacheHttpChannelMediaDownloadRequestExecutor.java b/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ApacheHttpChannelMediaDownloadRequestExecutor.java index b9b44b60e2..385d7a9d43 100644 --- a/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ApacheHttpChannelMediaDownloadRequestExecutor.java +++ b/weixin-java-channel/src/main/java/me/chanjar/weixin/channel/executor/ApacheHttpChannelMediaDownloadRequestExecutor.java @@ -8,8 +8,6 @@ import me.chanjar.weixin.common.util.http.ResponseHandler; import me.chanjar.weixin.common.util.http.apache.InputStreamResponseHandler; import me.chanjar.weixin.common.util.http.apache.Utf8ResponseHandler; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.http.Header; import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; @@ -30,14 +28,7 @@ public ApacheHttpChannelMediaDownloadRequestExecutor(RequestHttp007 */ -public class WxOpenInRedisConfigStorage extends AbstractWxOpenInRedisConfigStorage { - - private final WxRedisOps redisOps; +public class WxOpenInRedisConfigStorage extends AbstractWxOpenInRedisOpsConfigStorage { public WxOpenInRedisConfigStorage(Pool jedisPool) { this(jedisPool, null); @@ -25,116 +20,6 @@ public WxOpenInRedisConfigStorage(@NonNull Pool jedisPool, String keyPref } 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); } } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedisTemplateConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedisTemplateConfigStorage.java index cb55e45ad0..1d643d0bb6 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedisTemplateConfigStorage.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedisTemplateConfigStorage.java @@ -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 @@ * @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); } } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedissonConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedissonConfigStorage.java index 0de9b88d7e..4c7838226e 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedissonConfigStorage.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInRedissonConfigStorage.java @@ -5,16 +5,11 @@ 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 WxOpenInRedissonConfigStorage(@NonNull RedissonClient redissonClient) { } 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); } }