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