Просмотр исходного кода

添加 刷新小程序token定时

ZHAOXIAN 1 год назад
Родитель
Сommit
ba5282193d

+ 4 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceRefreshTokenMapper.java

@@ -17,4 +17,8 @@ public interface BytedanceRefreshTokenMapper {
     String onlyGetToken(@Param("advertiserId") Long advertiserId);
 
     String onlyGetADQToken(@Param("advertiserId") Long advertiserId);
+
+    List<JSONObject> queryOfficialAccounts();
+
+    void refreshAppletTokens(@Param("list") List<JSONObject> list);
 }

+ 26 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceRefreshTokenMapper.xml

@@ -52,5 +52,31 @@
             LIMIT 1)
     </select>
 
+    <select id="queryOfficialAccounts" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT id,
+               applet_id,
+               app_id,
+               '-' as token
+        FROM thirtpart.ly_official_accounts
+        order by id
+    </select>
+
 
+    <insert id="refreshAppletTokens">
+        replace into thirtpart.applet_tokens (
+        app_id,
+        official_account_id,
+        applet_id,
+        token
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.app_id},
+            #{item.id},
+            #{item.applet_id},
+            #{item.token}
+            )
+        </foreach>
+    </insert>
 </mapper>

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceRefreshTokenService.java

@@ -4,4 +4,6 @@ public interface IBytedanceRefreshTokenService {
     void bytedanceRefreshToken();
 
     void refreshBaiduYunToken();
+
+    void refreshAppletTokens();
 }

+ 44 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceRefreshTokenServiceImpl.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import redis.clients.jedis.Jedis;
 
 import java.util.HashMap;
 import java.util.List;
@@ -75,4 +76,47 @@ public class BytedanceRefreshTokenServiceImpl implements IBytedanceRefreshTokenS
             }
         }
     }
+
+    @Override
+    public void refreshAppletTokens() {
+        List<JSONObject> list = bytedanceRefreshTokenMapper.queryOfficialAccounts();
+        if (!Check.isNull(list)) {
+            Jedis jedis = getJedisToken();
+            if (!Check.isNull(jedis)) {
+                for (JSONObject app : list) {
+                    String key = null;
+                    if (app.getString("app_id").startsWith("tt")) {
+                        key = "client-token-key_" + app.getString("app_id");
+                    }
+                    if (app.getString("app_id").startsWith("wx")) {
+                        key = "wechat-applet-access-token-key-" + app.getString("applet_id");
+                    }
+                    String token = jedis.get(key);
+                    if (!Check.isNull(token)) {
+                        app.put("token", token);
+                    }
+                }
+                jedis.close();
+            }
+        }
+        bytedanceRefreshTokenMapper.refreshAppletTokens(list);
+
+    }
+
+    //获取token
+    private Jedis getJedisToken() {
+        Jedis jedis = null;
+        try {
+            String ip = "r-2zelacjrljt205nsb1pd.redis.rds.aliyuncs.com";
+            jedis = new Jedis(ip, 6379);
+            jedis.auth("Huanrui@2025!@");
+            jedis.select(5);
+            return jedis;
+        } catch (Exception e) {
+            log.info("---Jedis失败,消息:{}", e.getMessage());
+            log.info("---异常消息:", e);
+            e.printStackTrace();
+        }
+        return null;
+    }
 }

+ 12 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceRefreshTokenJob.java

@@ -16,8 +16,8 @@ import org.springframework.stereotype.Component;
 @Slf4j
 @Component
 public class BytedanceRefreshTokenJob {
-@Autowired
-private IBytedanceRefreshTokenService bytedanceRefreshTokenService;
+    @Autowired
+    private IBytedanceRefreshTokenService bytedanceRefreshTokenService;
 
     @XxlJob("bytedanceRefreshToken")
     public void bytedanceRefreshToken() throws Exception {
@@ -26,4 +26,14 @@ private IBytedanceRefreshTokenService bytedanceRefreshTokenService;
     }
 
 
+    @XxlJob("refreshAppletTokens")
+    public void refreshAppletTokens() {
+        try {
+            bytedanceRefreshTokenService.refreshAppletTokens();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
 }