From 076a457c7c7d005075aa8247ee0b214e94418786 Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Wed, 16 Jul 2025 15:14:43 +0800
Subject: [PATCH] 反馈问题处理
---
trading-order-service/src/main/java/com/yami/trading/service/cms/impl/NewsSerivceImpl.java | 85 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 80 insertions(+), 5 deletions(-)
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/cms/impl/NewsSerivceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/cms/impl/NewsSerivceImpl.java
index 08b72cd..4446313 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/cms/impl/NewsSerivceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/cms/impl/NewsSerivceImpl.java
@@ -7,20 +7,34 @@
import com.yami.trading.bean.cms.Cms;
import com.yami.trading.bean.cms.News;
import com.yami.trading.bean.cms.dto.NewsDto;
+import com.yami.trading.common.util.GoogleAuthenticator;
import com.yami.trading.dao.cms.CmsMapper;
import com.yami.trading.dao.cms.NewsMapper;
import com.yami.trading.service.cms.CmsService;
import com.yami.trading.service.cms.NewsSerivce;
+import com.yami.trading.util.GoogleTranslateUtil;
+import jodd.util.PropertiesUtil;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.*;
@Service
public class NewsSerivceImpl extends ServiceImpl<NewsMapper, News> implements NewsSerivce {
+
+ @Value("${http.prefix}")
+ private String httpPrefix;
@Override
public Page<NewsDto> pageNews(Page page,String title,String language,String userCode) {
return baseMapper.pageNews(page,title,language,userCode);
@@ -28,7 +42,7 @@
@Override
public News getIndex(String language) {
- List<News> list = list(Wrappers.<News>query().lambda().eq(News::getLanguage,language));
+ List<News> list = list(Wrappers.<News>query().lambda().orderByDesc(News::getCreateTime));
if (!CollectionUtil.isEmpty(list)) {
@@ -52,4 +66,65 @@
return list.get(0);
}
+
+ @Override
+ public void grabNews() {
+
+ addNews(1, "http://api-in-pro.js-stock.top/stock-markets?key=xKChgi47AP1NMwMeYI3c&type=1&country_id=14");
+ }
+
+ private void addNews(Integer type, String url) {
+ // 使用CloseableHttpClient发送请求
+ try (CloseableHttpClient client = HttpClients.createDefault()) {
+ // 创建HttpGet请求
+ HttpGet request = new HttpGet(url);
+
+ // 执行请求并获取响应
+ HttpResponse response = client.execute(request);
+
+ // 输出响应状态码
+ System.out.println("响应状态: " + response.getStatusLine());
+ GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil();
+
+ // 获取响应内容并转换成字符串
+ String content = EntityUtils.toString(response.getEntity());
+ JSONArray jsonArray = new JSONArray(content);
+ if (jsonArray.length() > 0) {
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ String newsId = jsonObject.getString("id");
+ if (list(Wrappers.<News>query().lambda().eq(News::getSourceId,newsId)).size() == 0) {
+ News siteNews = new News();
+ siteNews.setSourceId(newsId);
+ siteNews.setContent(googleTranslateUtil.translate("en","zh-TW",jsonObject.getString("content")));
+ siteNews.setTitle(googleTranslateUtil.translate("en", "zh-TW",jsonObject.getString("title")));
+ if(jsonObject.has("img")){
+ convertBase64ToImage(jsonObject.getString("img"), com.yami.trading.common.util.PropertiesUtil.getProperty("loca.images.dir") + "/" +newsId+".jpg");
+ siteNews.setImgUrl(httpPrefix + newsId+".jpg");
+ }
+ siteNews.setCreateTime(new Date());
+ save(siteNews);
+ }
+ }
+ }
+ } catch (Exception e) {
+ // 捕获并打印异常
+ e.printStackTrace();
+ log.error("添加新闻出现异常: " + e.getMessage());
+ }
+ }
+
+ public static String convertBase64ToImage(String base64Str, String path) {
+ byte[] imageBytes = Base64.getDecoder().decode(base64Str);
+ try {
+ File file = new File(path);
+ FileOutputStream fos = new FileOutputStream(file);
+ fos.write(imageBytes);
+ fos.flush();
+ fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return path;
+ }
}
--
Gitblit v1.9.3