huangpingkang пре 1 година
родитељ
комит
52eeef9d4b

+ 31 - 5
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/config/DianZhongConfig.java

@@ -1,26 +1,43 @@
 package cn.com.ctop.job.bytedance.config;
 
-import org.springframework.boot.context.properties.ConfigurationProperties;
+import cn.com.ctop.job.bytedance.data.mapper.DianZhongMapper;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Configuration
-@ConfigurationProperties(prefix = "dianzhong.client")
 public class DianZhongConfig {
+    @Autowired
+    private DianZhongMapper dianZhongMapper;
     private static List<DZConfig> dzConfig;
     private static final Map<String, String> tokenMap = new ConcurrentHashMap<>();
 
+
     public List<DZConfig> getDzConfig() {
+        dzConfig = new ArrayList<>();
+        List<JSONObject> arr = dianZhongMapper.getAccountConfig();
+        for (JSONObject jsonObject : arr) {
+            String clientId = jsonObject.getString("account_id");
+            String token = jsonObject.getString("token");
+            String businessMethod = jsonObject.getString("business_method");
+            DZConfig config = new DZConfig(clientId, token, businessMethod);
+            dzConfig.add(config);
+            tokenMap.put(clientId, token);
+        }
         return dzConfig;
     }
 
     public String getToken(String clientId) {
-        if (tokenMap.isEmpty()) {
-            for (DZConfig config : dzConfig) {
-                tokenMap.put(config.getClientId(), config.getToken());
+        if (!tokenMap.containsKey(clientId)) {
+            String token = dianZhongMapper.getAccountToken(clientId);
+            if (StringUtils.isNotBlank(token)) {
+                tokenMap.put(clientId, token);
             }
         }
         return tokenMap.get(clientId);
@@ -35,6 +52,15 @@ public class DianZhongConfig {
         private String token;
         private String type;
 
+        public DZConfig() {
+        }
+
+        public DZConfig(String clientId, String token, String type) {
+            this.clientId = clientId;
+            this.token = token;
+            this.type = type;
+        }
+
         public String getClientId() {
             return clientId;
         }

+ 9 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/DianZhongController.java

@@ -26,6 +26,15 @@ public class DianZhongController {
     private DianZhongConfig dianZhongConfig;
 
 
+    @GetMapping("/testGetConfig")
+    public Object testGetConfig(@RequestParam(required = false) String clientId) {
+        if (clientId == null) {
+            return dianZhongConfig.getDzConfig();
+        } else {
+            return dianZhongConfig.getToken(clientId);
+        }
+    }
+
     @GetMapping("/getDownloadUrl")
     public void downloadUrl(String type,
                             @RequestParam(required = false) String statDate,

+ 5 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/DianZhongMapper.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.job.bytedance.data.mapper;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import org.apache.ibatis.annotations.Param;
@@ -20,4 +21,8 @@ public interface DianZhongMapper {
     Map<String, String> getBytedanceAdvertiserByAd(@Param("adId") String adId, @Param("statTimeTay") Integer statTimeTay);
 
     String getDZAppIdByChannelId(@Param("channelId") String channelId);
+
+    List<JSONObject> getAccountConfig();
+
+    String getAccountToken(@Param("clientId") String clientId);
 }

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

@@ -50,5 +50,16 @@
         where d.distributor_id = #{channelId}
         limit 1
     </select>
+    <select id="getAccountConfig" resultType="com.alibaba.fastjson.JSONObject">
+        select account_id,business_method,token
+        from deepthink.dianzhong_account_config
+    </select>
+
+    <select id="getAccountToken" resultType="java.lang.String">
+        select token
+        from deepthink.dianzhong_account_config
+        where account_id = #{clientId}
+        limit 1
+    </select>
 
 </mapper>

+ 0 - 12
job-bytedance/src/main/resources/application.yml

@@ -189,15 +189,3 @@ playlet:
     bucketName: short-theatre-hr
     csjDomain: https://oss.artlinkworld.cn/
     csjFileDir: csj/
-
-dianzhong:
-  client:
-    dzConfig[0]:
-      clientId: 10003129
-      token: ckogrgCE4PEDxT1oL5
-      type: iap
-    dzConfig[1]:
-      clientId: 10004501
-      token: HgmmEQM4ddcLQ8mn5i
-      type: iaa
-