zyy
2025-11-18 eeef63d31f05d894c8adbeb0242a8144e6de2b83
trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java
@@ -8,6 +8,7 @@
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;
@@ -50,6 +51,9 @@
    @Autowired
    RedisTemplate redisTemplate;
    @Autowired
    KlineService klineService;
    @ApiOperation(value = "行情")
    @GetMapping("/api/hobi!getKline.action")
@@ -62,13 +66,26 @@
            // 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);
                    if (!data.isEmpty()) {
                        System.out.println(data.size());
                        formatKlineTimestamps(data, line);
                        return Result.succeed(this.build(data, line, symbol));
                    } else {
                        return Result.succeed(null);
                    }
                } 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)) {
@@ -169,8 +186,12 @@
            case "1week":
            case "quarter":
            case "year":
            case "d":
            case "w":
            case "m":
                return "yyyy-MM-dd";
            case "1min":
            case "1":
                return "HH:mm";
            default:
                return "MM-dd HH:mm";