From b8eff41fef7b4ee2c20a4d268ac83a4f420f34b0 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 21 十一月 2024 14:26:13 +0800
Subject: [PATCH] 测试日志

---
 third_data/code_plate_key_manager.py |  103 +++++++++++++++++++++------------------------------
 1 files changed, 43 insertions(+), 60 deletions(-)

diff --git a/third_data/code_plate_key_manager.py b/third_data/code_plate_key_manager.py
index 28d6f7f..7a08121 100644
--- a/third_data/code_plate_key_manager.py
+++ b/third_data/code_plate_key_manager.py
@@ -18,7 +18,7 @@
 from log_module import async_log_util
 from db import redis_manager_delegate as redis_manager
 
-from log_module.log import logger_kpl_block_can_buy, logger_kpl_jx_out, logger_kpl_jx_in
+from log_module.log import logger_kpl_block_can_buy, logger_kpl_jx_out, logger_kpl_jx_in, logger_debug
 from third_data.kpl_util import KPLPlatManager
 from trade import trade_manager, l2_trade_util, trade_constant
 
@@ -40,7 +40,10 @@
     def __new__(cls, *args, **kwargs):
         if not cls.__instance:
             cls.__instance = super(KPLCodeJXBlockManager, cls).__new__(cls, *args, **kwargs)
-            cls.__load_data()
+            try:
+                cls.__load_data()
+            except Exception as e:
+                logger_debug.exception(e)
         return cls.__instance
 
     @classmethod
@@ -330,8 +333,10 @@
 
 # 瀹炴椂寮�鐩樺暒甯傚満鏁版嵁
 class RealTimeKplMarketData:
-    # 绮鹃�夊墠5
-    top_5_reason_list = []
+    # 娴佸叆缂撳瓨
+    top_in_list_cache = []
+    # 娴佸嚭缂撳瓨
+    top_out_list_cache = []
     # 琛屼笟鍓�5
     top_5_industry_list = []
     #
@@ -342,9 +347,11 @@
     __LimitUpCodesPlateKeyManager = LimitUpCodesPlateKeyManager()
     __KPLPlatManager = KPLPlatManager()
     # 绮鹃�夋祦鍏ュ墠鍑�
-    __top_jx_blocks = set()
+    __top_jx_blocks = []
     # 绮鹃�夋祦鍑哄墠鍑�
-    __top_jx_out_blocks = set()
+    __top_jx_out_blocks = []
+    # 绮鹃�夋澘鍧楁祦鍏ラ噾棰�
+    __jx_blocks_in_money_dict = {}
 
     @classmethod
     def set_market_jingxuan_blocks(cls, datas):
@@ -360,42 +367,31 @@
         #         break
         #     blocks.add(data[1])
         # cls.__top_jx_blocks = blocks
-        if True:
-            return
+        cls.top_in_list_cache = datas
         blocks = set()
+        count = 0
+        fblock_money = {}
         for data in datas:
+            cls.__jx_blocks_in_money_dict[data[1]] = data[3]
             if data[1] in constant.KPL_INVALID_BLOCKS:
                 continue
             if data[3] < 5e7:
                 continue
-            blocks.add(data[1])
-            if len(blocks) >= 10:
+            # 杩囨护鍑烘潵涓哄悓涓�涓澘鍧楀氨鍙畻1涓暟閲�
+            fb = BlockMapManager().filter_blocks({data[1]})
+            if blocks & fb:
+                continue
+            for b in fb:
+                fblock_money[b] = data[3]
+            blocks |= fb
+            count += 1
+            if count >= 10:
                 break
-            blocks.add(kpl_util.filter_block(data[1]))
         # 璁板綍绮鹃�夋祦鍑烘棩蹇�
         async_log_util.info(logger_kpl_jx_in, f"鍘熸暟鎹細{datas[:20]} 鏉垮潡锛歿blocks}")
-        cls.__top_jx_blocks = BlockMapManager().filter_blocks(blocks)
-
-    @classmethod
-    def set_market_jingxuan_blocks_from_custom(cls, datas):
-        """
-        璁剧疆鑷畾涔夌簿閫夋祦鍏ユ暟鎹�
-        @param datas:[(鏉垮潡,娴佸叆閲戦)]
-        @return:
-        """
-        blocks = set()
-        for data in datas:
-            if data[0] in constant.KPL_INVALID_BLOCKS:
-                continue
-            if data[1] < 5e7:
-                continue
-            blocks.add(data[0])
-            if len(blocks) >= 10:
-                break
-            blocks.add(kpl_util.filter_block(data[0]))
-        # 璁板綍绮鹃�夋祦鍑烘棩蹇�
-        async_log_util.info(logger_kpl_jx_in, f"鍘熸暟鎹細{datas[:20]} 鏉垮潡锛歿blocks}")
-        cls.__top_jx_blocks = BlockMapManager().filter_blocks(blocks)
+        blocks = list(blocks)
+        blocks.sort(key=lambda x: fblock_money.get(x), reverse=True)
+        cls.__top_jx_blocks = blocks
 
     @classmethod
     def set_market_jingxuan_out_blocks(cls, datas):
@@ -404,44 +400,27 @@
         @param datas:
         @return:
         """
-        if True:
-            return
+        cls.top_out_list_cache = datas
+        count = 0
         blocks = set()
         for data in datas:
+            cls.__jx_blocks_in_money_dict[data[1]] = data[3]
             if data[1] in constant.KPL_INVALID_BLOCKS:
                 continue
             if data[3] > -5e7:
                 # 杩囨护5鍗冧竾浠ヤ笂鐨�
                 break
-            blocks.add(data[1])
-            if len(blocks) >= 10:
-                break
-            blocks.add(kpl_util.filter_block(data[1]))
-        # 璁板綍绮鹃�夋祦鍑烘棩蹇�
-        async_log_util.info(logger_kpl_jx_out, f"鍘熸暟鎹細{datas[:10]} 鏉垮潡锛歿blocks}")
-        cls.__top_jx_out_blocks = BlockMapManager().filter_blocks(blocks)
-
-    @classmethod
-    def set_market_jingxuan_out_blocks_from_custom(cls, datas):
-        """
-        璁剧疆鑷畾涔夌簿閫夋祦鍑烘暟鎹�
-        @param datas:[(鏉垮潡,娴佸叆閲戦)]
-        @return:
-        """
-        blocks = set()
-        for data in datas:
-            if data[0] in constant.KPL_INVALID_BLOCKS:
+            # 杩囨护鍑烘潵涓哄悓涓�涓澘鍧楀氨鍙畻1涓暟閲�
+            fb = BlockMapManager().filter_blocks({data[1]})
+            if blocks & fb:
                 continue
-            if data[1] > -5e7:
-                # 杩囨护5鍗冧竾浠ヤ笂鐨�
+            blocks |= fb
+            count += 1
+            if count >= 10:
                 break
-            blocks.add(data[0])
-            if len(blocks) >= 10:
-                break
-            blocks.add(kpl_util.filter_block(data[0]))
         # 璁板綍绮鹃�夋祦鍑烘棩蹇�
         async_log_util.info(logger_kpl_jx_out, f"鍘熸暟鎹細{datas[:10]} 鏉垮潡锛歿blocks}")
-        cls.__top_jx_out_blocks = BlockMapManager().filter_blocks(blocks)
+        cls.__top_jx_out_blocks = list(blocks)
 
     @classmethod
     def get_top_market_jingxuan_blocks(cls):
@@ -493,6 +472,10 @@
         else:
             return False, None
 
+    @classmethod
+    def get_jx_block_in_money(cls, block):
+        return cls.__jx_blocks_in_money_dict.get(block)
+
 
 # 浠g爜鍘嗗彶娑ㄥ仠鍘熷洜涓庢澘鍧楃鐞�
 class CodesHisReasonAndBlocksManager:

--
Gitblit v1.8.0