From 751183dcd74207a50834cacc575f0dfccb41658c Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 06 六月 2023 18:13:05 +0800
Subject: [PATCH] 交易优化,看盘接口完善

---
 third_data/kpl_data_manager.py |   52 ++++++++++++++++++++++++----------------------------
 1 files changed, 24 insertions(+), 28 deletions(-)

diff --git a/third_data/kpl_data_manager.py b/third_data/kpl_data_manager.py
index 8904b81..1d960fc 100644
--- a/third_data/kpl_data_manager.py
+++ b/third_data/kpl_data_manager.py
@@ -6,13 +6,15 @@
 
 # 寮�鐩樺暒鍘嗗彶娑ㄥ仠鏁版嵁绠$悊
 from db import mysql_data, redis_manager
-from l2 import code_price_manager
 from log import logger_kpl_limit_up_reason_change
-from third_data import kpl_util
-from third_data.code_plate_key_manager import LimitUpCodesPlateKeyManager
+from third_data import kpl_util, kpl_api
+from third_data.code_plate_key_manager import LimitUpCodesPlateKeyManager, CodesHisReasonAndBlocksManager
 
 
 # 浠g爜瀵瑰簲鐨勬定鍋滃師鍥犱繚瀛�
+from third_data.kpl_util import KPLPlatManager
+
+
 class KPLCodeLimitUpReasonManager:
     __redisManager = redis_manager.RedisManager(3)
 
@@ -31,30 +33,6 @@
         return dict_
 
 
-class KPLPlatManager:
-    def save_plat(self, _id, name):
-        if not _id:
-            return
-        mysqldb = mysql_data.Mysqldb()
-        key = f"{_id}-{name}"
-        results = mysqldb.select_one(f"select * from kpl_plate where _name='{name}'")
-        if not results:
-            mysqldb.execute(f"insert into kpl_plate(_id,_name,_key) values({_id},'{name}','{key}')")
-
-    def get_plat(self, name):
-        mysqldb = mysql_data.Mysqldb()
-        results = mysqldb.select_one(f"select * from kpl_plate where _name='{name}'")
-        if results:
-            return results[0]
-        return None
-
-    def get_same_plat_names(self, name):
-        mysqldb = mysql_data.Mysqldb()
-        plate = self.get_plat(name)
-        if not plate:
-            return {name}
-        results = mysqldb.select_all(f"select _name from kpl_plate where _id='{plate}'")
-        return set([r[0] for r in results])
 
 
 class KPLLimitUpDataRecordManager:
@@ -62,6 +40,22 @@
     latest_datas = {}
     __kplPlatManager = KPLPlatManager()
     __LimitUpCodesPlateKeyManager = LimitUpCodesPlateKeyManager()
+    __CodesPlateKeysManager = CodesHisReasonAndBlocksManager()
+
+    @classmethod
+    def __load_hist_and_blocks(cls,code):
+        # 鏈夋暟鎹柊澧烇紝鍔犺浇鍘嗗彶鍘熷洜涓庢澘鍧�
+        his_reasons = cls.get_latest_infos(code, 10, False)
+        his_reasons = set([r[0] for r in his_reasons])
+        cls.__CodesPlateKeysManager.set_history_limit_up_reason(code, his_reasons)
+        try:
+            if not cls.__CodesPlateKeysManager.get_blocks(code):
+                results = kpl_api.getStockIDPlate(code)
+                bs = [r[1] for r in results]
+                cls.__CodesPlateKeysManager.set_blocks(code, bs)
+        except Exception as e:
+            pass
+
 
     @classmethod
     def save_record(cls, day, records):
@@ -96,7 +90,7 @@
             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]})")
-
+                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(
@@ -126,6 +120,8 @@
     def load_total_datas(cls):
         cls.total_datas = KPLLimitUpDataRecordManager.list_all(tool.get_now_date_str())
         cls.__LimitUpCodesPlateKeyManager.set_today_total_limit_up([(r[3], r[2]) for r in cls.total_datas])
+        for d in cls.total_datas:
+            cls.__load_hist_and_blocks(d[3])
 
     @staticmethod
     def list_all(day):

--
Gitblit v1.8.0