From fd635fe4ec7e52226f700d79d58ca7b36c875927 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 25 九月 2024 17:47:50 +0800
Subject: [PATCH] 代码板块匹配

---
 api/outside_api_command_callback.py |   38 ++++++++++++++++++++++++++++++++------
 1 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/api/outside_api_command_callback.py b/api/outside_api_command_callback.py
index 9fdf784..e4fb093 100644
--- a/api/outside_api_command_callback.py
+++ b/api/outside_api_command_callback.py
@@ -1,4 +1,5 @@
 import concurrent.futures
+import copy
 import json
 import logging
 import threading
@@ -34,12 +35,13 @@
     logger_real_place_order_position, logger_device
 from output import l2_output_util
 from third_data import kpl_data_manager, kpl_util, history_k_data_manager, huaxin_l1_data_manager
-from third_data.code_plate_key_manager import CodePlateKeyBuyManager
+from third_data.code_plate_key_manager import CodePlateKeyBuyManager, KPLCodeJXBlockManager
 from third_data.history_k_data_manager import HistoryKDataManager
 from third_data.history_k_data_util import JueJinApi, HistoryKDatasUtils
 from third_data.kpl_data_manager import KPLDataManager
 from third_data.kpl_limit_up_data_manager import CodeLimitUpSequenceManager
 from third_data.kpl_util import KPLDataType
+from third_data.third_blocks_manager import CodeThirdBlocksManager, SOURCE_TYPE_KPL, BlockMapManager
 from trade import trade_manager, l2_trade_util, trade_data_manager, trade_constant
 import l2_data_util as l2_data_util_old
 
@@ -180,7 +182,8 @@
                         msg_list.append(f"鎾ゅ崠鍗曟暟閲忥細{sell_count}")
                     except Exception as e:
                         logger_debug.exception(e)
-                    can_cancel = l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎾ゅ崟", cancel_type=trade_constant.CANCEL_TYPE_HUMAN)
+                    can_cancel = l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎾ゅ崟",
+                                                                                     cancel_type=trade_constant.CANCEL_TYPE_HUMAN)
                     if not can_cancel:
                         msg_list.append(f"鏃犳硶鎾や拱鍗�")
                     else:
@@ -298,7 +301,8 @@
                 if operate == outside_api_command_manager.OPERRATE_SET:
                     # 鍏堟墜鍔ㄦ挙鍗�
                     try:
-                        l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎷夐粦", cancel_type=trade_constant.CANCEL_TYPE_HUMAN)
+                        l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "鎵嬪姩鎷夐粦",
+                                                                            cancel_type=trade_constant.CANCEL_TYPE_HUMAN)
                     except Exception as e:
                         logger_debug.exception(e)
                     l2_trade_util.forbidden_trade(code, msg="鎵嬪姩鍔犲叆 trade_server")
@@ -1057,7 +1061,8 @@
                             try:
                                 limit_up_sequence = CodeLimitUpSequenceManager.get_current_limit_up_sequence(code)
                                 if limit_up_sequence:
-                                    fdata['block'] = f"{limit_up_sequence[0]}-{limit_up_sequence[1]}({limit_up_sequence[2]}&{limit_up_sequence[2] - limit_up_sequence[3]})"
+                                    fdata[
+                                        'block'] = f"{limit_up_sequence[0]}-{limit_up_sequence[1]}({limit_up_sequence[2]}&{limit_up_sequence[2] - limit_up_sequence[3]})"
                             except:
                                 pass
                             # 鑾峰彇娑ㄥ仠鏃堕棿
@@ -1210,9 +1215,30 @@
                 self.send_response({"code": 0, "data": {}, "msg": f""},
                                    client_id,
                                    request_id)
+            elif ctype == "get_code_third_blocks":
+                # 鑾峰彇绗笁鏂规澘鍧楁暟鎹�
+                code = data["code"]
+                source_dict = copy.deepcopy(CodeThirdBlocksManager().get_source_blocks(code))
+                source_origin_dict = copy.deepcopy(CodeThirdBlocksManager().get_source_blocks_origin(code))
+                kpl_blocks = KPLCodeJXBlockManager().get_jx_blocks_radical(code)
+                if kpl_blocks is None:
+                    kpl_blocks = set()
+                match_blocks, info = CodeThirdBlocksManager().get_intersection_blocks_info(code, kpl_blocks)
+                source_origin_dict[SOURCE_TYPE_KPL] = kpl_blocks
+                source_dict[SOURCE_TYPE_KPL] = BlockMapManager().filter_blocks(kpl_blocks)
+                data = {
+                    "blocks": {},
+                    "origin_blocks": {},
+                    "match_blocks": list(match_blocks)
+                }
+                for s in source_origin_dict:
+                    data["origin_blocks"][s] = list(source_origin_dict[s])
+                for s in source_dict:
+                    data["blocks"][s] = list(source_dict[s])
 
-
-
+                self.send_response({"code": 0, "data": data, "msg": f""},
+                                   client_id,
+                                   request_id)
         except Exception as e:
             logging.exception(e)
             self.send_response({"code": 1, "msg": f"鏁版嵁澶勭悊鍑洪敊锛歿e}"}, client_id, request_id)

--
Gitblit v1.8.0