| | |
| | | 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; |
| | |
| | | ItemService itemService; |
| | | @Autowired |
| | | KlineService klineService; |
| | | @Autowired |
| | | ItemPreMarketService itemPreMarketService; |
| | | |
| | | /** |
| | | * 根据币种分类 获取实时价格数据 |
| | |
| | | if (!StrUtil.isEmpty(symbols) && !symbols.contains(",")) { |
| | | Realtime realtime = DataCache.getRealtime(symbols); |
| | | if (realtime != null) { |
| | | list.add(realtime); |
| | | list.add(applyPreMarket(realtime)); |
| | | } |
| | | } |
| | | // 如果不传参数 返回全部币种行情 |
| | |
| | | for (Item item : items) { |
| | | Realtime realtime = DataCache.getRealtime(item.getSymbol()); |
| | | if (realtime != null) { |
| | | list.add(realtime); |
| | | list.add(applyPreMarket(realtime)); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | 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); |