From f35eaf95bd774de6e6a5a79a5dcbd3cccb2748aa Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 12 十一月 2024 00:27:08 +0800
Subject: [PATCH] 新版本板块代码列表

---
 servers/data_server.py |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/servers/data_server.py b/servers/data_server.py
index 4a30824..d8c1e12 100644
--- a/servers/data_server.py
+++ b/servers/data_server.py
@@ -9,6 +9,7 @@
 from code_attribute.gpcode_manager import BlackListCodeManager
 from l2.l2_transaction_data_manager import HuaXinBuyOrderManager
 from log_module.log import logger_system, logger_debug, logger_kpl_limit_up, logger_request_api
+from third_data.kpl_data_constant import LimitUpDataConstant
 from third_data.kpl_limit_up_data_manager import LatestLimitUpBlockManager, CodeLimitUpSequenceManager
 from trade.buy_strategy import OpenLimitUpGoodBlocksBuyStrategy
 from utils import global_util, tool, data_export_util
@@ -544,6 +545,43 @@
                     code_info[5] = 1
 
             response_data = json.dumps({"code": 0, "data": codes_info})
+        elif url.path == "/kpl/get_plate_codes_new":
+            # 鑾峰彇娑ㄥ仠鍘熷洜涓嬮潰鐨勪唬鐮�
+            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+            plate = kpl_util.filter_block(ps_dict["plate"])
+            # 鑾峰彇鏉垮潡涓嬬殑浠g爜
+            # 缁熻鐩墠涓烘鐨勪唬鐮佹定鍋滄暟閲忥紙鍒嗘定鍋滃師鍥狅級
+            now_limit_up_codes_info = self.__kplDataManager.get_data(KPLDataType.LIMIT_UP)
+            now_limit_up_codes = set([d[0] for d in now_limit_up_codes_info])
+            # 鑾峰彇鍘嗗彶娑ㄥ仠
+            record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas
+            if not record_limit_up_datas:
+                KPLLimitUpDataRecordManager.load_total_datas()
+                record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas
+
+            codes_info = []
+            for d in record_limit_up_datas:
+                _code = d[3]
+                blocks = LimitUpDataConstant.get_blocks_with_history(_code)
+                if blocks is not None and plate not in blocks:
+                    continue
+                if not tool.is_can_buy_code(d[3]):
+                    continue
+                # 浠g爜,鍚嶇О,娑ㄥ仠鏃堕棿,鏄惁鐐告澘,鏄惁鎯充拱,鏄惁宸茬粡涓嬭繃鍗�,娑ㄥ仠鏃堕棿,鑷敱娴侀�氬競鍊�,鏄惁鍦ㄩ粦鍚嶅崟閲岄潰
+                codes_info.append(
+                    [d[3], d[4], tool.to_time_str(int(d[5])), 1 if d[3] not in now_limit_up_codes else 0, 0, 0, d[12],
+                     output_util.money_desc(d[13]), 1, 1 if l2_trade_util.is_in_forbidden_trade_codes(d[3]) else 0])
+            codes_info.sort(key=lambda x: x[2])
+            # 鏌ヨ鏄惁涓烘兂涔板崟
+            green_codes = gpcode_manager.GreenListCodeManager().list_codes_cache()
+            for code_info in codes_info:
+                code_info[4] = 1 if code_info[0] in green_codes else 0
+                # 鑾峰彇浠g爜鐘舵��
+                if trade_manager.CodesTradeStateManager().get_trade_state_cache(
+                        code_info[0]) != trade_constant.TRADE_STATE_NOT_TRADE:
+                    code_info[5] = 1
+
+            response_data = json.dumps({"code": 0, "data": codes_info})
         elif url.path == "/kpl/get_open_limit_up_count_rank":
             # 鑾峰彇鐐告澘娆℃暟鎺掕
             ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])

--
Gitblit v1.8.0