新版仿ok交易所-后端
1
zyy
2025-10-15 1b2b20308310e9fc5d4216d1e37f3587b251bc91
1
3 files modified
84 ■■■■■ changed files
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/HobiDataService.java 2 ●●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/internal/HobiDataServiceImpl.java 77 ●●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
@@ -108,8 +108,7 @@
    public void bulid(String symbol, String line) {
        RequestDataHelper.set("symbol", symbol);
        List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null,
                0);
        List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null);
        KlineTimeObject model = new KlineTimeObject();
        Collections.sort(list); // 按时间升序
        model.setKline(list);
@@ -179,7 +178,7 @@
    @Override
    public void saveOneByHuoBi(String symbol, String line) {
        List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, 2, 0);
        List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, 2);
        if (list == null || list.isEmpty()) {
            return;
        }
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/HobiDataService.java
@@ -89,6 +89,8 @@
     */
    public List<Kline> kline(String symbol, String period, Integer num, int maximum);
    public List<Kline> kline(String symbol, String period, Integer num);
    /**
     * 市场深度数据(20档)
     */
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/internal/HobiDataServiceImpl.java
@@ -220,6 +220,83 @@
        return list;
    }
    @Override
    public List<Kline> kline(String symbol, String period, Integer num) {
        List<Kline> list = new ArrayList<Kline>();
        Item item = itemService.findBySymbol(symbol);
        if (item == null) {
            return list;
        }
        try {
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("symbol", symbol);
            param.put("period", period);
            if (num == null) {
                if (Kline.PERIOD_1MIN.equals(period)) {
                    param.put("size", 1440);
                }
                if (Kline.PERIOD_5MIN.equals(period)) {
                    param.put("size", 576);
                }
                if (Kline.PERIOD_15MIN.equals(period)) {
                    param.put("size", 576);
                }
                if (Kline.PERIOD_30MIN.equals(period)) {
                    param.put("size", 576);
                }
                if (Kline.PERIOD_60MIN.equals(period)) {
                    param.put("size", 576);
                }
                if (Kline.PERIOD_4HOUR.equals(period)) {
                    param.put("size", 576);
                }
                if (Kline.PERIOD_1DAY.equals(period)) {
                    param.put("size", 500);
                }
                if (Kline.PERIOD_1MON.equals(period)) {
                    param.put("size", 500);
                }
                if (Kline.PERIOD_1WEEK.equals(period)) {
                    param.put("size", 500);
                }
            } else {
                param.put("size", num);
            }
            String result = HttpHelper.getJSONFromHttp(Config.url + Config.kline, param, HttpMethodType.GET);
            JSONObject resultJson = JSON.parseObject(result);
            String status = resultJson.getString("status");
            if ("ok".equals(status)) {
                JSONArray dataArray = resultJson.getJSONArray("data");
                /**
                 * 丢弃第一行数据
                 */
                int start = 1;
                if (num != null && num == 1) start = 0;
                for (int i = start; i < dataArray.size(); i++) {
                    JSONObject realtimeJson = dataArray.getJSONObject(i);
                    Kline kline = new Kline();
                    kline.setSymbol(item.getSymbol());
                    kline.setPeriod(period);
                    kline.setTs(Long.valueOf(realtimeJson.getString("id") + "000"));
                    kline.setOpen(realtimeJson.getBigDecimal("open"));
                    kline.setClose(realtimeJson.getBigDecimal("close"));
                    kline.setHigh(realtimeJson.getBigDecimal("high"));
                    kline.setLow(realtimeJson.getBigDecimal("low"));
                    kline.setVolume(realtimeJson.getBigDecimal("vol"));
                    kline.setAmount(realtimeJson.getBigDecimal("amount"));
                    list.add(kline);
                }
            }
        } catch (Exception e) {
            logger.error("error", e);
        }
        return list;
    }
    /**
     * 市场深度数据(20档),包装,数据本地化处理
     */