Administrator
2024-07-25 9d39b293bde97f31f522010373aad1dd3f654c07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from log_module.log import logger_debug
from third_data import kpl_data_manager, kpl_block_util
from trade.l2_transaction_data_manager import HuaXinBuyOrderManager
from utils import tool, output_util
 
 
def load_code_detail_info(code):
    """
    加载代码详情信息
    :param code:
    :return:
    """
    # 获取板块
    fresults = {}
    blocks = kpl_data_manager.KPLCodeJXBlockManager().get_jx_blocks_cache(code)
    if blocks:
        blocks = blocks[0]
    if not blocks:
        blocks = kpl_data_manager.KPLCodeJXBlockManager().get_jx_blocks_cache(code, True)
        if blocks:
            blocks = blocks[0]
    if blocks is None:
        blocks = []
    current_blocks = kpl_data_manager.KPLLimitUpDataRecordManager.get_current_blocks(code)
    if current_blocks:
        blocks = current_blocks
 
    # 历史涨停数据
    limit_up_records_data = kpl_data_manager.KPLLimitUpDataRecordManager.total_datas
    if limit_up_records_data is None:
        limit_up_records_data = []
    code_limit_up_reasons_dict = {}
    for r in limit_up_records_data:
        blocks_ = {r[2]}
        blocks_ |= set(r[6].split("、"))
        code_limit_up_reasons_dict[r[3]] = blocks_
        if r[3] == code:
            if not current_blocks:
                blocks = blocks_
            fresults["limit_up_time"] = tool.to_time_str(int(r[5]))
            fresults["highDesc"] = r[12]
            fresults["zyltgb"] = output_util.money_desc(r[13])
            fresults["limitUpReason"] = r[2]
    # 获取板块详细信息
    blockInfos = []
    latest_datas = kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas
    if latest_datas is None:
        latest_datas = []
    if type(blocks) == tuple:
        blocks = set(blocks[0])
    for b in blocks:
        try:
            current_codes = kpl_data_manager.KPLLimitUpDataRecordManager.get_current_codes_by_block(b)
            current_codes_count = 0 if not current_codes else len(current_codes)
            temp_records = []
            for r in limit_up_records_data:
                temp_blocks = {r[2]}
                temp_blocks |= set(r[6].split("、"))
                if b in temp_blocks:
                    temp_records.append(r)
            rank = kpl_block_util.get_code_current_rank(code, b, latest_datas, code_limit_up_reasons_dict, [], [], [], 0)
 
            blockInfos.append({"name": b, "totalLimitUpCount": len(temp_records),
                               "openLimitUpCount": len(temp_records) - current_codes_count, "rank": rank[0] + 1})
        except Exception as e:
            logger_debug.exception(e)
 
    # 统计板块的
    fresults["blockInfos"] = blockInfos
    fresults["blocks"] = list(blocks)
    big_orders = HuaXinBuyOrderManager.get_big_buy_orders_from_file(code)
    if not big_orders:
        big_orders = []
    fresults["bigOrderDealCount"] = len(big_orders)
    fresults["bigOrderDealMoney"] = output_util.money_desc(sum([x[2] for x in big_orders]))
    return fresults