From 32203dcb2d06b93e4b6c81f9121b00531a91395e Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 06 六月 2025 18:43:07 +0800
Subject: [PATCH] bug修复

---
 server/data_server.py | 1048 ---------------------------------------------------------
 1 files changed, 14 insertions(+), 1,034 deletions(-)

diff --git a/server/data_server.py b/server/data_server.py
index 717a7cd..4d7caf9 100644
--- a/server/data_server.py
+++ b/server/data_server.py
@@ -2,42 +2,13 @@
 import json
 import logging
 import socketserver
-import time
-import urllib
 from http.server import BaseHTTPRequestHandler
-import dask
-import requests
 
-import constant
-from code_attribute.block_special_codes_manager import BlockSpecialCodesManager
-from code_attribute.gpcode_manager import BlackListCodeManager, HumanRemoveForbiddenManager
-from l2.huaxin import huaxin_target_codes_manager
-from l2.l2_transaction_data_manager import HuaXinBuyOrderManager
-from log_module.log import logger_system, logger_debug, logger_kpl_limit_up, logger_request_api, \
-    logger_kpl_market_strong
-from third_data.custom_block_in_money_manager import CodeInMoneyManager
-from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager, LimitUpDataConstant, \
-    ContainsLimitupCodesBlocksManager
-from third_data.kpl_limit_up_data_manager import LatestLimitUpBlockManager, CodeLimitUpSequenceManager
-from third_data.third_blocks_manager import BlockMapManager
-from trade.buy_radical import radical_buy_data_manager, new_block_processor
+from log_module.log import logger_system, logger_debug, logger_request_api
 
-from utils import global_util, tool, data_export_util
-from code_attribute import gpcode_manager, code_nature_analyse
-from log_module import  log_export, async_log_util
-from third_data import kpl_util, kpl_data_manager, kpl_api, block_info
-from third_data.code_plate_key_manager import RealTimeKplMarketData, KPLPlateForbiddenManager
-from third_data.history_k_data_util import HistoryKDatasUtils
-from third_data.kpl_data_manager import KPLDataManager, KPLLimitUpDataRecordManager, \
-    KPLCodeLimitUpReasonManager
-from third_data.kpl_util import KPLDataType, KPLPlatManager
+from utils import tool
+from log_module import async_log_util
 import urllib.parse as urlparse
-from urllib.parse import parse_qs
-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, current_price_process_manager
-import concurrent.futures
 
 # 绂佺敤http.server鐨勬棩蹇楄緭鍑�
 logger = logging.getLogger("http.server")
@@ -46,199 +17,6 @@
 
 class DataServer(BaseHTTPRequestHandler):
     ocr_temp_data = {}
-    __kplDataManager = KPLDataManager()
-    __IgnoreCodeManager = IgnoreCodeManager()
-    __KPLPlatManager = KPLPlatManager()
-    __KPLCodeLimitUpReasonManager = KPLCodeLimitUpReasonManager()
-    # 鍘嗗彶鏉垮潡
-    __history_plates_dict = {}
-    # 鏉垮潡
-    __blocks_dict = {}
-    # 绮鹃��,琛屼笟鏁版嵁缂撳瓨
-    __jingxuan_cache_dict = {}
-    __industry_cache_dict = {}
-    __latest_limit_up_codes_set = set()
-    __data_process_thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=10)
-    # 鏂伴鏉愯姹�
-    __new_blocks_codes_request_thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=5)
-    # 浠g爜鐨勬定骞�
-    __code_limit_rate_dict = {}
-
-    # 绂佺敤鏃ュ織杈撳嚭
-    def log_message(self, format, *args):
-        pass
-
-    def __get_limit_up_statistic_infos(self):
-        # 缁熻鐩墠涓烘鐨勪唬鐮佹定鍋滄暟閲忥紙鍒嗘定鍋滃師鍥狅級
-        currents = LimitUpDataConstant.current_limit_up_datas
-        records = LimitUpDataConstant.history_limit_up_datas
-        if not currents:
-            currents = self.__kplDataManager.get_data(KPLDataType.LIMIT_UP)
-        if currents is None:
-            currents = []
-        # 鑾峰彇鍘嗗彶娑ㄥ仠
-        if not records:
-            KPLLimitUpDataRecordManager.load_total_datas()
-            records = KPLLimitUpDataRecordManager.total_datas
-
-        records_map = {x[3]: x for x in records}
-        current_codes = [d[0] for d in currents]
-        record_codes = [d[3] for d in records]
-        # 璁$畻娑ㄥ仠鏃堕棿鎺掑簭
-        record_reason_dict = {}
-        current_reason_dict = {}
-        for _code in record_codes:
-            blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(_code)
-            if not blocks:
-                blocks = set()
-            for b in blocks:
-                if b not in record_reason_dict:
-                    record_reason_dict[b] = []
-                record_reason_dict[b].append(_code)
-        for _code in current_codes:
-            blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(_code)
-            if not blocks:
-                blocks = set()
-            for b in blocks:
-                if b not in current_reason_dict:
-                    current_reason_dict[b] = []
-                current_reason_dict[b].append(_code)
-        # (鏉垮潡鍚嶇О锛屾定鍋滀唬鐮佹暟閲忥紝鐐告澘鏁伴噺,娑ㄥ仠鏃堕棿, 鏄惁鏈夎鲸璇嗗害鐨勭エ)
-
-        limit_up_reason_statistic_info = [[k, len(record_reason_dict[k]), len(record_reason_dict[k]) - len(
-            current_reason_dict.get(k) if k in current_reason_dict else []),
-                                           0, 0] for k in record_reason_dict]
-        try:
-            for b in limit_up_reason_statistic_info:
-                codes_ = BlockSpecialCodesManager().get_block_codes(b[0])
-                if not codes_:
-                    codes_ = set()
-                b[4] = len(set(record_reason_dict[b[0]]) & set(codes_))
-        except:
-            pass
-        limit_up_reason_statistic_info.sort(key=lambda x: x[1] - x[2])
-        limit_up_reason_statistic_info.reverse()
-
-        response_data = json.dumps({"code": 0, "data": {"limit_up_count": len(current_codes),
-                                                        "open_limit_up_count": len(record_codes) - len(current_codes),
-                                                        "limit_up_reason_statistic": limit_up_reason_statistic_info}})
-        return response_data
-
-    def __get_plate_info(self, ps_dict):
-
-        @dask.delayed
-        def kpl_getStockIDPlate(code_):
-            temp_data = kpl_api.getStockIDPlate(code_)
-            return temp_data
-
-        @dask.delayed
-        def kpl_getSonPlate(plate_code_):
-            if not plate_code:
-                return None
-            temp_data = kpl_api.getSonPlate(plate_code_)
-            return temp_data
-
-        @dask.delayed
-        def kpl_getCodesByPlate(plate_code_):
-            if not plate_code:
-                return None
-            temp_data = kpl_api.getCodesByPlate(plate_code_)
-            return temp_data
-
-        @dask.delayed
-        def request_data(f1_, f2_):
-            temp_data = f1_, f2_
-            return temp_data
-
-        # 鑾峰彇鏉垮潡鐨勪唬鐮�
-        fresult = {}
-        code = ps_dict["code"]
-        code_info = KPLLimitUpDataRecordManager.list_by_code(code, tool.get_now_date_str())[0]
-        hot_block_name = code_info[2]
-        plate_code = self.__KPLPlatManager.get_plat(hot_block_name)
-        f1 = kpl_getStockIDPlate(code)
-        # f2 = kpl_getSonPlate(plate_code)
-        f3 = kpl_getCodesByPlate(plate_code)
-        dask_result = request_data(f1, f3)
-        plate_info, codes_by_plate_info = dask_result.compute()
-
-        if plate_info:
-            plate_info.sort(key=lambda x: x[2])
-            plate_info.reverse()
-            fresult["plate"] = plate_info
-
-        # 鑾峰彇浠g爜鐨勫巻鍙叉定鍋滄暟鎹�,(娑ㄥ仠鍘熷洜,鏃ユ湡,鏉垮潡)
-        fresult["code_records"] = KPLLimitUpDataRecordManager.get_latest_infos(code, 4, False)[:2]
-        # 鑾峰彇浠婃棩鏁版嵁
-        fresult["today"] = (code_info[2], code_info[1], code_info[6])
-        fresult["industry"] = global_util.code_industry_map.get(code)
-        if plate_code:
-            # 鑾峰彇寮哄害
-            # datas = son_plate_info
-            # # (浠g爜,鍚嶇О,寮哄害)
-            # temp = kpl_util.parseSonPlat(datas)
-            # temp.sort(key=lambda x: x[2])
-            # temp.reverse()
-            # fresult["plat_strength"] = temp
-
-            # 鑾峰彇娑ㄥ仠鍘熷洜涓嬮潰鐨勫垪琛�
-            datas = codes_by_plate_info
-            # (浠g爜,鍚嶇О,鐜颁环,娑ㄥ箙,鑷敱娴侀��,鍑犳澘锛岄緳鍑狅紝涓诲姏鍑�棰�,300w鍑�棰�,鏈烘瀯澧炰粨)
-            temps = kpl_util.parsePlateCodes(datas)
-            # --鏁版嵁鍑嗗寮�濮�--
-            codes_set = set([d[0] for d in temps])
-            limit_up_dict, limit_up_codes, open_limit_up_codes = limit_up_data_filter.get_limit_up_info(codes_set)
-            score_dict = {}
-            want_codes = gpcode_manager.WantBuyCodesManager().list_code_cache()
-            black_codes = BlackListCodeManager().list_codes()
-            total_datas = KPLLimitUpDataRecordManager.total_datas
-            code_info_dict = {}
-            for val in total_datas:
-                code_info_dict[val[3]] = val
-
-            # --鏁版嵁鍑嗗缁撴潫--
-
-            ignore_codes = self.__IgnoreCodeManager.list_ignore_codes("2")
-            # 鏈�缁堢粨鏋滐細(浠g爜,鍚嶇О,娑ㄥ仠鐘舵��(0-鏃犵姸鎬� 1-娑ㄥ仠 2-鐐告澘),榫欏嚑,棣栨澘,鍒嗗��,娑ㄥ仠鏃堕棿,鍘熷洜,鐩稿悓鍘熷洜浠g爜鏁伴噺,鑷敱娴侀��,娑ㄥ仠鍘熷洜鏄惁鍙樺寲,娑ㄥ箙,鐜颁环,榛戝悕鍗�,鎯充拱鍗�,涓诲姏鍑�鍊�,300w,)
-            codes_info_list = []
-            for t in temps:
-                code = t[0]
-                limit_up_state = 0
-                if code in limit_up_dict:
-                    if limit_up_dict[code][0]:
-                        limit_up_state = 1
-                    elif limit_up_dict[code][1]:
-                        limit_up_state = 2
-                score = ""
-                if code in score_dict:
-                    score = score_dict[code]
-
-                limit_up_time = ''
-                if code in code_info_dict:
-                    limit_up_time = output_util.time_format(code_info_dict[code][5])
-                final_code_info = {"code_info": (
-                    t[0], t[1], limit_up_state, t[6], t[5], score, limit_up_time,
-                    code_info[2], code_info[10], output_util.money_desc(t[4]), 0, t[3], t[2],
-                    "榛戝悕鍗�" if code in black_codes else "", "鎯充拱鍗�" if code in want_codes else "",
-                    output_util.money_desc(t[7]), output_util.money_desc(t[8]), output_util.money_desc(t[9]))}
-                if code in code_info_dict:
-                    final_code_info["today"] = (
-                        code_info_dict[code][2], code_info_dict[code][1], code_info_dict[code][6])
-                # 鍔犺浇鍘嗗彶
-                if code in self.__history_plates_dict:
-                    final_code_info["code_records"] = self.__history_plates_dict[code][1]
-                # 鍔犺浇鏉垮潡
-                if code in self.__blocks_dict:
-                    final_code_info["plate"] = self.__blocks_dict[code][1]
-
-                # 鑾峰彇浜岀骇琛屼笟
-                final_code_info["industry"] = global_util.code_industry_map.get(code)
-
-                if code not in ignore_codes:
-                    codes_info_list.append(final_code_info)
-                fresult["code_list_info"] = codes_info_list
-        response_data = json.dumps({"code": 0, "data": fresult})
-        return response_data
 
     def do_GET(self):
         path = self.path
@@ -246,586 +24,7 @@
         async_log_util.info(logger_request_api, f"寮�濮嬭姹倇tool.get_thread_id()}-{url}")
         response_data = ""
         if url.path == "/get_kpl_data":
-            best_feng_kou = self.__kplDataManager.get_data(kpl_util.KPLDataType.BEST_FENG_KOU)
-            if not best_feng_kou:
-                best_feng_kou = []
-            best_feng_kou = best_feng_kou[:22]
-            feng_kou = self.__kplDataManager.get_data(kpl_util.KPLDataType.FENG_KOU)
-            if not feng_kou:
-                feng_kou = []
-            feng_kou = feng_kou[:22]
-            industry_rank = self.__kplDataManager.get_data(kpl_util.KPLDataType.INDUSTRY_RANK)
-            if not industry_rank:
-                industry_rank = []
-            industry_rank = industry_rank[:22]
-            feng_xiang = self.__kplDataManager.get_data(kpl_util.KPLDataType.FENG_XIANG)
-            if not feng_xiang:
-                feng_xiang = []
-            feng_xiang = feng_xiang[:22]
-            response_data = json.dumps({"code": 0, "data": {"best_feng_kou": best_feng_kou, "feng_kou": feng_kou,
-                                                            "industry_rank": industry_rank, "feng_xiang": feng_xiang}})
-        elif url.path == "/get_score_info":
-            start_time = time.time()
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict['code']
-            name = ps_dict.get('name')
-            date = ps_dict.get('date')
-            try:
-                data = code_info_output.get_output_params(code, self.__jingxuan_cache_dict, self.__industry_cache_dict)
-                if data["code_name"].find("None") > -1 and name:
-                    data["code_name"] = f"{name} {code}"
-
-                self.__history_plates_dict[code] = (time.time(), data["kpl_code_info"]["code_records"])
-                if "plate" in data["kpl_code_info"]:
-                    self.__blocks_dict[code] = (time.time(), data["kpl_code_info"]["plate"])
-
-                response_data = json.dumps({"code": 0, "data": data})
-                print("get_score_info 鑰楁椂锛�", time.time() - start_time)
-            except Exception as e:
-                logger_debug.exception(e)
-                logging.exception(e)
-
-        elif url.path == "/get_trade_records":
-            # 鑾峰彇鎸傛挙淇℃伅
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict['code']
-            date = ps_dict.get('date')
-            local_today_datas = log_export.load_l2_from_log(date)
-            total_datas = local_today_datas.get(code)
-            trade_info = code_info_output.load_trade_record(code, total_datas, date)
-            response_data = json.dumps({"code": 0, "data": {"open_limit_up": trade_info[0], "records": trade_info[2]}})
-
-        elif url.path == "/get_l2_cant_buy_reasons":
-            # 鑾峰彇L2娌′拱鐨勫師鍥�
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict['code']
-            fdatas = log_export.get_l2_cant_buy_reasons(code)
-            response_data = json.dumps({"code": 0, "data": fdatas})
-
-        elif url.path == "/get_kpl_block_info":
-            start_time = time.time()
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict['code']
-            try:
-                data = code_info_output.get_kpl_block_info(code)
-                response_data = json.dumps({"code": 0, "data": data})
-                print("get_kpl_block_info 鑰楁椂锛�", time.time() - start_time)
-            except Exception as e:
-                logger_debug.exception(e)
-                logging.exception(e)
-
-        elif url.path == "/get_trade_progress":
-            # 鑾峰彇浜ゆ槗杩涘害
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict['code']
-            trade_progress, is_default = transaction_progress.TradeBuyQueue().get_traded_index(code)
-            # 鑾峰彇姝e湪鎴愪氦, 璁$畻鎴愪氦杩涘害
-            dealing_info = HuaXinBuyOrderManager.get_dealing_order_info(code)
-            dealing_active_info = HuaXinBuyOrderManager.get_dealing_active_order_info(code)
-            percent = 100
-            if dealing_info:
-                total_datas = l2_data_util.local_today_datas.get(code)
-                if str(total_datas[trade_progress]['val']["orderNo"]) == str(dealing_info[0]):
-                    num = total_datas[trade_progress]['val']['num']
-                    if dealing_active_info and dealing_info[0] == dealing_active_info[0]:
-                        if tool.is_sh_code(code):
-                            num += dealing_active_info[1] // 100
-                    percent = int(dealing_info[1] / num)
-            response_data = json.dumps(
-                {"code": 0, "data": {"trade_progress": trade_progress, "is_default": is_default, "percent": percent}})
-        elif url.path == "/kpl/get_limit_up_statistic_infos":
-            try:
-                # 缁熻鏈�杩戠殑娑ㄥ仠鏉垮潡
-                response_data = self.__get_limit_up_statistic_infos()
-            except Exception as e:
-                logger_debug.exception(e)
-
-        elif url.path == "/kpl/get_plate_info":
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            response_data = self.__get_plate_info(ps_dict)
-
-        elif url.path == "/kpl/get_market_data":
-            # 鑾峰彇鏉垮潡淇℃伅
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            type_ = int(ps_dict['type'])
-            result = []
-            if type_ == 0:
-                # 琛屼笟锛屼富鍔涘噣棰濆�掑簭
-                result = kpl_api.getMarketIndustryRealRankingInfo(True)
-                result = kpl_util.parseMarketIndustry(result)
-            elif type_ == 1:
-                # 琛屼笟锛屼富鍔涘噣棰濋『搴�
-                result = kpl_api.getMarketIndustryRealRankingInfo(False)
-                result = kpl_util.parseMarketIndustry(result)
-            elif type_ == 2:
-                # 绮鹃�夛紝涓诲姏鍑�棰濆�掑簭
-                result = kpl_api.getMarketJingXuanRealRankingInfo(True)
-                result = kpl_util.parseMarketJingXuan(result)
-            elif type_ == 3:
-                # 绮鹃�夛紝涓诲姏鍑�棰濋『搴�
-                result = kpl_api.getMarketJingXuanRealRankingInfo(False)
-                result = kpl_util.parseMarketJingXuan(result)
-            forbidden_plates = KPLPlateForbiddenManager().list_all()
-            fresult = []
-            for d in result:
-                if type_ == 2 or type_ == 3:
-                    self.__jingxuan_cache_dict[d[1]] = d
-                elif type_ == 0 or type_ == 1:
-                    self.__industry_cache_dict[d[1]] = d
-                d = list(d)
-                d.append(1 if d[1] in forbidden_plates else 0)
-                fresult.append(d)
-            response_data = json.dumps({"code": 0, "data": fresult})
-        elif url.path == "/kpl/add_ignore_code":
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            code = ps_dict['code']
-            type_ = ps_dict['type']
-            self.__IgnoreCodeManager.ignore_code(type_, code)
-            response_data = json.dumps({"code": 0})
-        elif url.path == "/kpl/forbidden_plate":
-            # 娣诲姞涓嶈兘涔扮殑鏉垮潡
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            plate = ps_dict["plate"]
-            # 鍔犲叆绂佹
-            KPLPlateForbiddenManager().save_plate(plate)
-            response_data = json.dumps({"code": 0})
-        elif url.path == "/kpl/del_forbidden_plate":
-            # 鍒犻櫎涓嶈兘涔扮殑鏉垮潡
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            plate = ps_dict["plate"]
-            # 鍔犲叆绂佹
-            KPLPlateForbiddenManager().delete_plate(plate)
-            response_data = json.dumps({"code": 0})
-        elif url.path == "/kpl/list_forbidden_plate":
-            # 涓嶈兘涔扮殑鏉垮潡鍒楄〃
-            results = KPLPlateForbiddenManager().list_all_cache()
-            response_data = json.dumps({"code": 0, "data": list(results)})
-        elif url.path == "/kpl/list_deleted_forbidden_plate":
-            # 鑾峰彇宸茬粡鍒犻櫎鐨勬澘鍧�
-            results = KPLPlateForbiddenManager().list_all_deleted_cache()
-            if results:
-                results -= KPLPlateForbiddenManager().list_all_cache()
-            response_data = json.dumps({"code": 0, "data": list(results)})
-
-        elif url.path == "/kpl/get_plate_codes":
-            # 鑾峰彇娑ㄥ仠鍘熷洜涓嬮潰鐨勪唬鐮�
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            plate = kpl_util.filter_block(ps_dict["plate"])
-            special_codes = BlockSpecialCodesManager().get_block_codes(plate)
-            if special_codes is None:
-                special_codes = set()
-            # 鑾峰彇鏉垮潡涓嬬殑浠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:
-                if kpl_util.filter_block(d[2]) != plate:
-                    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,
-                     1 if d[3] in special_codes else 0])
-
-            for d in record_limit_up_datas:
-                if kpl_util.filter_block(d[2]) == plate:
-                    continue
-                if plate not in [kpl_util.filter_block(k) for k in d[6].split("銆�")]:
-                    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]), 0, 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_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"])
-
-            special_codes = set()
-            plates = BlockMapManager().filter_blocks({plate})
-            for p in plates:
-                _codes = BlockSpecialCodesManager().get_block_codes(p)
-                if _codes is None:
-                    _codes = set()
-                special_codes |= _codes
-
-            # 鑾峰彇鏉垮潡涓嬬殑浠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)
-                blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(_code)
-                if not blocks:
-                    blocks = set()
-                blocks = BlockMapManager().filter_blocks(blocks)
-
-                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,
-                     1 if d[3] in special_codes else 0,
-                     CodeInMoneyManager().get_money(d[3]),
-                     0])
-            codes_info.sort(key=lambda x: x[2])
-            # 鏌ヨ鏄惁涓烘兂涔板崟
-            green_codes = gpcode_manager.GreenListCodeManager().list_codes_cache()
-            want_codes = gpcode_manager.WantBuyCodesManager().list_code_cache()
-            for code_info in codes_info:
-                code_info[4] = 1 if code_info[0] in green_codes else 0
-                code_info[12] = 1 if code_info[0] in want_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
-
-            # 娑ㄥ仠鏁版嵁
-            fdatas = {"limit_up_list": codes_info}
-            # 杈ㄨ瘑搴︾エ
-            fdatas["speical_codes"] = [(x, gpcode_manager.get_code_name(x)) for x in special_codes]
-            forbidden_refer_codes = KPLPlateForbiddenManager().get_watch_high_codes_by_block(plate)
-            if forbidden_refer_codes is None:
-                forbidden_refer_codes = set()
-            fdatas["forbidden_refer_codes"] = [(x, gpcode_manager.get_code_name(x)) for x in forbidden_refer_codes]
-            response_data = json.dumps({"code": 0, "data": fdatas})
-        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()])
-            code = ps_dict.get("code")
-            results = log_export.load_kpl_open_limit_up()
-            statistic = {}
-            for result in results:
-                for c in result[1]:
-                    if not tool.is_can_buy_code(c):
-                        continue
-                    if code and code != c:
-                        continue
-                    if c not in statistic:
-                        statistic[c] = 0
-                    statistic[c] += 1
-            # 鍊掑簭鎺�
-            statistic_list = [(k, statistic[k]) for k in statistic]
-            statistic_list.sort(key=lambda x: x[1], reverse=True)
-            fresults = []
-            limit_up_records = KPLLimitUpDataRecordManager.list_all_cache(tool.get_now_date_str())
-            limit_up_count_dict = {}
-            if limit_up_records:
-                for d in limit_up_records:
-                    limit_up_count_dict[d[3]] = d[12]
-
-            for x in statistic_list:
-                fresults.append((x[0], gpcode_manager.get_code_name(x[0]), x[1], limit_up_count_dict.get(x[0])))
-
-            fresults = fresults[:30]
-            response_data = json.dumps({"code": 0, "data": fresults})
-        elif url.path == "/kpl/get_latest_limit_up_queue":
-            # 鑾峰彇鏈�杩戠殑娑ㄥ仠闃熷垪
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            time_str = ps_dict.get("time")
-            day = ps_dict.get("day")
-            if not day:
-                day = tool.get_now_date_str()
-            results = log_export.load_kpl_limit_up_records(time_str, date=day)
-            if not results:
-                results = []
-            response_data = json.dumps({"code": 0, "data": results})
-
-        elif url.path == "/get_last_trade_day_reasons":
-
-            # 璁$畻骞冲潎娑ㄥ箙
-            def get_limit_rate_list(codes):
-                if not codes:
-                    return []
-                need_request_codes = set()
-                if tool.trade_time_sub(tool.get_now_time_str(), "09:30:00") < 0:
-                    need_request_codes |= set(codes)
-                else:
-                    now_time = time.time()
-                    for c in codes:
-                        if c not in self.__code_limit_rate_dict:
-                            need_request_codes.add(c)
-                        elif now_time - self.__code_limit_rate_dict[c][1] > 60:
-                            need_request_codes.add(c)
-                if need_request_codes:
-                    _limit_rate_list = HistoryKDatasUtils.get_codes_limit_rate(list(need_request_codes))
-                    for d in _limit_rate_list:
-                        self.__code_limit_rate_dict[d[0]] = (d[1], time.time())
-                return [(c_, self.__code_limit_rate_dict[c_][0]) for c_ in codes]
-
-            try:
-                raise Exception("鎺ュ彛鏆傚仠浣跨敤")
-                # 鑾峰彇涓婁釜浜ゆ槗鏃ョ殑鐩稿悓娑ㄥ仠鍘熷洜鐨勪唬鐮佷俊鎭�
-                ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-                code = ps_dict["code"]
-                # 鑾峰彇鏄ㄦ棩娑ㄥ仠鏁版嵁
-                day = HistoryKDatasUtils.get_previous_trading_date_cache(tool.get_now_date_str())
-
-                limit_up_records = kpl_data_manager.KPLLimitUpDataRecordManager.list_all_cache(day)
-                reasons = []
-                for d in limit_up_records:
-                    if d[3] == code:
-                        reasons.append(d)
-                # 鑾峰彇浠g爜鐨勫師鍥�
-                if reasons:
-                    reasons = list(reasons)
-                    reasons.sort(key=lambda x: x[9])
-                    reason = reasons[-1][2]
-                    # 鑾峰彇娑ㄥ仠鏁版嵁
-                    datas = self.__kplDataManager.get_from_file_cache(kpl_util.KPLDataType.LIMIT_UP, day)
-                    # (浠g爜,鍚嶇О,棣栨娑ㄥ仠鏃堕棿,鏈�杩戞定鍋滄椂闂�,鍑犳澘,娑ㄥ仠鍘熷洜,鏉垮潡,瀹為檯娴侀��,涓诲姏鍑�棰�,娑ㄥ仠鍘熷洜浠g爜,娑ㄥ仠鍘熷洜浠g爜鏁伴噺)
-                    yesterday_result_list = []
-                    percent_rate = 0
-                    if datas:
-                        yesterday_codes = set()
-                        for d in datas:
-                            if d[5] == reason:
-                                yesterday_codes.add(d[0])
-                        # 鑾峰彇娑ㄥ箙
-                        limit_rate_list = get_limit_rate_list(yesterday_codes)
-                        limit_rate_dict = {}
-                        if limit_rate_list:
-                            total_rate = 0
-                            for d in limit_rate_list:
-                                limit_rate_dict[d[0]] = d[1]
-                                total_rate += d[1]
-                            percent_rate = round(total_rate / len(limit_rate_list), 2)
-
-                        for d in datas:
-                            if d[5] == reason:
-                                yesterday_codes.add(d[0])
-                                if d[0] != code:
-                                    # (浠g爜,鍚嶇О, 娑ㄥ箙)
-                                    yesterday_result_list.append((d[0], d[1], limit_rate_dict.get(d[0])))
-
-                    current_limit_up_list = kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas
-                    current_result_list = []
-                    if current_limit_up_list:
-                        for c in current_limit_up_list:
-                            if c[5] == reason and c[0] != code:
-                                current_result_list.append((c[0], c[1]))
-                    response_data = json.dumps({"code": 0, "data": {"reason": reason, "reason_rate": percent_rate,
-                                                                    "data": {"yesterday": yesterday_result_list,
-                                                                             "current": current_result_list}}})
-                else:
-                    response_data = json.dumps({"code": 1, "msg": "鏄ㄦ棩鏈定鍋�"})
-            except Exception as e:
-                logger_debug.exception(e)
-                raise e
-
-        elif url.path == "/pull_kp_client_msg":
-            # 鎷夊彇瀹㈡埛绔秷鎭�
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            client = ps_dict["client"]
-            msg = kp_client_msg_manager.read_msg(client)
-            if msg:
-                response_data = json.dumps({"code": 0, "data": msg})
-            else:
-                response_data = json.dumps({"code": 1, "msg": "鏆傛棤娑堟伅"})
-        elif url.path == "/list_kp_client_msg":
-            msg_list = kp_client_msg_manager.list_msg_from_local()
-            msg_list.reverse()
-            msg_list = [f"{msg.split('|')[0]}{msg.split('|')[-1].split('-')[1].strip()}" for msg in msg_list]
-            response_data = json.dumps({"code": 0, "data": msg_list})
-        elif url.path == "/statistic_latest_limit_up_block":
-            try:
-                # 缁熻鏈�杩戠殑娑ㄥ仠鏉垮潡
-                datas = LatestLimitUpBlockManager().statistics_limit_up_block_infos()
-                response_data = json.dumps({"code": 0, "data": datas})
-            except Exception as e:
-                logger_debug.exception(e)
-
-        elif url.path == "/get_new_blocks":
-            # 鑾峰彇鏂版澘鍧�
-            blocks = KPLLimitUpDataRecordManager.get_new_blocks(tool.get_now_date_str())
-            response_data = json.dumps({"code": 0, "data": blocks})
-        elif url.path == "/get_account_commission_detail":
-            # 鑾峰彇鎵嬬画璐硅鎯�
-            try:
-                fdata = {"delegates": {}}
-                # 鑾峰彇鏈湀鐨勬墜缁垂
-                end_date = tool.get_now_date_str("%Y%m%d")
-                start_date = f"{end_date[:6]}01"
-                delegates_month = trade_data_manager.AccountMoneyManager().get_delegated_count_info(start_date,
-                                                                                                    end_date)
-                # 鑲$エ锛屼笂璇佸彲杞�� 锛� 娣辫瘉鍙浆鍊�
-
-                deals_month = trade_data_manager.AccountMoneyManager().get_deal_count_info(start_date, end_date)
-                cost_month = sum([round(0.1 * x[1], 2) for x in delegates_month])
-                make_month = 0
-                make_month += max(1 * deals_month[0][1] if deals_month[0][1] else 0,
-                                  deals_month[0][2] * 1.854 / 10000 if deals_month[0][2] else 0) + 1 * deals_month[1][
-                                  1] + 0 * deals_month[2][1]
-                fdata["month_commission"] = round(make_month - cost_month, 2)
-                # 璁$畻褰撴棩鎵嬬画璐硅鎯�
-                delegates = trade_data_manager.AccountMoneyManager().get_delegated_count_info()
-                delegates = [{"count": x[1], "price": 0.1, "money": round(0.1 * x[1], 2)} for x in delegates]
-                fdata["delegates"]["buy"] = delegates[0]
-                fdata["delegates"]["buy_cancel"] = delegates[1]
-                fdata["delegates"]["sell_cancel"] = delegates[2]
-                fdata["delegates"]["sell"] = delegates[3]
-                deals = trade_data_manager.AccountMoneyManager().get_deal_count_info()
-                fdata["deals"] = {}
-                fdata["deals"]["stock"] = {"count": deals[0][1], "price": 1, "money": round(1 * deals[0][1], 2)}
-                fdata["deals"]["sh_cb"] = {"count": deals[1][1], "price": 1, "money": round(1 * deals[1][1], 2)}
-                fdata["deals"]["sz_cb"] = {"count": deals[2][1], "price": 0, "money": round(0 * deals[2][1], 2)}
-                fdata["commission"] = trade_data_manager.AccountMoneyManager().get_commission_cache()
-                response_data = json.dumps({"code": 0, "data": fdata})
-            except Exception as e:
-                logger_debug.exception(e)
-        elif url.path == "/get_place_order_records":
-            # 鑾峰彇涓嬪崟璁板綍
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            try:
-                day = ps_dict.get("day")
-                if not day:
-                    day = tool.get_now_date_str()
-                records = log_export.load_trade_recod_by_type("place_order", date=day)
-                fdata = []
-                for record in records:
-                    print(record)
-                    # (涓嬪崟鏃堕棿, 浠g爜, 鍚嶇О, 涓嬪崟妯″紡, 鏉垮潡淇℃伅)
-                    fdata.append((record[0], record[1], gpcode_manager.get_code_name(record[1]), record[3]["mode_desc"],
-                                  record[3].get("block_info")))
-                response_data = json.dumps({"code": 0, "data": fdata})
-            except:
-                pass
-        elif url.path == "/get_blocks_in_money_info":
-            # 鑾峰彇鏉垮潡璧勯噾娴佸叆鐘跺喌
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            type_ = int(ps_dict.get("type"))
-            try:
-                fdatas = []
-                if type_ == 0:
-                    in_blocks = RealTimeKplMarketData().get_top_market_jingxuan_blocks()
-                    if not in_blocks:
-                        in_blocks = set()
-                    fdatas = RealTimeKplMarketData.top_in_list_cache
-                    if not fdatas:
-                        datas = self.__kplDataManager.get_data(KPLDataType.JINGXUAN_RANK)
-                        fdatas = datas
-                    # 杩斿洖鏄惁鍦ㄦ祦鍏ュ墠鍑�
-                    temp_datas = []
-                    for d in fdatas:
-                        temp = list(d)
-                        if d[1] in in_blocks:
-                            temp.append(1)
-                        else:
-                            temp.append(0)
-                        if in_blocks and d[1] == in_blocks[-1]:
-                            temp.append(RealTimeKplMarketData.get_market_strong())
-                        else:
-                            temp.append(0)
-                        temp_datas.append(temp)
-
-                    fdatas = temp_datas
-                elif type_ == 1:
-                    out_blocks = RealTimeKplMarketData().get_top_market_jingxuan_out_blocks()
-                    if not out_blocks:
-                        out_blocks = set()
-                    fdatas = RealTimeKplMarketData.top_out_list_cache
-                    if not fdatas:
-                        datas = self.__kplDataManager.get_data(KPLDataType.JINGXUAN_RANK_OUT)
-                        fdatas = datas
-                    # 杩斿洖鏄惁鍦ㄦ祦鍏ュ墠鍑�
-                    temp_datas = []
-                    for d in fdatas:
-                        temp = list(d)
-                        if d[1] in out_blocks:
-                            temp.append(1)
-                        else:
-                            temp.append(0)
-                        temp_datas.append(temp)
-                    fdatas = temp_datas
-
-                response_data = json.dumps({"code": 0, "data": fdatas})
-            except:
-                pass
-        elif url.path == "/get_block_codes_with_money":
-            # 鑾峰彇鏉垮潡璧勯噾娴佸叆鐘跺喌
-            ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
-            block = ps_dict.get("block")
-            # 鏄惁鍊掑簭鎺�
-            desc = int(ps_dict.get("desc"))
-            try:
-                response_data = requests.get(
-                    "http://127.0.0.1:9005/get_block_codes_money?block=" + urllib.parse.quote(block))
-                r_str = response_data.text
-                response_data = json.loads(r_str)
-                if response_data["code"] == 0:
-                    datas = response_data["data"]
-                    fdatas = []
-                    for d in datas:
-                        # (浠g爜, 鍚嶇О, 娴佸叆閲戦, 鏄惁琚帓闄ゆ垚鍒嗚偂)
-                        fdatas.append((d[0], gpcode_manager.get_code_name(d[0]), d[1], d[2]))
-                    if desc:
-                        fdatas.sort(key=lambda x: x[2], reverse=True)
-                    else:
-                        fdatas.sort(key=lambda x: x[2])
-                    fdatas = fdatas[:50]
-                    response_data = json.dumps({"code": 0, "data": fdatas})
-                else:
-                    response_data = r_str
-            except  Exception as e:
-                response_data = json.dumps({"code": 1, "data": str(1)})
-
-        elif url.path == "/get_all_special_codes":
-            # 鑾峰彇鎵�鏈夎鲸璇嗗害鐨勪唬鐮�
-            code_blocks_dict = BlockSpecialCodesManager().get_code_blocks_dict()
-            fdata = {}
-            for k in code_blocks_dict:
-                fdata[k] = list(code_blocks_dict[k])
-            response_data = json.dumps({"code": 0, "data": fdata})
-        elif url.path == "/get_new_blocks_special_codes":
-            # 鑾峰彇鎵�鏈夎鲸璇嗗害鐨勪唬鐮�
-            code_blocks_dict = BlockSpecialCodesManager().get_temp_code_blocks_dict()
-            fdata = {}
-            for k in code_blocks_dict:
-                fdata[k] = list(code_blocks_dict[k])
-            response_data = json.dumps({"code": 0, "data": fdata})
-
+            response_data = json.dumps({"code": 0, "data": {}})
         async_log_util.info(logger_request_api, f"缁撴潫璇锋眰{tool.get_thread_id()}-{url}")
         self.send_response(200)
         # 鍙戠粰璇锋眰瀹㈡埛绔殑鍝嶅簲鏁版嵁
@@ -836,236 +35,19 @@
     def do_POST(self):
         path = self.path
         url = urlparse.urlparse(path)
-        if url.path == "/upload_kpl_data":
-            # 鎺ュ彈寮�鐩樺暒鏁版嵁
+        result_str = ""
+        if url.path == "/upload_big_order_datas":
+            # 鎺ユ敹鎴愪氦澶у崟鏁版嵁
             params = self.__parse_request()
-            result_str = self.__process_kpl_data(params)
-            self.__send_response(result_str)
-        if url.path == "/upload_codes_in_money":
-            # 鎺ユ敹浠g爜鍑�娴佸叆閲戦
+            logger_debug.info("upload_big_order_datas:", f"{params}")
+        elif url.path == "/upload_block_in_datas":
+            # 鎺ユ敹鏉垮潡娴佸叆鏁版嵁
             params = self.__parse_request()
-            d = params["data"]
-            d = json.loads(d)
-            try:
-                for code in d:
-                    CodeInMoneyManager().set_money(code, d[code])
-            except Exception as e:
-                logging.exception(e)
+            logger_debug.info("upload_block_in_datas:", f"{params}")
             result_str = json.dumps({"code": 0})
-            self.__send_response(result_str)
-
-    def __process_kpl_data(self, data_origin):
-
-        def do_limit_up(result_list_):
-
-            def request_new_blocks_codes(blocks_info, all_new_blocks):
-                """
-                璇锋眰鏂版澘鍧楃殑浠g爜
-                @param blocks_info:[(鏉垮潡鍚嶇О,鏉垮潡浠g爜)]
-                @return:
-                """
-                yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
-                for bi in blocks_info:
-                    result = kpl_api.getCodesByPlate(bi[1])
-                    result = json.loads(result)
-                    code_info_list = []
-                    for d in result["list"]:
-                        if d[0] in yesterday_codes:
-                            continue
-                        # 娑ㄥ箙瑕佸ぇ浜�5%
-                        rate = d[6] / int(round((tool.get_limit_up_rate(d[0]) - 1) * 10))
-                        if rate / ((tool.get_limit_up_rate(d[0]) - 1) * 10) < 5:
-                            continue
-                        # 鏍煎紡锛�(浠g爜,娑ㄥ箙)
-                        code_info_list.append((d[0], d[6]))
-                    if code_info_list:
-                        # 灏嗕唬鐮佸姞鍏ユ柊棰樻潗
-                        new_block_processor.process_new_block_by_component_codes(bi[0],
-                                                                                 set([x[0] for x in code_info_list]),
-                                                                                 all_new_blocks)
-
-            try:
-                if result_list_:
-                    # 淇濆瓨娑ㄥ仠鏃堕棿
-                    codes_set = set()
-                    limit_up_reasons = {}
-                    limit_up_time_dict = {}
-                    for d in result_list_:
-                        code = d[0]
-                        limit_up_reasons[code] = d[5]
-                        codes_set.add(code)
-                        limit_up_time = time.strftime("%H:%M:%S", time.localtime(d[2]))
-                        if tool.is_can_buy_code(code):
-                            code_price_manager.Buy1PriceManager().set_limit_up_time(code, limit_up_time)
-                        limit_up_time_dict[code] = limit_up_time
-                    add_codes = codes_set - self.__latest_limit_up_codes_set
-                    self.__latest_limit_up_codes_set = codes_set
-
-                    if limit_up_reasons:
-                        # 缁熻娑ㄥ仠鍘熷洜鐨勭エ鐨勪釜鏁�
-                        limit_up_reason_code_dict = {}
-                        for code in limit_up_reasons:
-                            b = limit_up_reasons[code]
-                            if b not in limit_up_reason_code_dict:
-                                limit_up_reason_code_dict[b] = set()
-                            limit_up_reason_code_dict[b].add(code)
-                        # 娑ㄥ仠鏃堕棿code
-                        LCancelRateManager.set_block_limit_up_count(limit_up_reason_code_dict, limit_up_time_dict)
-
-                    if add_codes:
-                        for code in add_codes:
-                            # 鏍规嵁娑ㄥ仠鍘熷洜鍒ゆ柇鏄惁鍙互涔�
-                            if tool.is_can_buy_code(code):
-                                try:
-                                    # 鍒ゆ柇鏄惁涓嬪崟
-                                    trade_state = trade_manager.CodesTradeStateManager().get_trade_state(code)
-                                    if trade_state == trade_constant.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_constant.TRADE_STATE_BUY_DELEGATED:
-                                        # 濮旀墭涓殑璁㈠崟锛屽垽鏂槸鍚﹂渶瑕佹挙鍗�
-                                        if not gpcode_manager.WantBuyCodesManager().is_in_cache(code):
-                                            yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
-                                            current_limit_up_datas, limit_up_record_datas, yesterday_current_limit_up_codes, before_blocks_dict = kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas, kpl_data_manager.KPLLimitUpDataRecordManager.total_datas, yesterday_codes, block_info.get_before_blocks_dict()
-                                            if not current_limit_up_datas:
-                                                current_limit_up_datas = []
-                                            if not limit_up_record_datas:
-                                                limit_up_record_datas = []
-                                            # 涔扮粷瀵硅�佸ぇ
-                                            # 涓�斾笉鑳芥挙鍗�
-                                            # if CodePlateKeyBuyManager.is_need_cancel(code, limit_up_reasons.get(code),
-                                            #                                          current_limit_up_datas,
-                                            #                                          limit_up_record_datas,
-                                            #                                          yesterday_current_limit_up_codes,
-                                            #                                          before_blocks_dict):
-                                            #     l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code,
-                                            #                                                         f"娑ㄥ仠鍘熷洜锛坽limit_up_reasons.get(code)}锛変笉鏄�佸ぇ鎾ゅ崟",
-                                            #                                                         "鏉垮潡鎾�")
-                                except Exception as e:
-                                    logger_debug.exception(e)
-                    kpl_data_manager.KPLLimitUpDataRecordManager.save_record(tool.get_now_date_str(), result_list_)
-                    try:
-                        LatestLimitUpBlockManager().set_current_limit_up_data(tool.get_now_date_str(), result_list_)
-                    except:
-                        pass
-                    try:
-                        CodeLimitUpSequenceManager().set_current_limit_up_datas(result_list_)
-                        ContainsLimitupCodesBlocksManager().set_current_limit_up_datas(result_list_)
-                    except:
-                        pass
-                    try:
-                        OpenLimitUpGoodBlocksBuyStrategy.set_current_limit_up_data(result_list_)
-                        RadicalBuyBlockManager.set_current_limit_up_datas(result_list_)
-                    except:
-                        pass
-
-                    try:
-                        # 鏂伴鏉�
-                        new_block_processor.process_limit_up_list({x[0]: x[5] for x in result_list_})
-                        new_block_codes = new_block_processor.screen_new_blocks_with_limit_up_datas(
-                            [(x[0], x[5]) for x in result_list_])
-                        if new_block_codes:
-                            # 缁熻鏉垮潡鐨勪唬鐮�
-                            records = KPLLimitUpDataRecordManager.total_datas
-                            block_plate_code_dict = {}
-                            for x in records:
-                                block_plate_code_dict[kpl_util.filter_block(x[2])] = x[15]
-                            # 鏂版澘鍧�
-                            update_new_block_plates = []
-                            for b in new_block_codes:
-                                for c in new_block_codes[b]:
-                                    new_block_processor.process_new_block_by_limit_up_list(c, b)
-
-                            for r in new_block_codes:
-                                if r in block_plate_code_dict:
-                                    update_new_block_plates.append((r, block_plate_code_dict[r]))
-                            if update_new_block_plates:
-                                # 闇�瑕佽幏鍙栨澘鍧椾笅鐨勪唬鐮�
-                                self.__new_blocks_codes_request_thread_pool.submit(
-                                    lambda: request_new_blocks_codes(update_new_block_plates, new_block_codes.keys()))
-                    except Exception as e:
-                        logger_debug.exception(e)
-                    self.__kplDataManager.save_data(type_, result_list_)
-            except Exception as e:
-                logger_debug.exception(e)
-
-        # 灏�"姒傚康"浜屽瓧鏇挎崲鎺�
-        data = data_origin
-        type_ = data["type"]
-        print("寮�鐩樺暒type:", type_)
-        if type_ == KPLDataType.BIDDING.value:
-            result_list = kpl_util.parseDaBanData(data["data"], kpl_util.DABAN_TYPE_BIDDING)
-            # 绔炰环鍙栧墠20
-            if result_list:
-                result_list.sort(key=lambda x: x[2])
-                result_list.reverse()
-                result_list = result_list[:20]
-                bs = []
-                for d in result_list:
-                    bs.append((d[0], f"{d[2] // 10000}涓�"))
-                bidding_money_manager.set_bidding_money(bs[:10])
-
-                self.__kplDataManager.save_data(type_, result_list)
-        elif type_ == KPLDataType.LIMIT_UP.value:
-            result_list, day = kpl_util.parseLimitUpData(data["data"])
-            if day and day != tool.get_now_date_str():
-                pass
-            else:
-                self.__data_process_thread_pool.submit(lambda: do_limit_up(result_list))
-                # 璁板綍娑ㄥ仠鏃ュ織
-                logger_kpl_limit_up.info(result_list)
-        elif type_ == KPLDataType.OPEN_LIMIT_UP.value:
-            result_list = kpl_util.parseDaBanData(data["data"], kpl_util.DABAN_TYPE_OPEN_LIMIT_UP)
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-        elif type_ == KPLDataType.LIMIT_DOWN.value:
-            result_list = kpl_util.parseDaBanData(data["data"], kpl_util.DABAN_TYPE_LIMIT_DOWN)
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-        elif type_ == KPLDataType.EVER_LIMIT_DOWN.value:
-            result_list = kpl_util.parseDaBanData(data["data"], kpl_util.DABAN_TYPE_EVER_LIMIT_DOWN)
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-        elif type_ == KPLDataType.FENG_KOU.value:
-            fdata = data["data"]
-            result_list = kpl_util.parseFengKou(fdata)
-            result_list.sort(key=lambda x: x[3])
-            result_list.reverse()
-            self.__kplDataManager.save_data(type_, result_list)
-        elif type_ == KPLDataType.BEST_FENG_KOU.value:
-            result_list = kpl_util.parseBestFengKou(data["data"])
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-            # 淇濆瓨鏈�寮洪鍙�
-        elif type_ == KPLDataType.FENG_XIANG.value:
-            result_list = kpl_util.parseFengXiang(data["data"])
-            # 淇濆瓨椋庡悜鏁版嵁
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-        elif type_ == KPLDataType.INDUSTRY_RANK.value:
-            result_list = kpl_util.parseIndustryRank(data["data"])
-            # 淇濆瓨琛屼笟鏁版嵁
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-                RealTimeKplMarketData.set_top_5_industry(result_list)
-        elif type_ == KPLDataType.JINGXUAN_RANK.value:
-            # result_list = kpl_util.parseMarketJingXuan(data["data"])
-            result_list = json.loads(data["data"])
-            # 淇濆瓨绮鹃�夋暟鎹�
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-                RealTimeKplMarketData.set_market_jingxuan_blocks(result_list)
-        elif type_ == KPLDataType.JINGXUAN_RANK_OUT.value:
-            # result_list = kpl_util.parseMarketJingXuan(data["data"])
-            result_list = json.loads(data["data"])
-            # 淇濆瓨绮鹃�夋暟鎹�
-            if result_list:
-                self.__kplDataManager.save_data(type_, result_list)
-                RealTimeKplMarketData.set_market_jingxuan_out_blocks(result_list)
-        elif type_ == KPLDataType.MARKET_STRONG.value:
-            strong = data["data"]
-            logger_kpl_market_strong.info(strong)
-            # 淇濆瓨甯傚満鐑害
-            if strong is not None:
-                RealTimeKplMarketData.set_market_strong(strong)
-        return json.dumps({"code": 0})
+        else:
+            pass
+        self.__send_response(result_str)
 
     def __send_response(self, data):
         # 鍙戠粰璇锋眰瀹㈡埛绔殑鍝嶅簲鏁版嵁
@@ -1090,8 +72,6 @@
 def run(addr, port):
     # 杩愯鐪嬬洏娑堟伅閲囬泦
     # kp_client_msg_manager.run_capture()
-    kpl_data_manager.PullTask.run_pull_task()
-
     handler = DataServer
     # httpd = socketserver.TCPServer((addr, port), handler)
     try:

--
Gitblit v1.8.0