🎨 重构 redis 配置存储与媒体下载执行器中的重复代码
This commit is contained in:
committed by
GitHub
parent
8833bce0cf
commit
f95fd76b05
@@ -8,8 +8,6 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||
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 class ApacheHttpChannelMediaDownloadRequestExecutor extends ChannelMediaD
|
||||
|
||||
@Override
|
||||
public ChannelImageResponse execute(String uri, String data, WxType wxType) throws WxErrorException, IOException {
|
||||
if (data != null) {
|
||||
if (uri.indexOf('?') == -1) {
|
||||
uri += '?';
|
||||
}
|
||||
uri += uri.endsWith("?") ? data : '&' + data;
|
||||
}
|
||||
|
||||
HttpGet httpGet = new HttpGet(uri);
|
||||
HttpGet httpGet = new HttpGet(this.appendDataToUri(uri, data));
|
||||
if (requestHttp.getRequestHttpProxy() != null) {
|
||||
RequestConfig config = RequestConfig.custom().setProxy(requestHttp.getRequestHttpProxy()).build();
|
||||
httpGet.setConfig(config);
|
||||
@@ -56,20 +47,7 @@ public class ApacheHttpChannelMediaDownloadRequestExecutor extends ChannelMediaD
|
||||
}
|
||||
}
|
||||
|
||||
String fileName = this.getFileName(response);
|
||||
if (StringUtils.isBlank(fileName)) {
|
||||
fileName = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
String baseName = FilenameUtils.getBaseName(fileName);
|
||||
if (StringUtils.isBlank(fileName) || baseName.length() < 3) {
|
||||
baseName = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
String extension = FilenameUtils.getExtension(fileName);
|
||||
if (StringUtils.isBlank(extension)) {
|
||||
extension = "unknown";
|
||||
}
|
||||
File file = createTmpFile(inputStream, baseName, extension, tmpDirFile);
|
||||
File file = this.saveTmpFile(inputStream, this.getFileName(response));
|
||||
return new ChannelImageResponse(file, contentType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,9 @@ package me.chanjar.weixin.channel.executor;
|
||||
import me.chanjar.weixin.channel.bean.image.ChannelImageResponse;
|
||||
import me.chanjar.weixin.common.util.http.RequestExecutor;
|
||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -64,6 +66,45 @@ public abstract class ChannelMediaDownloadRequestExecutor<H, P> implements Reque
|
||||
return resultFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* 把请求参数拼接到请求地址上
|
||||
*
|
||||
* @param uri 请求地址
|
||||
* @param data 请求参数,可为空
|
||||
* @return 拼接后的请求地址
|
||||
*/
|
||||
protected String appendDataToUri(String uri, String data) {
|
||||
if (data == null) {
|
||||
return uri;
|
||||
}
|
||||
String result = uri;
|
||||
if (result.indexOf('?') == -1) {
|
||||
result += '?';
|
||||
}
|
||||
return result + (result.endsWith("?") ? data : '&' + data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照响应中的文件名把媒体内容写入临时文件
|
||||
*
|
||||
* @param inputStream 媒体内容
|
||||
* @param fileName 响应中解析出的文件名,可为空
|
||||
* @return 临时文件
|
||||
*/
|
||||
protected File saveTmpFile(InputStream inputStream, String fileName) throws IOException {
|
||||
String name = StringUtils.isBlank(fileName) ? String.valueOf(System.currentTimeMillis()) : fileName;
|
||||
|
||||
String baseName = FilenameUtils.getBaseName(name);
|
||||
if (StringUtils.isBlank(baseName) || baseName.length() < 3) {
|
||||
baseName = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
String extension = FilenameUtils.getExtension(name);
|
||||
if (StringUtils.isBlank(extension)) {
|
||||
extension = "unknown";
|
||||
}
|
||||
return createTmpFile(inputStream, baseName, extension, tmpDirFile);
|
||||
}
|
||||
|
||||
protected String createDefaultFileName() {
|
||||
return UUID.randomUUID().toString();
|
||||
}
|
||||
|
||||
@@ -8,8 +8,6 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||
import me.chanjar.weixin.common.util.http.ResponseHandler;
|
||||
import me.chanjar.weixin.common.util.http.hc.InputStreamResponseHandler;
|
||||
import me.chanjar.weixin.common.util.http.hc.Utf8ResponseHandler;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.hc.client5.http.ClientProtocolException;
|
||||
import org.apache.hc.client5.http.classic.methods.HttpGet;
|
||||
import org.apache.hc.client5.http.config.RequestConfig;
|
||||
@@ -32,14 +30,7 @@ public class HttpComponentsChannelMediaDownloadRequestExecutor extends ChannelMe
|
||||
|
||||
@Override
|
||||
public ChannelImageResponse execute(String uri, String data, WxType wxType) throws WxErrorException, IOException {
|
||||
if (data != null) {
|
||||
if (uri.indexOf('?') == -1) {
|
||||
uri += '?';
|
||||
}
|
||||
uri += uri.endsWith("?") ? data : '&' + data;
|
||||
}
|
||||
|
||||
HttpGet httpGet = new HttpGet(uri);
|
||||
HttpGet httpGet = new HttpGet(this.appendDataToUri(uri, data));
|
||||
if (requestHttp.getRequestHttpProxy() != null) {
|
||||
RequestConfig config = RequestConfig.custom().setProxy(requestHttp.getRequestHttpProxy()).build();
|
||||
httpGet.setConfig(config);
|
||||
@@ -58,20 +49,7 @@ public class HttpComponentsChannelMediaDownloadRequestExecutor extends ChannelMe
|
||||
}
|
||||
}
|
||||
|
||||
String fileName = this.getFileName(response);
|
||||
if (StringUtils.isBlank(fileName)) {
|
||||
fileName = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
String baseName = FilenameUtils.getBaseName(fileName);
|
||||
if (StringUtils.isBlank(fileName) || baseName.length() < 3) {
|
||||
baseName = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
String extension = FilenameUtils.getExtension(fileName);
|
||||
if (StringUtils.isBlank(extension)) {
|
||||
extension = "unknown";
|
||||
}
|
||||
File file = createTmpFile(inputStream, baseName, extension, tmpDirFile);
|
||||
File file = this.saveTmpFile(inputStream, this.getFileName(response));
|
||||
return new ChannelImageResponse(file, contentType);
|
||||
} catch (HttpException httpException) {
|
||||
throw new ClientProtocolException(httpException.getMessage(), httpException);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user