From 9fa09b7700040b6cf416081ba0edfcfb72219b16 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 05 Mar 2026 18:43:26 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java                        |   24 ++++++++++++
 trading-order-admin/src/main/java/com/yami/trading/admin/task/NewsTask.java                                     |   64 ++++++++++++++++++++++++++++++++
 trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java                             |    5 ++
 trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java |    1 
 4 files changed, 94 insertions(+), 0 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/task/NewsTask.java b/trading-order-admin/src/main/java/com/yami/trading/admin/task/NewsTask.java
new file mode 100644
index 0000000..e5a1b53
--- /dev/null
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/task/NewsTask.java
@@ -0,0 +1,64 @@
+package com.yami.trading.admin.task;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.yami.trading.bean.cms.News;
+import com.yami.trading.bean.data.domain.Depth;
+import com.yami.trading.bean.data.domain.DepthEntry;
+import com.yami.trading.bean.data.domain.Kline;
+import com.yami.trading.bean.item.domain.Item;
+import com.yami.trading.common.constants.ContractRedisKeys;
+import com.yami.trading.common.constants.RedisKeys;
+import com.yami.trading.common.util.RedisUtil;
+import com.yami.trading.huobi.hobi.Config;
+import com.yami.trading.huobi.hobi.http.HttpHelper;
+import com.yami.trading.huobi.hobi.http.HttpMethodType;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+@Component
+@Slf4j
+public class NewsTask {
+
+
+
+    @Scheduled(cron = "0 */30 * * * ?")
+    public void test() throws Exception {
+        try {
+            String result = HttpHelper.getJSONFromHttp("https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey=f39cfa8922534af295491f38f664ea3d", null, HttpMethodType.GET);
+            JSONObject resultJson = JSON.parseObject(result);
+            String status = resultJson.getString("status");
+            if ("ok".equals(status)) {
+                RedisUtil.set(RedisKeys.NEWS_TOP_HEADLINES, resultJson);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    void getNews() {
+        try {
+            String result = HttpHelper.getJSONFromHttp("https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey=f39cfa8922534af295491f38f664ea3d", null, HttpMethodType.GET);
+            JSONObject resultJson = JSON.parseObject(result);
+            String status = resultJson.getString("status");
+            if ("ok".equals(status)) {
+                RedisUtil.set(RedisKeys.NEWS_TOP_HEADLINES, resultJson);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void main(String[] args) {
+        NewsTask task = new NewsTask();
+        task.getNews();
+    }
+}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java
index bbe947c..cc75590 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java
@@ -1,14 +1,20 @@
 package com.yami.trading.api.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yami.trading.bean.cms.News;
 import com.yami.trading.common.constants.Constants;
+import com.yami.trading.common.constants.RedisKeys;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.exception.YamiShopBindException;
 import com.yami.trading.common.util.DateUtils;
+import com.yami.trading.common.util.RedisUtil;
 import com.yami.trading.common.util.StringUtils;
+import com.yami.trading.huobi.hobi.http.HttpHelper;
+import com.yami.trading.huobi.hobi.http.HttpMethodType;
 import com.yami.trading.security.common.util.SecurityUtils;
 import com.yami.trading.service.AwsS3OSSFileService;
 import com.yami.trading.service.cms.NewsSerivce;
@@ -223,4 +229,22 @@
         return Result.succeed(list);
     }
 
+    /**
+     * 获取 新闻 列表
+     */
+    @RequestMapping(action + "getUsHeadNews.action")
+    public Object getUsHeadNews(HttpServletRequest request) {
+        JSONObject jsonObject = RedisUtil.get(RedisKeys.NEWS_TOP_HEADLINES);
+        if (jsonObject == null || jsonObject.isEmpty()) {
+            String result = HttpHelper.getJSONFromHttp("https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey=f39cfa8922534af295491f38f664ea3d", null, HttpMethodType.GET);
+            JSONObject resultJson = JSON.parseObject(result);
+            String status = resultJson.getString("status");
+            if ("ok".equals(status)) {
+                RedisUtil.set(RedisKeys.NEWS_TOP_HEADLINES, resultJson);
+                jsonObject = resultJson;
+            }
+        }
+        return jsonObject;
+    }
+
 }
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java b/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
index 0dd4071..e4c9ebe 100644
--- a/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
+++ b/trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
@@ -190,6 +190,11 @@
 	public final static String NEWS_LANGUAGE = "NEWS_LANGUAGE_";
 
 	/**
+	 * us头条新闻
+	 */
+	public final static String NEWS_TOP_HEADLINES = "NEWS_TOP_HEADLINES";
+
+	/**
 	 * 充提日志,orderno做key
 	 */
 	public final static String WALLET_LOG_ORDERNO = "WALLET_LOG_ORDERNO_";
diff --git a/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java b/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java
index 9ba8709..ae3a5ea 100644
--- a/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java
+++ b/trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java
@@ -63,6 +63,7 @@
             "/api/banner!list.action",
             "/api/news!list_v2_popup.action",
             "/api/news!list.action",
+            "/api/news!getUsHeadNews.action",
             "/api/authorizedLogin",
             "/api/channelBlockchain!rechargeCallback.action",
             "/api/withdraw/withdrawCallback.action"

--
Gitblit v1.9.3