1
zj
2 days ago 5e57de9b12ee136e45ce5754c7fe2e7eb12af05a
trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/DataServiceImpl.java
@@ -5,6 +5,7 @@
import com.yami.trading.bean.item.domain.Item;
import com.yami.trading.huobi.data.DataCache;
import com.yami.trading.service.data.DataService;
import com.yami.trading.service.item.ItemPreMarketService;
import com.yami.trading.service.item.ItemService;
import com.yami.trading.service.syspara.SysparaService;
import lombok.extern.slf4j.Slf4j;
@@ -25,6 +26,8 @@
   ItemService itemService;
   @Autowired
   KlineService klineService;
   @Autowired
   ItemPreMarketService itemPreMarketService;
   /**
    * 根据币种分类 获取实时价格数据
@@ -52,7 +55,7 @@
      if (!StrUtil.isEmpty(symbols) && !symbols.contains(",")) {
         Realtime realtime = DataCache.getRealtime(symbols);
         if (realtime != null) {
            list.add(realtime);
            list.add(applyPreMarket(realtime));
         }
      }
      // 如果不传参数 返回全部币种行情
@@ -61,7 +64,7 @@
         for (Item item : items) {
            Realtime realtime = DataCache.getRealtime(item.getSymbol());
            if (realtime != null) {
               list.add(realtime);
               list.add(applyPreMarket(realtime));
            }
         }
      }
@@ -71,13 +74,26 @@
         for (String oneSymbol : symbolArr) {
            Realtime realtime = DataCache.getRealtime(oneSymbol);
            if (realtime != null) {
               list.add(realtime);
               list.add(applyPreMarket(realtime));
            } else {
               log.error("realtime is null; 币种->{}", oneSymbol);
            }
         }
      }
      return list;
   }
   private Realtime applyPreMarket(Realtime realtime) {
      if (realtime == null || itemPreMarketService == null) {
         return realtime;
      }
      try {
         Realtime copy = (Realtime) realtime.clone();
         return itemPreMarketService.applyPreMarketPrice(copy);
      } catch (CloneNotSupportedException e) {
         log.warn("clone realtime failed, symbol={}", realtime.getSymbol(), e);
         return realtime;
      }
   }
   /**
@@ -109,6 +125,7 @@
      Realtime realtime = DataCache.getLatestRealTime(symbol);
      if (realtime != null) {
         realtime = applyPreMarket(realtime);
         Kline kline = null;
         if (KlineConstant.PERIOD_1MIN.equals(line)) {
            kline = klineService.bulidKline1Minute(realtime, KlineConstant.PERIOD_1MIN);