From ce624fe5b2c05f6ddd649f33ad6ebabc7e975f55 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 24 一月 2025 18:00:50 +0800
Subject: [PATCH] bug修复

---
 l2/l2_limitup_sell_data_manager.py |   59 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/l2/l2_limitup_sell_data_manager.py b/l2/l2_limitup_sell_data_manager.py
index 6723696..d4406f9 100644
--- a/l2/l2_limitup_sell_data_manager.py
+++ b/l2/l2_limitup_sell_data_manager.py
@@ -3,6 +3,7 @@
 """
 from code_attribute import gpcode_manager
 from l2 import l2_log
+from l2.l2_data_util import L2DataUtil
 from log_module import async_log_util, log_export
 from log_module.log import hx_logger_l2_sell_delegate, hx_logger_l2_sell_deal
 from utils import tool
@@ -24,11 +25,11 @@
     __delegating_sell_num_dict = {}
 
     @classmethod
-    def add_l2_origin_data(cls, code, origin_datas):
+    def add_l2_data(cls, code, add_datas):
         """
         娣诲姞L2濮旀墭鍘熷鏁版嵁
         @param code: 浠g爜
-        @param origin_datas: 鍘熷鏁版嵁
+        @param add_datas: 鏂板鐨勬牸寮忓寲鏁版嵁
         @return:
         """
         try:
@@ -40,25 +41,23 @@
                 cls.__delegating_sell_num_dict[code] = 0
 
             limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
-            for d in origin_datas:
-                order_no, price, volume = d[8], d[1], d[2]
-                if price != limit_up_price:
-                    continue
-                if d[9] == 'D':
-                    if d[3] != '1':
-                        # 鍗栨挙
-                        cls.__order_no_set_dict[code].discard(order_no)
-                        cls.__delegating_sell_num_dict[code] -= volume
-                        async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
-                                                        f"{code}-鍗栨挙-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
-                else:
-                    if d[3] != '1':
-                        # 鍗�
-                        cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume)
-                        cls.__order_no_set_dict[code].add(order_no)
-                        cls.__delegating_sell_num_dict[code] += volume
-                        async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
-                                                        f"{code}-鍗�-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
+            for d in add_datas:
+                val = d["val"]
+                if L2DataUtil.is_limit_up_price_sell(val):
+                    # 鍗�
+                    order_no, price, volume = val["orderNo"], val["price"], val["num"]*100
+                    cls.__order_no_data_map_dict[code][order_no] = (order_no, price, volume)
+                    cls.__order_no_set_dict[code].add(order_no)
+                    cls.__delegating_sell_num_dict[code] += volume
+                    async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
+                                                    f"{code}-鍗�-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
+                elif L2DataUtil.is_limit_up_price_sell_cancel(val):
+                    # 鍗栨挙
+                    order_no, price, volume = val["orderNo"], val["price"], val["num"] * 100
+                    cls.__order_no_set_dict[code].discard(order_no)
+                    cls.__delegating_sell_num_dict[code] -= volume
+                    async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
+                                                    f"{code}-鍗栨挙-{(order_no, price, volume)}-{cls.__delegating_sell_num_dict[code]}")
         except:
             pass
 
@@ -115,15 +114,15 @@
         @param code:
         @return:
         """
-        if code in cls.__order_no_set_dict:
-            cls.__order_no_set_dict.pop(code)
+        if cls.__order_no_set_dict.get(code):
+            cls.__order_no_set_dict[code].clear()
 
-        if code in cls.__order_no_data_map_dict:
-            cls.__order_no_data_map_dict.pop(code)
+        if cls.__order_no_data_map_dict.get(code):
+            cls.__order_no_data_map_dict[code].clear()
 
-        if code in cls.__delegating_sell_num_dict:
-            cls.__delegating_sell_num_dict.pop(code)
-            async_log_util.l2_data_log.info(hx_logger_l2_sell_deal,
+        if cls.__delegating_sell_num_dict.get(code):
+            cls.__delegating_sell_num_dict[code] = 0
+            async_log_util.l2_data_log.info(hx_logger_l2_sell_delegate,
                                             f"鍑虹幇涓诲姩鍗栨竻闄ゆ暟鎹細{code}")
 
 
@@ -144,4 +143,6 @@
             fdatas.append(x)
     total_delegate = sum([x[2][2] for x in fdatas])
     print(fdatas)
-    print("鎬诲鎵�", total_delegate, total_delegate*20.41)
+    for d in fdatas:
+        print(d)
+    print("鎬诲鎵�", total_delegate, total_delegate * 20.41)

--
Gitblit v1.8.0