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/kpl_data_manager.py |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/third_data/kpl_data_manager.py b/third_data/kpl_data_manager.py
index 149b542..4c094cd 100644
--- a/third_data/kpl_data_manager.py
+++ b/third_data/kpl_data_manager.py
@@ -72,7 +72,13 @@
             pass
 
     @classmethod
-    def save_record(cls, day, records):
+    def save_record(cls, day, records, set_not_open=False):
+        """
+        @param day:
+        @param records:
+        @param set_not_open: 鏄惁闇�瑕佽缃偢鏉夸笌鍚�
+        @return:
+        """
         # 缁熻鐐告澘
         try:
             last_codes = set()
@@ -142,13 +148,17 @@
             result = mysqldb.select_one("select * from kpl_limit_up_record where _id='{}'".format(_id))
             if not result:
                 mysqldb.execute(
-                    f"insert into kpl_limit_up_record(_id,_day,_hot_block_name,_code,_code_name,_limit_up_time,_blocks,_latest_limit_up_time,_update_time,_create_time,_hot_block_code_count,_limit_up_high_info,_zylt_val) values('{_id}','{day}','{d[5]}','{d[0]}','{d[1]}','{d[2]}','{d[6]}','{d[3]}',now(),now(),{d[10]},'{d[4]}',{d[7]})")
+                    f"insert into kpl_limit_up_record(_id,_day,_hot_block_name,_code,_code_name,_limit_up_time,_blocks,_latest_limit_up_time,_update_time,_create_time,_hot_block_code_count,_limit_up_high_info,_zylt_val,_hot_block_code) values('{_id}','{day}','{d[5]}','{d[0]}','{d[1]}','{d[2]}','{d[6]}','{d[3]}',now(),now(),{d[10]},'{d[4]}',{d[7]},{d[9]})")
                 cls.__load_hist_and_blocks(code)
             else:
                 if _id in cls.latest_datas and json.dumps(cls.latest_datas.get(_id)) != json.dumps(d):
                     mysqldb.execute(
                         f"update kpl_limit_up_record set _latest_limit_up_time='{d[3]}',_limit_up_time='{d[2]}',_hot_block_code_count={d[10]},_limit_up_high_info='{d[4]}' ,_update_time=now() where _id='{_id}'")
                     cls.latest_datas[_id] = d
+            if set_not_open:
+                # 闇�瑕佽缃笉鐐告澘
+                mysqldb.execute(f"update kpl_limit_up_record set _open = 0, _update_time = now() where _id='{_id}'")
+
             cls.latest_datas[_id] = d
 
             # 鑾峰彇鍘熸潵鐨勪唬鐮佹墍灞炴澘鍧�,鍒犻櫎涔嬪墠閿欒鐨勬澘鍧�
@@ -367,7 +377,7 @@
                 if lines:
                     if int(file[0].replace("-", "")) <= int(max_day.replace("-", "")):
                         fresults.append((file[0], json.loads(lines[0])))
-                if len(fresults) >=count:
+                if len(fresults) >= count:
                     break
 
         return fresults
@@ -499,6 +509,12 @@
         #     # 澶т簬20s灏遍渶瑕佹洿鏂�
         #     threading.Thread(target=cls.run_market_jingxuan_out, daemon=True).start()
 
+        key = "market_strong"
+        if key not in cls.__latest_update_time_dict or time.time() - cls.__latest_update_time_dict[key] > 20:
+            logger_debug.info("浠诲姟淇-寮�鐩樺暒锛氬競鍦哄己搴�")
+            # 澶т簬20s灏遍渶瑕佹洿鏂�
+            threading.Thread(target=cls.run_market_strong, daemon=True).start()
+
     @classmethod
     def run_limit_up_task(cls):
         # 鍏抽棴log
@@ -559,6 +575,23 @@
                 time.sleep(3)
 
     @classmethod
+    def run_market_strong(cls):
+        """
+        绮鹃�夋祦鍑�
+        @return:
+        """
+        while True:
+            try:
+                if tool.is_trade_time():
+                    strong_value = kpl_api.getMarketStrong()
+                    cls.__upload_data("market_strong", strong_value)
+            except:
+                pass
+            finally:
+                cls.__latest_update_time_dict["market_strong"] = time.time()
+                time.sleep(3)
+
+    @classmethod
     # 杩愯鎷夊彇浠诲姟
     def run_pull_task(cls):
         def get_bidding_money():
@@ -600,6 +633,7 @@
                     time.sleep(3)
 
         threading.Thread(target=cls.run_limit_up_task, daemon=True).start()
+        threading.Thread(target=cls.run_market_strong, daemon=True).start()
         # threading.Thread(target=get_bidding_money, daemon=True).start()
         # threading.Thread(target=get_market_industry, daemon=True).start()
         # threading.Thread(target=cls.run_market_jingxuan_in, daemon=True).start()

--
Gitblit v1.8.0