From e90601a93ef11d553ae1c8666ab9be8c587b1f49 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 04 十二月 2024 17:14:44 +0800
Subject: [PATCH] 增加L2订阅列表接口/华鑫交易登录参数修改

---
 servers/data_server.py |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/servers/data_server.py b/servers/data_server.py
index ac3bc3e..86a5cd8 100644
--- a/servers/data_server.py
+++ b/servers/data_server.py
@@ -36,7 +36,7 @@
 from output import code_info_output, limit_up_data_filter, output_util, kp_client_msg_manager
 
 from trade import bidding_money_manager, trade_manager, l2_trade_util, trade_record_log_util, trade_constant, \
-    trade_data_manager
+    trade_data_manager, current_price_process_manager
 import concurrent.futures
 
 # 绂佺敤http.server鐨勬棩蹇楄緭鍑�
@@ -812,7 +812,7 @@
                         datas = self.__kplDataManager.get_data(KPLDataType.JINGXUAN_RANK)
                         fdatas = datas
                     # 杩斿洖鏄惁鍦ㄦ祦鍏ュ墠鍑�
-                    temp_datas=[]
+                    temp_datas = []
                     for d in fdatas:
                         temp = list(d)
                         if d[1] in in_blocks:
@@ -871,6 +871,33 @@
             except  Exception as e:
                 response_data = json.dumps({"code": 1, "data": str(1)})
 
+        elif url.path == "/get_l2_subscript_codes":
+            # 鑾峰彇L2璁㈤槄鐨勪唬鐮�
+            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+            try:
+                records = LimitUpDataConstant.history_limit_up_datas
+                # 鑾峰彇鍘嗗彶娑ㄥ仠
+                if not records:
+                    KPLLimitUpDataRecordManager.load_total_datas()
+                    records = KPLLimitUpDataRecordManager.total_datas
+                if not records:
+                    records = []
+                codes = set([x[3] for x in records])
+                fdatas = []
+                if codes:
+                    block_top_in_list = RealTimeKplMarketData.top_in_list_cache
+                    in_blocks = [x[1] for x in block_top_in_list]
+                    yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
+                    if yesterday_codes is None:
+                        yesterday_codes = set()
+                    for code in codes:
+                        index = current_price_process_manager.compute_code_order(code, in_blocks[:30], yesterday_codes)
+                        if 0 <= index <= 1000:
+                            fdatas.append((code, gpcode_manager.get_code_name(code)))
+                response_data = json.dumps({"code": 0, "data": fdatas})
+            except  Exception as e:
+                response_data = json.dumps({"code": 1, "data": str(1)})
+
         async_log_util.info(logger_request_api, f"缁撴潫璇锋眰{tool.get_thread_id()}-{url}")
         self.send_response(200)
         # 鍙戠粰璇锋眰瀹㈡埛绔殑鍝嶅簲鏁版嵁

--
Gitblit v1.8.0