From 8535f56dbf6e410b4a09f02f95d4d49bcc8753f2 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 27 三月 2023 18:58:54 +0800
Subject: [PATCH] 看盘页面数据调整

---
 third_data/hot_block_data_process.py |   61 ++++++++++++++++++------------
 1 files changed, 36 insertions(+), 25 deletions(-)

diff --git a/third_data/hot_block_data_process.py b/third_data/hot_block_data_process.py
index 11afd89..6ff6a26 100644
--- a/third_data/hot_block_data_process.py
+++ b/third_data/hot_block_data_process.py
@@ -16,10 +16,12 @@
 
 class XGBHotBlockDataManager:
     total_datas = []
-    __last_datas={}
+    __last_datas = {}
+    latest_datas = None
 
     @classmethod
-    def save(cls,day, datas):
+    def save(cls, day, datas):
+        cls.latest_datas = datas
         mysqldb = mysql_data.Mysqldb()
         # 缁熻浠g爜鎵�灞炴澘鍧�
         code_block_dict = {}
@@ -35,15 +37,22 @@
                 code = code_info[0].split(".")[0]
                 _id = f"{day}_{data[0]}_{code}"
 
-                result = mysqldb.select_one("select count(*) from xgb_hot_block where _id='{}'".format(_id))
-                if not result[0]:
+                result = mysqldb.select_one("select * from xgb_hot_block where _id='{}'".format(_id))
+                limit_up_time = code_info[4]
+                if len(limit_up_time) <= 6:
+                    limit_up_time = ''
+                if not result:
                     mysqldb.execute(
-                        f"insert into xgb_hot_block(_id,_day,_block_name,_code,_limit_up_time,_price,_rate,_update_time) values('{_id}','{day}','{data[0]}','{code}','{code_info[4]}','{code_info[2]}','{code_info[3]}',now())")
+                        f"insert into xgb_hot_block(_id,_day,_block_name,_code,_limit_up_time,_price,_rate,_update_time,_first_limit_up_time) values('{_id}','{day}','{data[0]}','{code}','{code_info[4]}','{code_info[2]}','{code_info[3]}',now(),'{limit_up_time}')")
                 else:
                     # 濡傛灉涓婃鐨勬暟鎹拰杩欐涓�鏍峰氨涓嶆洿鏂帮紝鍚﹀垯闇�瑕佹洿鏂版暟鎹�
                     if cls.__last_datas.get(_id) != code_info:
-                        # 鏇存柊
-                        mysqldb.execute(f"update xgb_hot_block set _limit_up_time='{code_info[4]}',_price='{code_info[2]}',_rate='{code_info[3]}' where _id='{_id}'")
+                        mysqldb.execute(
+                            f"update xgb_hot_block set _limit_up_time='{code_info[4]}',_price='{code_info[2]}',_rate='{code_info[3]}',_update_time=now() where _id='{_id}'")
+                        if (not result[8] or len(result[8]) <= 6) and len(limit_up_time) >= 6:
+                            mysqldb.execute(
+                                f"update xgb_hot_block set _first_limit_up_time='{limit_up_time}',_update_time=now() where _id='{_id}'")
+
                 cls.__last_datas[_id] = code_info
                 # 鑾峰彇鍘熸潵鐨勪唬鐮佹墍灞炴澘鍧�,鍒犻櫎涔嬪墠閿欒鐨勬澘鍧�
                 old_datas = XGBHotBlockDataManager.list_by_code(code, day)
@@ -85,37 +94,37 @@
         return None
 
     limit_up_codes_set = set()
-    for block in latest_datas:
-        if block[0] == target_block:
-            for code_data in block[2]:
-                if len(code_data[4]) > 6:
-                    limit_up_codes_set.add(code_data[0].split('.')[0])
+    if XGBHotBlockDataManager.latest_datas:
+        for block in XGBHotBlockDataManager.latest_datas:
+            if block[0] == target_block:
+                for code_data in block[2]:
+                    if len(code_data[4]) > 6:
+                        limit_up_codes_set.add(code_data[0].split('.')[0])
     limit_up_codes_set.discard(code)
     limit_up_count = len(limit_up_codes_set)
 
     total_datas = XGBHotBlockDataManager.total_datas
-    codes = set()
+    break_codes = set()
     for data in total_datas:
         block = data[2]
         if block != target_block:
             continue
         code = data[3]
         limit_up_time = data[4]
-        if len(limit_up_time) > 6:
-            codes.add(code)
-    codes.discard(code)
-    codes.difference(limit_up_codes_set)
+        first_limit_up_time = data[8]
+        if len(limit_up_time) <= 6 and first_limit_up_time and len(first_limit_up_time) > 6:
+            break_codes.add(code)
+    # 鎺掗櫎鑷繁
+    break_codes.discard(code)
+    # 鎺掗櫎宸茬粡娑ㄥ仠鐨勪唬鐮�
+    break_codes = break_codes.difference(limit_up_codes_set)
     # 鐐告澘涓暟
-    break_size = len(codes)
-    return (limit_up_count,break_size)
-
-
-latest_datas = []
+    break_size = len(break_codes)
+    return target_block, limit_up_count, break_size
 
 
 # 淇濆瓨鏁版嵁
 def save_datas(day, datas):
-    latest_datas = datas
     XGBHotBlockDataManager.save(day, datas)
     code_block_dict = {}
     block_codes_dict = {}
@@ -167,5 +176,7 @@
 
 
 if __name__ == "__main__":
-    XGBHotBlockDataManager.total_datas=XGBHotBlockDataManager.list_all("2023-03-23")
-    get_info('002230')
+    # XGBHotBlockDataManager.total_datas=XGBHotBlockDataManager.list_all("2023-03-23")
+    # get_info('002230')
+    codes = set([1, 2, 3, 4])
+    print(codes.difference(set([1, 2])))

--
Gitblit v1.8.0