From 21d753614ea7bbe936b8560cbf466c4e438821b2 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 23 九月 2022 16:08:16 +0800
Subject: [PATCH] l2数据计算优化

---
 l2_data_util.py |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/l2_data_util.py b/l2_data_util.py
index 908ffcd..65ac266 100644
--- a/l2_data_util.py
+++ b/l2_data_util.py
@@ -42,7 +42,7 @@
         local_today_num_operate_map[code] = {}
 
     for data in source_datas:
-        key = "{}-{}".format(data["val"]["num"], data["val"]["operateType"])
+        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)
@@ -81,13 +81,13 @@
 
 
 # 鏍规嵁涔版挙鏁版嵁(涓庝粖鏃ユ�荤殑鏁版嵁)璁$畻涔板叆鏁版嵁
-def get_buy_data_with_cancel_data(cancel_data,local_today_num_operate_map):
+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"))
+    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
@@ -97,7 +97,11 @@
             continue
         if int(data["val"]["num"]) != int(cancel_data["val"]["num"]):
             continue
-        if compare_time(data["val"]["time"], min_time) > 0 and compare_time(data["val"]["time"], max_time) <= 0:
+        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
 
@@ -107,6 +111,7 @@
 
 @async_call
 def save_big_data(code, same_time_nums, datas):
+    return None
     latest_datas = __last_big_data.get(code)
     d1 = json.dumps(datas)
     d2 = json.dumps(latest_datas)
@@ -118,7 +123,7 @@
         for i in range(len(d1)):
             if d1[i] != d2[i]:
                 # 淇濆瓨蹇収
-                logger_l2_big_data.debug("code:{} d1:{}  d2:{}", code, d1[i - 60: i + 30], d2[i - 60: i + 30])
+                # logger_l2_big_data.debug("code:{} d1:{}  d2:{}", code, d1[i - 60: i + 30], d2[i - 60: i + 30])
                 break
 
     for key in same_time_nums:
@@ -137,7 +142,8 @@
     # today_datas=[{"val": {"operateType": 1, "num": 1520, "cancelTime": 1, "cancelTimeUnit": 0, "time": "09:32:30"}},{"val": {"operateType": 0, "num": 1520, "cancelTime": 0, "cancelTimeUnit": 0, "time": "09:31:31"}}]
     # result= get_buy_data_with_cancel_data(cancel_data,today_datas)
     # print(result)
-    redis = l2_data_manager._redisManager.getRedis()
-    keys = redis.keys("big_data-*")
-    for k in keys:
-        redis.delete(k)
+    code = "001209"
+    l2_data_manager.load_l2_data(code)
+    total_datas = l2_data_manager.local_today_datas[code]
+    index, data = get_buy_data_with_cancel_data(total_datas[118], l2_data_manager.local_today_num_operate_map.get(code))
+    print(index, data)

--
Gitblit v1.8.0