Browse Source

优化获取token逻辑

zhangwl 3 weeks ago
parent
commit
3e4964ec16

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
         <relativePath/>
         <relativePath/>
     </parent>
     </parent>
     <groupId>org.pay</groupId>
     <groupId>org.pay</groupId>
-    <artifactId>msNewPayment2.0</artifactId>
+    <artifactId>paysupply</artifactId>
     <version>1.0</version>
     <version>1.0</version>
 
 
     <properties>
     <properties>

+ 5 - 0
src/main/java/zs/payment/controller/YxSupplyChannelManualController.java

@@ -63,6 +63,11 @@ public class YxSupplyChannelManualController {
      * 成功返回 Result.success(token),失败返回 Result.fail(msg)
      * 成功返回 Result.success(token),失败返回 Result.fail(msg)
      */
      */
     private Result fetchAndCacheToken() {
     private Result fetchAndCacheToken() {
+        // 先判断TTL,剩余时间大于1小时才取缓存token直接返回
+        if (redisUtils.ttl(SUPPLY_TOKEN) > 3600) {
+            return Result.success(redisUtils.get(SUPPLY_TOKEN));
+        }
+
         Map<String, Object> params = new HashMap<>();
         Map<String, Object> params = new HashMap<>();
         params.put("app_key", appKey);
         params.put("app_key", appKey);
         params.put("app_secret", appSecret);
         params.put("app_secret", appSecret);

+ 4 - 0
src/main/java/zs/payment/utils/RedisUtils.java

@@ -413,6 +413,10 @@ public class RedisUtils {
      * @param unit 时间单位
      * @param unit 时间单位
      * @return 是否设置成功
      * @return 是否设置成功
      */
      */
+    public long ttl(String key) {
+        return Redis.withCluster(ecoCluster, jedis -> jedis.ttl(key));
+    }
+
     public Boolean expire(String key, long timeout, TimeUnit unit) {
     public Boolean expire(String key, long timeout, TimeUnit unit) {
         return Redis.withCluster(ecoCluster, jedis -> {
         return Redis.withCluster(ecoCluster, jedis -> {
             // 转换为秒
             // 转换为秒