Explorar el Código

添加直播代理商token

zhaoxian hace 2 años
padre
commit
2cb303e28b

+ 6 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/OauthAgentTokenMapper.java

@@ -2,6 +2,9 @@ package cn.com.ctop.common.module.mapper;
 
 import cn.com.ctop.common.module.entity.OauthAgentToken;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 代理商token
@@ -12,4 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface OauthAgentTokenMapper extends BaseMapper<OauthAgentToken> {
 
+    List<OauthAgentToken> getLiveKuaiShouAgentList(@Param("mediaId") Integer mediaId);
+
+    int updateLiveById(OauthAgentToken updateAgentToken);
 }

+ 22 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/OauthAgentTokenMapper.xml

@@ -2,4 +2,26 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.common.module.mapper.OauthAgentTokenMapper">
 
+    <select id="getLiveKuaiShouAgentList" resultType="cn.com.ctop.common.module.entity.OauthAgentToken">
+        select *
+        from ruixuan.agent_token
+        where media_id = #{mediaId}
+    </select>
+
+    <update id="updateLiveById">
+        UPDATE
+        ruixuan.agent_token
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="mediaId != null">media_id = #{mediaId},</if>
+            <if test="agentId != null">agent_id = #{agentId},</if>
+            <if test="accessToken != null">access_token = #{accessToken},</if>
+            <if test="accessTokenExpiresIn != null">access_token_expires_in = #{accessTokenExpiresIn},</if>
+            <if test="refreshToken != null">refresh_token = #{refreshToken},</if>
+            <if test="refreshTokenExpiresIn != null">refresh_token_expires_in = #{refreshTokenExpiresIn},</if>
+            <if test="agentType != null">agent_type = #{agentType},</if>
+            <if test="appId != null">app_id = #{appId},</if>
+            <if test="secret != null">secret = #{secret},</if>
+        </trim>
+        WHERE id = #{id}
+    </update>
 </mapper>

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/ICtopOauthTokenService.java

@@ -49,4 +49,6 @@ public interface ICtopOauthTokenService extends IService<CtopOauthToken> {
      * 查询 头条 有效规则帐户token
      */
     List<CtopOauthToken> queryTtValidRuleAccountsToken();
+
+    void getLiveKuaiShouAgentRefreshToken(String id, String accessToken, String refreshToken, Long appId, String secret);
 }

+ 4 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IOauthAgentTokenService.java

@@ -3,6 +3,8 @@ package cn.com.ctop.common.module.service;
 import cn.com.ctop.common.module.entity.OauthAgentToken;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 代理商token
  * @Author: jeecg-boot
@@ -12,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IOauthAgentTokenService extends IService<OauthAgentToken> {
 
     OauthAgentToken getTokenByAppId(Long appId);
+
+    List<OauthAgentToken> getLiveKuaiShouAgentList(Integer mediaId);
 }

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IRefreshTokenService.java

@@ -6,4 +6,6 @@ public interface IRefreshTokenService {
     void byteDanceRefresh(String accountId);
 
     void getKuaiShouAgentRefresh();
+
+    void getLiveKuaiShouAgentRefresh();
 }

+ 57 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/CtopOauthTokenServiceImpl.java

@@ -319,6 +319,63 @@ public class CtopOauthTokenServiceImpl extends ServiceImpl<CtopOauthTokenMapper,
 
     }
 
+
+    @Override
+    public void getLiveKuaiShouAgentRefreshToken(String id , String accessToken, String refreshToken, Long appId, String secret) {
+        log.info("快手刷新token入参,token:{},refreshToken:{}", accessToken, refreshToken);
+        String url = kuaishouApiUrl + "/rest/openapi/oauth2/authorize/refresh_token";
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", " application/json");
+        Map<String, Object> param = new HashMap<>();
+
+        param.put("app_id", appId);
+        param.put("secret", secret);
+        param.put("refresh_token", refreshToken);
+        try {
+            String result = HttpUtils.httpPostRequest(url, param, headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            log.info("快手刷新代理商token返回结果:{}", refreshToken);
+            if (Check.isNull(resultJson)) {
+                log.error("快手刷新代理商token返回结果为空,token:{}", accessToken);
+                return;
+            }
+            Integer code = resultJson.getInteger("code");
+            if (null == code || code != 0) {
+                log.error("快手刷新代理商token失败,token:{},result:{}", accessToken, resultJson);
+                return;
+            }
+            JSONObject dataJson = resultJson.getJSONObject("data");
+            if (null == dataJson) {
+                log.error("快手刷新代理商token失败,token:{},result:{}", accessToken, resultJson);
+                return;
+            }
+
+           /* QueryWrapper<OauthAgentToken> agentTokenQueryWrapper = new QueryWrapper<>();
+            agentTokenQueryWrapper.eq("id", id);*/
+            OauthAgentToken updateAgentToken = new OauthAgentToken();
+            updateAgentToken.setId(id);
+            updateAgentToken.setAccessToken(dataJson.getString("access_token"));
+            updateAgentToken.setRefreshToken(dataJson.getString("refresh_token"));
+            long accessTokenExpireIn = dataJson.getLong("access_token_expires_in") * 1000L;
+            long now = System.currentTimeMillis();
+            Date accessTokenExpireInDate = new Date(now + accessTokenExpireIn);
+            updateAgentToken.setAccessTokenExpiresIn(accessTokenExpireInDate);
+            long refreshTokenExpireIn = dataJson.getLong("refresh_token_expires_in") * 1000L;
+            Date refreshTokenExpireInDate = new Date(now + refreshTokenExpireIn);
+            updateAgentToken.setRefreshTokenExpiresIn(refreshTokenExpireInDate);
+            updateAgentToken.setUpdateTime(new Date());
+            int update = agentTokenMapper.updateLiveById(updateAgentToken);
+            if (update > 0) {
+                log.info("刷新代理商token完成");
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            log.error("快手刷新代理商token失败,token{}", accessToken);
+        }
+
+
+    }
+
     @Override
     public List<CtopOauthToken> queryKsValidRuleAccountsToken() {
         return ctopOauthTokenMapper.queryKsValidRuleAccountsToken();

+ 13 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/impl/OauthAgentTokenServiceImpl.java

@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 /**
  * 代理商token
  *
@@ -17,12 +20,21 @@ import org.springframework.stereotype.Service;
 @Service
 public class OauthAgentTokenServiceImpl extends ServiceImpl<OauthAgentTokenMapper, OauthAgentToken> implements IOauthAgentTokenService {
 
+    @Resource
+    private OauthAgentTokenMapper mapper;
+
+
     @Override
     public OauthAgentToken getTokenByAppId(Long appId) {
         QueryWrapper<OauthAgentToken> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("app_id",appId);
+        queryWrapper.eq("app_id", appId);
         queryWrapper.last("limit 1");
         OauthAgentToken one = this.getOne(queryWrapper);
         return one;
     }
+
+    @Override
+    public List<OauthAgentToken> getLiveKuaiShouAgentList(Integer mediaId) {
+        return mapper.getLiveKuaiShouAgentList(mediaId);
+    }
 }

+ 14 - 2
module-common/src/main/java/cn/com/ctop/common/module/service/impl/RefreshTokenServiceImpl.java

@@ -89,11 +89,23 @@ public class RefreshTokenServiceImpl implements IRefreshTokenService {
         if (!Check.isNull(list)) {
             for (OauthAgentToken agentToken : list) {
                 oauthTokenService.getKuaiShouAgentRefreshToken(agentToken.getId(),agentToken.getAgentId(), agentToken.getAccessToken(), agentToken.getRefreshToken(),agentToken.getAppId(),agentToken.getSecret());
-
             }
-
         }
+    }
 
 
+    /**
+     * 获取所有token
+     *
+     * @return
+     */
+    @Override
+    public void getLiveKuaiShouAgentRefresh() {
+        List<OauthAgentToken> list = agentTokenService.getLiveKuaiShouAgentList(2);
+        if (!Check.isNull(list)) {
+            for (OauthAgentToken agentToken : list) {
+                oauthTokenService.getLiveKuaiShouAgentRefreshToken(agentToken.getId(), agentToken.getAccessToken(), agentToken.getRefreshToken(),agentToken.getAppId(),agentToken.getSecret());
+            }
+        }
     }
 }

+ 25 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/KuaiShouRefreshLiveTokenJob.java

@@ -0,0 +1,25 @@
+package cn.com.ctop.job.kuaishou.handler;
+
+import cn.com.ctop.common.module.service.IRefreshTokenService;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class KuaiShouRefreshLiveTokenJob {
+    @Autowired
+    private IRefreshTokenService refreshTokenService;
+
+    /**
+     * 刷新快手直播token(ruixuan)
+     *
+     * @throws JobExecutionException
+     */
+    @XxlJob("kuaiShouLiveRefreshTokenJob")
+    public void execute() throws Exception {
+        refreshTokenService.getLiveKuaiShouAgentRefresh();
+    }
+
+}
+