新版仿ok交易所-后端
1
zyy
2026-03-05 9fa09b7700040b6cf416081ba0edfcfb72219b16
1
3 files modified
1 files added
94 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/task/NewsTask.java 64 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiNewsController.java 24 ●●●●● patch | view | raw | blame | history
trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java 5 ●●●●● patch | view | raw | blame | history
trading-order-security-common/src/main/java/com/yami/trading/security/common/adapter/ResourceServerAdapter.java 1 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/task/NewsTask.java
New file
@@ -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();
    }
}
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;
    }
}
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_";
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"