From 539f733f62f4a368eb90a07a729b5d948378a705 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Sat, 19 Jul 2025 18:29:07 +0800
Subject: [PATCH] 后台新增建仓列表 新股列表新增购买状态
---
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java | 37 ++++++++++++++++++++++++++-----------
1 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
index 22d3a9a..6c6f172 100644
--- a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -24,6 +24,8 @@
import java.util.Base64;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
/**
* 新闻资讯
@@ -130,29 +132,41 @@
return ServerResponse.createBySuccess(pageInfo);
}
- /*新闻资讯-抓取*/
@Override
- public int grabNews() {
- int ret = 0;
- addNews(1, EStockType.IN.getStockUrl() +"stock-markets?key="+ EStockType.IN.getStockKey() +"&type=4");
- return ret;
+ public void grabNews() {
+ // 创建固定大小的线程池,根据需求调整线程数量
+ ExecutorService executor = Executors.newFixedThreadPool(2);
+ try {
+ // 提交美国新闻抓取任务
+ executor.submit(() ->
+ addNews(1, PropertiesUtil.getProperty("US_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("US_KEY") + "&type=1")
+ );
+ // 提交墨西哥新闻抓取任务
+ executor.submit(() ->
+ addNews(1, PropertiesUtil.getProperty("MX_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("MX_KEY") + "&type=1")
+ );
+ } finally {
+ // 关闭线程池
+ executor.shutdown();
+ }
+
}
- private int addNews(Integer type, String url){
- int k = 0;
+ private void addNews(Integer type, String url) {
try {
String newlist = HttpRequest.doGrabGet(url);
JSONArray jsonArray = JSONArray.fromObject(newlist);
- if(jsonArray.size()>0){
+ if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String newsId = jsonObject.getString("id");
- if(siteNewsMapper.getNewsBySourceIdCount(newsId) == 0){
+ if (siteNewsMapper.getNewsBySourceIdCount(newsId) == 0) {
SiteNews siteNews = new SiteNews();
siteNews.setSourceId(newsId);
siteNews.setSourceName("");
siteNews.setTitle(jsonObject.getString("title"));
- Long showTime = jsonObject.getLong("time");
+ //Long showTime = jsonObject.getLong("time");
+ long showTime = jsonObject.optLong("time", System.currentTimeMillis() / 1000); // 默认值,表示未找到或转换失败
siteNews.setShowTime(new Date(showTime * 1000));
if(jsonObject.has("img")){
convertBase64ToImage(jsonObject.getString("img"),PropertiesUtil.getProperty("ftp.address")+newsId+".jpg");
@@ -168,10 +182,11 @@
}
} catch (Exception e) {
e.printStackTrace();
+ log.error("添加新闻出现异常: " + e.getMessage());
}
- return k;
}
+
public static String convertBase64ToImage(String base64Str, String path) {
byte[] imageBytes = Base64.getDecoder().decode(base64Str);
try {
--
Gitblit v1.9.3