| | |
| | | import com.yami.trading.common.web.ResultObject; |
| | | import com.yami.trading.huobi.constants.KlinePeriodEnum; |
| | | import com.yami.trading.huobi.data.TimeZoneConverterService; |
| | | import com.yami.trading.huobi.data.internal.KlineService; |
| | | import com.yami.trading.huobi.tradingview.service.TradingViewService; |
| | | import com.yami.trading.service.data.DataService; |
| | | import com.yami.trading.service.item.ItemService; |
| | |
| | | @Autowired |
| | | RedisTemplate redisTemplate; |
| | | |
| | | @Autowired |
| | | KlineService klineService; |
| | | |
| | | |
| | | @ApiOperation(value = "行情") |
| | | @GetMapping("/api/hobi!getKline.action") |
| | |
| | | // Fetch item details based on symbol |
| | | Item bySymbol = itemService.findBySymbol(symbol); |
| | | |
| | | List<Kline> data; |
| | | // Handle non-cryptos separately |
| | | if (!Item.cryptos.equals(bySymbol.getType())) { |
| | | return getKlineForNonCryptos(bySymbol, line, symbol); |
| | | if (bySymbol.getType().equalsIgnoreCase(Item.US_STOCKS)) { |
| | | data = klineService.getKData(bySymbol, line); |
| | | formatKlineTimestamps(data, line); |
| | | return Result.succeed(this.build(data, line, symbol)); |
| | | } else { |
| | | return getKlineForNonCryptos(bySymbol, line, symbol); |
| | | } |
| | | } |
| | | |
| | | data = this.dataService.kline(symbol, line); |
| | | // Fetch Kline data from service (for cryptos) |
| | | List<Kline> data = this.dataService.kline(symbol, line); |
| | | |
| | | |
| | | // Return an empty response if no data is found |
| | | if (Objects.isNull(data)) { |