From 269e8765fabd893d47a1ce276304256650c8e99e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 16 Dec 2025 18:08:03 +0800
Subject: [PATCH] fix(okxWs): 调整账户持仓为空时的处理逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/wanggeList/WangGeListEnum.java |   70 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/wanggeList/WangGeListEnum.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/wanggeList/WangGeListEnum.java
new file mode 100644
index 0000000..87bb55b
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/wanggeList/WangGeListEnum.java
@@ -0,0 +1,70 @@
+package com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList;
+
+import lombok.Getter;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Administrator
+ * 网格数据枚举 数据
+ * todo 后期考虑优化为可配置项
+ */
+@Getter
+public enum WangGeListEnum {
+    UP("上层做空", "2", "2950", "2940", "2", "short", "2950"),
+    CENTER("中间指定一个方向", "2", "2940", "2930", "2", "long", "2930"),
+    DOWN("下层做多", "2", "2930", "2920", "2", "long", "2920"),
+    DOWN_ONE("下层做空", "2", "2920", "2910", "2", "short", "2920");
+
+    private String name;
+    private String xiaoshu_weishu;
+    private String jiage_shangxian;
+    private String jiage_xiaxian;
+    private String jian_ju;
+    private String fang_xiang;
+    private String zhi_sun_dian;
+
+    WangGeListEnum(String name, String xiaoshu_weishu, String jiage_shangxian, String jiage_xiaxian, String jian_ju, String fang_xiang, String zhi_sun_dian) {
+        this.name = name;
+        this.xiaoshu_weishu = xiaoshu_weishu;
+        this.jiage_shangxian = jiage_shangxian;
+        this.jiage_xiaxian = jiage_xiaxian;
+        this.jian_ju = jian_ju;
+        this.fang_xiang = fang_xiang;
+        this.zhi_sun_dian = zhi_sun_dian;
+    }
+
+    /**
+     * 根据价格获取匹配的网格信息
+     * @param price 待比较的价格
+     * @return 匹配的网格枚举信息,如果没有匹配项则返回null
+     */
+    public static WangGeListEnum getGridByPrice(BigDecimal price) {
+        for (WangGeListEnum grid : WangGeListEnum.values()) {
+            BigDecimal upperLimit = new BigDecimal(grid.jiage_shangxian);
+            BigDecimal lowerLimit = new BigDecimal(grid.jiage_xiaxian);
+
+            // 确保上限大于下限
+            if (upperLimit.compareTo(lowerLimit) > 0) {
+                // 检查价格是否在区间内
+                if (price.compareTo(lowerLimit) > 0 && price.compareTo(upperLimit) <= 0) {
+                    return grid;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据枚举名称获取枚举
+     */
+    public static WangGeListEnum getByName(String name) {
+        for (WangGeListEnum grid : WangGeListEnum.values()) {
+            if (grid.name.equals(name)) {
+                return grid;
+            }
+        }
+        return null;
+    }
+
+}

--
Gitblit v1.9.1