Administrator
2024-11-25 54d95545eb415d5a9420c87dcb6383e788049f45
servers/data_server.py
@@ -3,8 +3,10 @@
import logging
import socketserver
import time
import urllib
from http.server import BaseHTTPRequestHandler
import dask
import requests
from code_attribute.gpcode_manager import BlackListCodeManager
from l2.l2_transaction_data_manager import HuaXinBuyOrderManager
@@ -107,7 +109,7 @@
                codes_ = BlockSpecialCodesManager().get_block_codes(b[0])
                if not codes_:
                    codes_ = set()
                b[4] = len(set(record_reason_dict[b[0]])&set(codes_))
                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])
@@ -813,6 +815,33 @@
                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:
                        # (代码, 名称, 流入金额, 是否被排除成分股)
                        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)})
        async_log_util.info(logger_request_api, f"结束请求{tool.get_thread_id()}-{url}")
        self.send_response(200)