| | |
| | | import com.yami.trading.huobi.data.TimeZoneConverterService; |
| | | import com.yami.trading.huobi.tradingview.service.TradingViewService; |
| | | import com.yami.trading.service.data.DataService; |
| | | import com.yami.trading.service.item.ItemPreMarketService; |
| | | import com.yami.trading.service.item.ItemService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | public class KlineController { |
| | | @Autowired |
| | | private ItemService itemService; |
| | | @Autowired |
| | | private ItemPreMarketService itemPreMarketService; |
| | | @Autowired |
| | | @Qualifier("dataService") |
| | | private DataService dataService; |
| | |
| | | |
| | | // Fetch Kline data from service (for cryptos) |
| | | List<Kline> data = this.dataService.kline(symbol, line); |
| | | itemPreMarketService.applyPreMarketToLatestKline(symbol, data); |
| | | |
| | | // Return an empty response if no data is found |
| | | if (Objects.isNull(data)) { |
| | |
| | | if (cachedData != null && lastUpdateTime != null) { |
| | | long currentTime = System.currentTimeMillis(); |
| | | if ((currentTime - lastUpdateTime) <= TimeUnit.MINUTES.toMillis(5)) { |
| | | itemPreMarketService.applyPreMarketToLatestKline(symbol, cachedData); |
| | | return Result.succeed(this.build(cachedData, twForLine, symbol)); |
| | | } |
| | | } |
| | |
| | | |
| | | // Format Kline data timestamps |
| | | formatKlineTimestamps(data, line); |
| | | itemPreMarketService.applyPreMarketToLatestKline(symbol, data); |
| | | |
| | | return Result.succeed(this.build(data, line, symbol)); |
| | | } |