新版仿ok交易所-后端
1
zj
2025-09-26 b69778162f24678aadb944b2ac24169f101d53a9
1
18 files modified
61 ■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/task/AStockPanKouTask.java 2 ●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/task/InitHandle.java 18 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/task/cms/XueQiuInfomationGet.java 8 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/application-prod.yml 6 ●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitService.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1QuarterJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline2HourJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/internal/XinLangDataServiceImpl.java 1 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/task/AStockPanKouTask.java
@@ -40,7 +40,7 @@
    @Autowired
    private XueQiuDataServiceImpl xueQiuDataService;
//    @Scheduled(cron = "*/5 * * * * ?")  雪球
    @Scheduled(cron = "*/5 * * * * ?")
    public void sendTask() throws InterruptedException {
        List<String> collect = itemService.list().stream().filter(t -> Item.A_STOCKS.equalsIgnoreCase(t.getOpenCloseType())).map(Item::getSymbol).collect(Collectors.toList());
        for (String symbols: collect) {
trading-order-admin/src/main/java/com/yami/trading/admin/task/InitHandle.java
@@ -48,10 +48,10 @@
    protected KlineService klineService;
    @Autowired
    protected HighLowHandleJob highLowHandleJob;
//    @Autowired   外汇
//    protected StockGetDataJob stockGetDataJob;
//    @Autowired
//    protected ForexGetDataJob forexGetDataJob;
    @Autowired
    protected StockGetDataJob stockGetDataJob;
    @Autowired
    protected ForexGetDataJob forexGetDataJob;
    @Autowired
    protected CryptosGetDataJob cryptosGetDataJob;
    @Autowired
@@ -77,8 +77,8 @@
    private RealtimePushJob realtimePushJob;
    @Autowired
    private CleanDataJob cleanDataJob;
//    @Autowired etf
//    private StockGetMarketJob stockGetMarketJob;
    @Autowired
    private StockGetMarketJob stockGetMarketJob;
    /**
     * 交割合约持仓单盈亏计算线程启动
     */
@@ -135,10 +135,10 @@
         klineInitService.klineInit(symbols);
        // 高低修正
        highLowHandleJob.start();
//        stockGetMarketJob.start();
        stockGetMarketJob.start();
//        // 获取realtime实时数据
//        stockGetDataJob.start();
//        forexGetDataJob.start();
        stockGetDataJob.start();
//        forexGetDataJob.start(); 外汇
        cryptosGetDataJob.start();
        fakeSymbolGetDataJob.start();
        // 实时数据批量保存线程
trading-order-admin/src/main/java/com/yami/trading/admin/task/cms/XueQiuInfomationGet.java
@@ -27,10 +27,10 @@
    @Autowired
    private XueQiuDataServiceImpl xueQiuDataService;
//    @Scheduled(cron = "0 0/30 * ? * *")  雪球
//    public void crawl(){
//        xueQiuDataService.getInformation();
//    }
    @Scheduled(cron = "0 0/30 * ? * *")
    public void crawl(){
        xueQiuDataService.getInformation();
    }
    @Scheduled(cron = "0 */5 * ? * *")
    public void translate(){
trading-order-admin/src/main/resources/application-prod.yml
@@ -3,9 +3,9 @@
spring:
  datasource:
#    url: jdbc:mysql://127.0.0.1:6306/8.4?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    url: jdbc:mysql://127.0.0.1:3306/trading_order?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    username: root
    password: sdfafeasefsdfe
    url: jdbc:mysql://18.167.175.254:6306/trading_order_yb?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    username: trading_order_yb
    password: YGsJRPk4TesDfDpp
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitService.java
@@ -4,7 +4,7 @@
    /**
     * 初始化K线数据,初始化前会删除旧数据
     * 
     * @param symbol 指定产品代码,多个用逗号分割
     * @param
     */
    public void klineInit(String symbols);
}
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java
@@ -35,7 +35,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_15MIN);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                log.debug("--------------- 5min kline ---------  {}", item.getSymbol());
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_1MIN);
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_1MON);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1QuarterJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    continue;
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_1WEEK);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) ) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                       continue;
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline2HourJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                if (Item.cryptos.equalsIgnoreCase(item.getType()) || Item.forex.equalsIgnoreCase(item.getType())) {
                    continue;
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) ) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_30MIN);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) ) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_4HOUR);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) ) {
                if (!Item.cryptos.equalsIgnoreCase(item.getType())) {
                    klineService.saveKline5Day(item.getSymbol(), Kline.PERIOD_5DAY);
                }
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) ) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_5MIN);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java
@@ -36,7 +36,7 @@
        List<Item> item_list = itemService.list();
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
            if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType())) {
                if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                    cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_60MIN);
                } else {
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/internal/XinLangDataServiceImpl.java
@@ -250,7 +250,6 @@
    public List<Kline> getTimeseriesByPeriodMinute(String currency, int scale, String period) {
        // https://vip.stock.finance.sina.com.cn/forex/api/jsonp.php/var%20_fx_seurusd_1_1688818651726=/NewForexService.getMinKline?symbol=fx_seurusd&scale=1&datalen=2000
        long nowTs = System.currentTimeMillis();
        String url = klineUrl.replace("{1}", currency.toLowerCase()).replace("{3}", nowTs + "").replace("{2}", scale + "");
        List<Kline> resList = new ArrayList<>();