From 513e5442723f501525bf9ca6210b16561e5d3a2b Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 24 Mar 2026 11:41:07 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 deletions(-)

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 927c88c..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;
@@ -109,7 +115,7 @@
                     news.setShow(news.getUserId().equals(SecurityUtils.getCurrentUserId()));
                 }
                 if (StringUtils.isNotEmpty(news.getImgUrl())) {
-                    news.setImgUrl(news.getImgUrl());
+                    news.setImgUrl(Constants.IMAGES_HTTP+news.getImgUrl());
                 }
 
             }
@@ -172,7 +178,7 @@
 
         String page_no = request.getParameter("page_no");
         String language = request.getParameter("language");
-        String token = request.getParameter("token");
+        String partyId = request.getParameter("partyId");
         if (StringUtils.isNullOrEmpty(page_no)) {
             page_no = "1";
         }
@@ -184,16 +190,28 @@
         }
         int page_no_int = Integer.valueOf(page_no).intValue();
         List<News> list = new ArrayList<News>();
-        if (StringUtils.isEmptyString(token)) {
-            LambdaQueryWrapper<News> lambdaQueryWrapper = Wrappers.<News>query().lambda().eq(News::getLanguage, language).eq(News::isPopUp,
-                    true);
+        if(StringUtils.isNotEmpty(partyId)){
+            LambdaQueryWrapper<News> lambdaQueryWrapper = Wrappers.<News>query().lambda()
+                    .eq(News::getLanguage, language)
+                    .eq(News::isPopUp, true)
+                    // 核心修改:外层and包裹,内部直接用or连接三个条件
+                    .and(wrapper -> wrapper
+                            .eq(News::getUserId, partyId)    // 条件1:userId=partyId
+                            .or().isNull(News::getUserId)    // 条件2:userId=null
+                            .or().eq(News::getUserId, "")    // 条件3:userId=空字符串
+                    );
             Page<News> page = new Page<>(1, 1000000);
             newsService.page(page, lambdaQueryWrapper);
             list = page.getRecords();
         } else {
-            String partyId = SecurityUtils.getUser().getUserId();
-            LambdaQueryWrapper<News> lambdaQueryWrapper = Wrappers.<News>query().lambda().eq(News::getLanguage, language).eq(News::isPopUp,
-                    true).eq(News::getUserId, partyId);
+            LambdaQueryWrapper<News> lambdaQueryWrapper = Wrappers.<News>query().lambda()
+                    .eq(News::getLanguage, language)
+                    .eq(News::isPopUp, true)
+                    .and(wrapper -> wrapper
+                            .isNull(News::getUserId) // 条件1:userId为null
+                            .or() // 或者
+                            .eq(News::getUserId, "") // 条件2:userId为空字符串
+                    );
             Page<News> page = new Page<>(1, 1000000);
             newsService.page(page, lambdaQueryWrapper);
             list = page.getRecords();
@@ -211,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;
+    }
+
 }

--
Gitblit v1.9.3