From ae8d76a456b64c1c6c4ebf11b6ec33b7df217b1a Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 18 八月 2025 13:43:46 +0800
Subject: [PATCH] bug修复

---
 third_data/custom_block_in_money_manager.py |   76 +++++++++++++++++++++++++++++++++----
 1 files changed, 67 insertions(+), 9 deletions(-)

diff --git a/third_data/custom_block_in_money_manager.py b/third_data/custom_block_in_money_manager.py
index 82f880f..f0d7a12 100644
--- a/third_data/custom_block_in_money_manager.py
+++ b/third_data/custom_block_in_money_manager.py
@@ -6,6 +6,7 @@
 import os
 
 import constant
+import l2_data_util
 from db import mysql_data_delegate as mysql_data
 from huaxin_client import l1_subscript_codes_manager
 from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager
@@ -18,8 +19,15 @@
     def __init__(self):
         # 鎬荤殑鍑�娴佸叆
         self.__code_money_dict = {}
-        # 鍑�娴佸叆澶у崟閲戦
-        self.__code_big_buy_mmoney_list_dict = {}
+        # 鎬讳拱鍗曚俊鎭細{"code":[閲戦, 鏁伴噺]}
+        self.__code_buy_money_dict = {}
+        # 鎬诲崠鍗曚俊鎭細{"code":[閲戦, 鏁伴噺]}
+        self.__code_sell_money_dict = {}
+
+        # 鍑�娴佸叆澶у崟涔伴噾棰�
+        self.__code_big_buy_money_list_dict = {}
+        # 鍑�娴佸嚭澶у崟鍗栭噾棰�
+        self.__code_big_sell_money_list_dict = {}
         self.__latest_price = {}
         self.__load_data()
 
@@ -34,23 +42,50 @@
                     self.add_data(item)
 
     def add_data(self, item):
+        """
+        娣诲姞鏁版嵁
+        @param item: (浠g爜,绫诲瀷, 璁㈠崟鏁版嵁)  璁㈠崟鏁版嵁锛�(璁㈠崟鍙�, 閲�, 閲戦, 鏃堕棿, 鏈�鏂版垚浜や环鏍�)
+        @return:
+        """
         code = item[0]
         if code not in self.__code_money_dict:
             self.__code_money_dict[code] = 0
-        if not tool.is_ge_code(code) and item[2][2] < 299e4:
-            return
+
+        if code not in self.__code_buy_money_dict:
+            self.__code_buy_money_dict[code] = [0, 0]
+
+        if code not in self.__code_sell_money_dict:
+            self.__code_sell_money_dict[code] = [0, 0]
+
+        if not tool.is_ge_code(code):
+            big_money = l2_data_util.get_big_money_val(item[2][4])
+            if item[2][2] < big_money:
+                # 涓嶆槸甯歌瀹氫箟鐨勫ぇ鍗曞氨杩斿洖
+                return
         if tool.is_ge_code(code) and item[2][2] < 299e4 and item[2][1] < 290000:
             return
         if item[1] == 0:
             # item[2]鐨勬暟鎹粨鏋勶細  (涔板崟鍙�, 閲�, 閲戦, 鏃堕棿, 鏈�鏂版垚浜や环鏍�)
             self.__code_money_dict[code] += item[2][2]
-            if code not in self.__code_big_buy_mmoney_list_dict:
-                self.__code_big_buy_mmoney_list_dict[code] = []
-            # 澶т拱鍗曚俊鎭細(閲戦,鏈�鍚庝环鏍�)
+            self.__code_buy_money_dict[code][0] += item[2][2]
+            self.__code_buy_money_dict[code][1] += 1
+
+            if code not in self.__code_big_buy_money_list_dict:
+                self.__code_big_buy_money_list_dict[code] = []
+            # 澶т拱鍗曚俊鎭細(閲戦, 鏈�鏂颁环鏍�, 璁㈠崟鍙�)
             if len(item[2]) >= 5:
-                self.__code_big_buy_mmoney_list_dict[code].append((item[2][2], item[2][4], item[2][0]))
+                self.__code_big_buy_money_list_dict[code].append((item[2][2], item[2][4], item[2][0]))
         else:
             self.__code_money_dict[code] -= item[2][2]
+            self.__code_sell_money_dict[code][0] += item[2][2]
+            self.__code_sell_money_dict[code][1] += 1
+            # 澶у崠鍗曚俊鎭�
+            if code not in self.__code_big_sell_money_list_dict:
+                self.__code_big_sell_money_list_dict[code] = []
+            if len(item[2]) >= 5:
+                # 澶у崠鍗曚俊鎭細(閲戦, 鏈�鏂颁环鏍�, 璁㈠崟鍙�)
+                self.__code_big_sell_money_list_dict[code].append((item[2][2], item[2][4], item[2][0]))
+
         self.__latest_price[code] = item[2][4]
 
     def get_code_money_dict(self):
@@ -61,6 +96,15 @@
             return self.__code_money_dict.get(code)
         return 0
 
+    def get_money_info(self, code):
+        """
+        鑾峰彇浠g爜娴佸叆淇℃伅
+        @param code: 浠g爜淇℃伅
+        @return: 鍑�娴佸叆閲戦,[澶у崟涔伴噾棰�, 澶у崟涔版暟閲廬,[澶у崟鍗栭噾棰�,澶у崟鍗栨暟閲廬
+        """
+        return self.__code_money_dict.get(code), self.__code_buy_money_dict.get(code), self.__code_sell_money_dict.get(
+            code)
+
     def set_money(self, code, money):
         self.__code_money_dict[code] = money
 
@@ -70,7 +114,15 @@
         @param code:
         @return:[(閲戦, 浠锋牸, 璁㈠崟鍙�)]
         """
-        return self.__code_big_buy_mmoney_list_dict.get(code)
+        return self.__code_big_buy_money_list_dict.get(code)
+
+    def get_big_sell_money_list(self, code):
+        """
+        鑾峰彇浠g爜鐨勫ぇ涔板崟鍒楄〃
+        @param code:
+        @return:[(閲戦, 浠锋牸, 璁㈠崟鍙�)]
+        """
+        return self.__code_big_sell_money_list_dict.get(code)
 
     def get_latest_price(self, code):
         return self.__latest_price.get(code)
@@ -215,6 +267,12 @@
             money = CodeInMoneyManager().get_money(code)
             if money is None:
                 continue
+            # 澶ц嚜鐢辨祦閫氬競鍊肩殑娴佸嚭涓嶇畻
+            if money < 0:
+                price = CodeInMoneyManager().get_latest_price(code)
+                zylt_volume = global_util.zylt_volume_map.get(code)
+                if price and zylt_volume and zylt_volume * price > 200e8:
+                    continue
             before_fblocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(code)
             if not before_fblocks:
                 before_fblocks = set()

--
Gitblit v1.8.0