소스 검색

adq增加刷新token

yumeng 4 달 전
부모
커밋
f026bb0bf3

+ 8 - 2
job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqController.java

@@ -54,13 +54,19 @@ public class AdqController {
     private IClCreativeUserService creativeUserService;
     @Autowired
     private IMovieLevelService movieLevelService;
+    @Autowired
+    private IRefreshTokenService refreshTokenService;
+
+    @GetMapping("/refreshToken")
+    public JSONObject refreshToken() throws InterruptedException {
+        refreshTokenService.refreshToken();
+        return null;
 
+    }
 
     @GetMapping("/sendMovie")
     public JSONObject sendMovie() throws InterruptedException {
-
         movieLevelService.sendMovieLevel();
-
         return null;
 
     }

+ 13 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/RefreshTokenMapper.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.job.adq.data.mapper;
+
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface RefreshTokenMapper {
+    List<JSONObject> getAllTokenList();
+
+    void updateToken(@Param("adminAdvertiserId") Long adminAdvertiserId, @Param("updateAccessToken") String updateAccessToken, @Param("updateRefreshToken") String updateRefreshToken);
+}

+ 16 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/RefreshTokenMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.adq.data.mapper.RefreshTokenMapper">
+    <update id="updateToken">
+        update deepthink.adq_auth_list
+        set access_token  = #{updateAccessToken},
+            refresh_token = #{updateRefreshToken}
+        where admin_advertiser_id = #{adminAdvertiserId}
+    </update>
+
+
+    <select id="getAllTokenList" resultType="com.alibaba.fastjson.JSONObject">
+        select admin_advertiser_id as 'adminAdvertiserId', client_id as 'clientId', client_secret as 'clientSecret', refresh_token as 'refreshToken'
+        from deepthink.adq_auth_list
+    </select>
+</mapper>

+ 5 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IRefreshTokenService.java

@@ -0,0 +1,5 @@
+package cn.com.ctop.job.adq.data.service;
+
+public interface IRefreshTokenService {
+    void refreshToken();
+}

+ 57 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/RefreshTokenServiceImpl.java

@@ -0,0 +1,57 @@
+package cn.com.ctop.job.adq.data.service.impl;
+
+import cn.com.ctop.job.adq.data.mapper.RefreshTokenMapper;
+import cn.com.ctop.job.adq.data.service.IRefreshTokenService;
+import cn.com.ctop.job.adq.data.utils.Check;
+import cn.com.ctop.job.adq.data.utils.HttpUtils;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class RefreshTokenServiceImpl implements IRefreshTokenService {
+    @Autowired
+    private RefreshTokenMapper refreshTokenMapper;
+
+
+    @Override
+    public void refreshToken() {
+        List<JSONObject> tokenList = refreshTokenMapper.getAllTokenList();
+        if (Check.isNull(tokenList)) {
+            return;
+        }
+        for (JSONObject tokenJson : tokenList) {
+            Long adminAdvertiserId = tokenJson.getLong("adminAdvertiserId");
+            String clientId = tokenJson.getString("clientId");
+            String clientSecret = tokenJson.getString("clientSecret");
+            String refreshToken = tokenJson.getString("refreshToken");
+            Map<String, Object> param = new HashMap<>();
+            param.put("client_id", clientId);
+            param.put("client_secret", clientSecret);
+            param.put("refresh_token", refreshToken);
+            param.put("grant_type", "refresh_token");
+            String s = HttpUtils.httpGet("https://api.e.qq.com/oauth/token", param, new HashMap<>());
+            JSONObject tokenResult = JSONObject.parseObject(s);
+            if (Check.isNull(tokenResult)) {
+                continue;
+            }
+            Integer code = tokenResult.getInteger("code");
+            if (code != 0) {
+                continue;
+            }
+            JSONObject data = tokenResult.getJSONObject("data");
+            if (Check.isNull(data)) {
+                continue;
+            }
+            String updateAccessToken = data.getString("access_token");
+            String updateRefreshToken = data.getString("refresh_token");
+            refreshTokenMapper.updateToken(adminAdvertiserId, updateAccessToken, updateRefreshToken);
+        }
+
+
+    }
+}

+ 23 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/handler/AdqRefreshTokenJob.java

@@ -0,0 +1,23 @@
+package cn.com.ctop.job.adq.handler;
+
+
+import cn.com.ctop.job.adq.data.service.IRefreshTokenService;
+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;
+
+
+@Slf4j
+@Component
+public class AdqRefreshTokenJob {
+    @Autowired
+    private IRefreshTokenService refreshTokenService;
+
+    @XxlJob("refreshToken")
+    public void sendMovieLevel() throws Exception {
+        refreshTokenService.refreshToken();
+    }
+
+
+}