From 2f2516749615da866e96d8d24e499b7ecbb63a3e Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 23 六月 2025 12:28:52 +0800
Subject: [PATCH] 默认交易模式变更/真实下单位置计算位置修改

---
 l2_data_util.py |  111 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 59 insertions(+), 52 deletions(-)

diff --git a/l2_data_util.py b/l2_data_util.py
index 25ad36b..24c66ac 100644
--- a/l2_data_util.py
+++ b/l2_data_util.py
@@ -4,13 +4,14 @@
 """
 
 # 姣旇緝鏃堕棿鐨勫ぇ灏�
-import datetime
 import json
 import time
-from tool import async_call
 
-import l2_data_manager
-import tool
+from db.redis_manager_delegate import RedisUtils
+from utils.tool import async_call
+
+from l2 import l2_data_manager
+from utils import tool
 
 
 def run_time():
@@ -24,6 +25,53 @@
         return infunc
 
     return decorator
+
+
+# 鏄惁涓哄ぇ鍗�
+def is_big_money(val, is_ge=False):
+    """
+    鍒ゆ柇鏄惁涓哄ぇ鍗�
+    @param val: l2鏁版嵁
+    @param is_ge: 鏄惁涓哄垱涓氭澘
+    @return:
+    """
+    price = float(val["price"])
+    money = round(price * val["num"], 2)
+    if is_ge:
+        if money >= 29900 or val["num"] >= 2999:
+            return True
+        else:
+            return False
+    else:
+        if price > 3.0:
+            if money >= 29900 or val["num"] >= 7999:
+                return True
+            else:
+                return False
+        else:
+            max_money = price * 10000
+            if money >= max_money * 0.95:
+                return True
+            else:
+                return False
+
+
+# 鑾峰彇澶ц祫閲戠殑閲戦
+def get_big_money_val(limit_up_price, is_ge=False):
+    if is_ge:
+        return min(299 * 10000, round(limit_up_price * 2900 * 100))
+    else:
+        if limit_up_price > 3.0:
+            return min(299 * 10000, round(limit_up_price * 7999 * 100))
+        else:
+            max_money = limit_up_price * 10000 * 100
+            return int(max_money * 0.95)
+
+# if int(val["num"]) >= constant.BIG_MONEY_NUM:
+#     return True
+# if int(val["num"]) * limit_up_price >= constant.BIG_MONEY_AMOUNT:
+#     return True
+# return False_
 
 
 def compare_time(time1, time2):
@@ -48,20 +96,6 @@
     json_value = json.loads(value)
     _data = {"key": key, "val": item, "re": json_value["re"], "index": int(json_value["index"])}
     return _data
-
-
-# 灏嗘暟鎹牴鎹畁um-operate鍒嗙被
-def load_num_operate_map(local_today_num_operate_map, code, source_datas, clear=False):
-    if local_today_num_operate_map.get(code) is None:
-        local_today_num_operate_map[code] = {}
-    if clear:
-        local_today_num_operate_map[code] = {}
-
-    for data in source_datas:
-        key = "{}-{}-{}".format(data["val"]["num"], data["val"]["operateType"], data["val"]["price"])
-        if local_today_num_operate_map[code].get(key) is None:
-            local_today_num_operate_map[code].setdefault(key, [])
-        local_today_num_operate_map[code].get(key).append(data)
 
 
 # 鍑忓幓鏃堕棿
@@ -104,32 +138,6 @@
     max_time = __sub_time(cancel_data["val"]["time"], min_space)
     min_time = __sub_time(cancel_data["val"]["time"], max_space)
     return min_time, max_time
-
-
-# 鏍规嵁涔版挙鏁版嵁(涓庝粖鏃ユ�荤殑鏁版嵁)璁$畻涔板叆鏁版嵁
-def get_buy_data_with_cancel_data(cancel_data, local_today_num_operate_map):
-    min_space, max_space = compute_time_space_as_second(cancel_data["val"]["cancelTime"],
-                                                        cancel_data["val"]["cancelTimeUnit"])
-    max_time = __sub_time(cancel_data["val"]["time"], min_space)
-    min_time = __sub_time(cancel_data["val"]["time"], max_space)
-    buy_datas = local_today_num_operate_map.get(
-        "{}-{}-{}".format(cancel_data["val"]["num"], "0", cancel_data["val"]["price"]))
-    if buy_datas is None:
-        # 鏃犳暟鎹�
-        return None, None
-    for i in range(0, len(buy_datas)):
-        data = buy_datas[i]
-        if int(data["val"]["operateType"]) != 0:
-            continue
-        if int(data["val"]["num"]) != int(cancel_data["val"]["num"]):
-            continue
-        if min_space == 0 and max_space == 0:
-            if compare_time(data["val"]["time"], min_time) == 0:
-                return data["index"], data
-
-        elif compare_time(data["val"]["time"], min_time) > 0 and compare_time(data["val"]["time"], max_time) <= 0:
-            return data["index"], data
-    return None, None
 
 
 # 鍒ゆ柇鍗栨挙鐨勫崠淇″彿鏄惁鍦ㄧ洰鏍囦俊鍙蜂箣鍓�
@@ -185,28 +193,27 @@
         if abs(get_time_as_seconds(time_str) - get_time_as_seconds(time_)) > 3:
             continue
         if same_time_nums[time_] > 20:
-            redis = l2_data_manager._redisManager.getRedis()
-            redis.setex("big_data-{}-{}".format(code, int(round(time.time() * 1000))), tool.get_expire(), d1)
+            RedisUtils.setex(l2_data_manager._redisManager.getRedis(),
+                             "big_data-{}-{}".format(code, int(round(time.time() * 1000))), tool.get_expire(),
+                             d1)
             break
 
 
 # 淇濆瓨l2鏈�鏂版暟鎹殑澶у皬
-@async_call
+# @async_call
 def save_l2_latest_data_number(code, num):
-    redis = l2_data_manager._redisManager.getRedis()
-    redis.setex("l2_latest_data_num-{}".format(code), 3, num)
+    RedisUtils.setex(l2_data_manager._redisManager.getRedis(), "l2_latest_data_num-{}".format(code), 3, num)
 
 
 # 鑾峰彇鏈�鏂版暟鎹潯鏁�
 def get_l2_latest_data_number(code):
-    redis = l2_data_manager._redisManager.getRedis()
-    num = redis.get("l2_latest_data_num-{}".format(code))
+    num = RedisUtils.get(l2_data_manager._redisManager.getRedis(), "l2_latest_data_num-{}".format(code))
     if num is not None:
         return int(num)
     return None
 
 
-# l2鏁版嵁鎷兼帴宸ュ叿 TODO 鏆傛椂杩樻湭鍚敤
+# l2鏁版嵁鎷兼帴宸ュ叿  鏆傛椂杩樻湭鍚敤
 class L2DataConcatUtil:
 
     # 鍒濆鍖�

--
Gitblit v1.8.0