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
|