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

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

@@ -9,4 +9,8 @@ public interface BytedanceRefreshTokenMapper {
     List<JSONObject> getTokenList();
 
     void updateTokenByAdminAdvertiserId(@Param("adminAdvertiserId") Long adminAdvertiserId, @Param("updateAccessToken") String updateAccessToken, @Param("updateRefreshToken") String updateRefreshToken);
+
+    List<JSONObject> getBaiduYunTokenList();
+
+    void updateBaiduYunToken(@Param("obj") JSONObject obj);
 }

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

@@ -11,9 +11,24 @@
 
     <select id="getTokenList" resultType="com.alibaba.fastjson.JSONObject">
         SELECT admin_advertiser_id AS 'adminAdvertiserId', access_token AS 'accessToken', refresh_token AS 'refreshToken', app_id AS 'appId', secret AS 'secret'
-
         FROM deepthink.bytedance_auth_list
+    </select>
 
-
+    <select id="getBaiduYunTokenList" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT app_id,
+               secretkey,
+               appkey,
+               signkey,
+               access_token,
+               refresh_token
+        FROM deepthink.baiduyun_token
     </select>
-</mapper>
+
+    <update id="updateBaiduYunToken">
+        UPDATE deepthink.baiduyun_token
+        SET access_token  = #{obj.access_token},
+            refresh_token = #{obj.refresh_token}
+        WHERE app_id = #{obj.app_id}
+    </update>
+
+</mapper>

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

@@ -2,4 +2,6 @@ package cn.com.ctop.job.bytedance.data.service;
 
 public interface IBytedanceRefreshTokenService {
     void bytedanceRefreshToken();
+
+    void refreshBaiduYunToken();
 }

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

@@ -52,4 +52,27 @@ public class BytedanceRefreshTokenServiceImpl implements IBytedanceRefreshTokenS
             }
         }
     }
+
+    @Override
+    public void refreshBaiduYunToken() {
+        List<JSONObject> tokenList = bytedanceRefreshTokenMapper.getBaiduYunTokenList();
+        if (!Check.isNull(tokenList)) {
+            for (int i = 0; i < tokenList.size(); i++) {
+                JSONObject tokenJson = tokenList.get(i);
+                Map<String, Object> params = new HashMap<>();
+                params.put("grant_type", "refresh_token");
+                params.put("refresh_token", tokenJson.getString("refresh_token"));
+                params.put("client_id", tokenJson.getString("appkey"));
+                params.put("client_secret", tokenJson.getString("secretkey"));
+                String url = "https://openapi.baidu.com/oauth/2.0/token";
+                String results = HttpUtils.httpGet(url, params, null);
+                JSONObject obj = JSONObject.parseObject(results);
+                if (!Check.isNull(obj)) {
+                    obj.put("app_id", tokenJson.getLong("app_id"));
+                    bytedanceRefreshTokenMapper.updateBaiduYunToken(obj);
+                    log.info("{},刷新百度云token成功", tokenJson.getLong("app_id"));
+                }
+            }
+        }
+    }
 }

+ 31 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BaiduYunJob.java

@@ -0,0 +1,31 @@
+package cn.com.ctop.job.bytedance.handler;
+
+
+import cn.com.ctop.job.bytedance.data.service.IBytedanceRefreshTokenService;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 广告主定时任务
+ *
+ * @throws Exception
+ */
+@Slf4j
+@Component
+public class BaiduYunJob {
+    @Autowired
+    private IBytedanceRefreshTokenService refreshTokenService;
+
+    /**
+     * 刷新百度云token
+     * https://pan.baidu.com/union/doc/al0rwqzzl
+     */
+    @XxlJob("refreshBaiduYunToken")
+    public void refreshBaiduYunToken() throws Exception {
+        refreshTokenService.refreshBaiduYunToken();
+    }
+
+}