1.优化路径分析,展示对应的中文显示,按固定格式进行排序
This commit is contained in:
parent
e83c49caf3
commit
69fa383c44
@ -1401,16 +1401,35 @@ async def trace_model_sql(
|
||||
if df.empty:
|
||||
return schemas.Msg(code=-9, msg='无数据', data=None)
|
||||
chain_dict = defaultdict(dict)
|
||||
event_num_dict={}
|
||||
nodes = {'流失'}
|
||||
name_list=analysis.events['event_namesdes']
|
||||
name_dict={}
|
||||
for i in name_list:
|
||||
name_dict[i['event_name']]=i['event_desc']
|
||||
for event_names, count in zip(df['event_chain'], df['values']):
|
||||
fmt_keys=[]
|
||||
chain_len = len(event_names)
|
||||
for i, event_name in enumerate(event_names):
|
||||
if i >= 10:
|
||||
continue
|
||||
next_event = event_names[i + 1] if i < chain_len - 1 else '流失'
|
||||
key = (f'{event_name}{i}', f'{next_event}{i + 1}')
|
||||
#按对应的中文名显示
|
||||
event_namess=name_dict.get(event_name,event_name)
|
||||
next_eventss=name_dict.get(next_event,next_event)
|
||||
key = (f'{event_namess}-{i}', f'{next_eventss}-{i + 1}')
|
||||
#key = (f'{event_name}', f'{next_event}')
|
||||
nodes.update(key)
|
||||
chain_dict[i][key] = chain_dict[i].setdefault(key, 0) + count
|
||||
keys = list(key)
|
||||
for true_key in keys:
|
||||
if true_key in fmt_keys:
|
||||
continue
|
||||
if true_key in event_num_dict:
|
||||
event_num_dict[true_key] += count
|
||||
else:
|
||||
event_num_dict[true_key] = count
|
||||
fmt_keys.append(true_key)
|
||||
|
||||
links = []
|
||||
for _, items in chain_dict.items():
|
||||
@ -1420,15 +1439,30 @@ async def trace_model_sql(
|
||||
"target": keys[1],
|
||||
"value": val
|
||||
})
|
||||
# nodes = set()
|
||||
# for item in links:
|
||||
# nodes.update((
|
||||
# item['source'],
|
||||
# item['target'])
|
||||
# )
|
||||
node=[ item for item in nodes]
|
||||
node.sort()
|
||||
#按固定的首尾排序
|
||||
first = []
|
||||
trail = []
|
||||
nodes = []
|
||||
for i in node:
|
||||
if analysis.events['source_event']['eventDesc'] in i:
|
||||
first.append(i)
|
||||
elif '流失' in i:
|
||||
trail.append(i)
|
||||
else:
|
||||
nodes.append(i)
|
||||
first.sort(reverse=True)
|
||||
for i in first:
|
||||
nodes.insert(0, i)
|
||||
for i in trail:
|
||||
nodes.append(i)
|
||||
|
||||
data = {
|
||||
#'nodes': [{'name': item} for item in nodes],
|
||||
'nodes': [{'name': item} for item in nodes],
|
||||
'links': links,
|
||||
#'event_num':event_num_dict,
|
||||
'start_date': res['start_date'],
|
||||
'end_date': res['end_date'],
|
||||
'time_particle': res['time_particle']
|
||||
|
Loading…
Reference in New Issue
Block a user