事件分析标签分组项1
This commit is contained in:
parent
f4442cdcb4
commit
433b39d1cf
@ -116,6 +116,7 @@ async def event_model_export(request: Request,
|
|||||||
export = d.to_stream()
|
export = d.to_stream()
|
||||||
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
||||||
|
|
||||||
|
|
||||||
@router.post("/event_model_pay")
|
@router.post("/event_model_pay")
|
||||||
async def event_model_export(request: Request,
|
async def event_model_export(request: Request,
|
||||||
game: str,
|
game: str,
|
||||||
@ -146,6 +147,7 @@ orderid NOT LIKE '%GM%' order by `#event_time`"""
|
|||||||
export = d.to_stream()
|
export = d.to_stream()
|
||||||
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
||||||
|
|
||||||
|
|
||||||
# @router.get("/event_model_export")
|
# @router.get("/event_model_export")
|
||||||
# async def event_model_export(request: Request,
|
# async def event_model_export(request: Request,
|
||||||
# game: str,
|
# game: str,
|
||||||
@ -404,7 +406,10 @@ async def event_model(
|
|||||||
if group_label:
|
if group_label:
|
||||||
for name, idx in group_label.items():
|
for name, idx in group_label.items():
|
||||||
gb.insert(idx, name)
|
gb.insert(idx, name)
|
||||||
groups.append(str(gb))
|
|
||||||
|
# 去掉分组表现里面的''
|
||||||
|
appgb = str(gb).replace("'", '')
|
||||||
|
groups.append(appgb)
|
||||||
item['groups'] = groups
|
item['groups'] = groups
|
||||||
item['values'] = np.array(item['values'])[sort_key].tolist()
|
item['values'] = np.array(item['values'])[sort_key].tolist()
|
||||||
item['sum'] = np.array(item['sum'])[sort_key].tolist()
|
item['sum'] = np.array(item['sum'])[sort_key].tolist()
|
||||||
@ -612,7 +617,6 @@ async def retention_model01(request: Request,
|
|||||||
tmp['p_outflow'].append(n)
|
tmp['p_outflow'].append(n)
|
||||||
tmp['n_outflow'].append(rd['o_cntn'])
|
tmp['n_outflow'].append(rd['o_cntn'])
|
||||||
|
|
||||||
|
|
||||||
title = ['日期', '用户数', '次流失', *[f'{i + 1}流失' for i in retention_n[1:]]]
|
title = ['日期', '用户数', '次流失', *[f'{i + 1}流失' for i in retention_n[1:]]]
|
||||||
|
|
||||||
# 未到达的日期需要补齐-
|
# 未到达的日期需要补齐-
|
||||||
@ -636,7 +640,6 @@ async def retention_model01(request: Request,
|
|||||||
return schemas.Msg(code=0, msg='ok', data=resp)
|
return schemas.Msg(code=0, msg='ok', data=resp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@router.post("/retention_model_export")
|
@router.post("/retention_model_export")
|
||||||
async def retention_model_export(request: Request,
|
async def retention_model_export(request: Request,
|
||||||
game: str,
|
game: str,
|
||||||
@ -1206,6 +1209,8 @@ async def scatter_model(
|
|||||||
# resp['list'][key.strftime('%Y-%m-%d')]['总体'] = {'n': bins_s.to_list(), 'total': total,
|
# resp['list'][key.strftime('%Y-%m-%d')]['总体'] = {'n': bins_s.to_list(), 'total': total,
|
||||||
# 'p': round(bins_s * 100 / total, 2).to_list(),
|
# 'p': round(bins_s * 100 / total, 2).to_list(),
|
||||||
# 'title': '总体'}
|
# 'title': '总体'}
|
||||||
|
|
||||||
|
|
||||||
@router.post("/scatter_model_details")
|
@router.post("/scatter_model_details")
|
||||||
async def scatter_model(
|
async def scatter_model(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1411,6 +1416,7 @@ async def scatter_model(
|
|||||||
else:
|
else:
|
||||||
return schemas.Msg(code=-9, msg='没有添加分组项', data='')
|
return schemas.Msg(code=-9, msg='没有添加分组项', data='')
|
||||||
|
|
||||||
|
|
||||||
@router.post("/trace_model_sql")
|
@router.post("/trace_model_sql")
|
||||||
async def trace_model_sql(
|
async def trace_model_sql(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1669,6 +1675,7 @@ async def user_property_model(
|
|||||||
'title': title
|
'title': title
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@router.post("/seek_user")
|
@router.post("/seek_user")
|
||||||
async def user_property_model(
|
async def user_property_model(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1688,14 +1695,18 @@ async def user_property_model(
|
|||||||
# 判断是否是时间类型
|
# 判断是否是时间类型
|
||||||
if data_in.user_arrt_type == 'datetime':
|
if data_in.user_arrt_type == 'datetime':
|
||||||
sql = f"""select `#account_id`,`{ziduan}` from {game}.`user` WHERE addHours(`{ziduan}`, 8) >= '{data_in.start_time}'
|
sql = f"""select `#account_id`,`{ziduan}` from {game}.`user` WHERE addHours(`{ziduan}`, 8) >= '{data_in.start_time}'
|
||||||
and addHours(`{ziduan}`, 8) <= '{data_in.end_time}' ORDER BY `#reg_time` LIMIT 10 OFFSET {(data_in.pages-1)*10}"""
|
and addHours(`{ziduan}`, 8) <= '{data_in.end_time}' ORDER BY `#reg_time` LIMIT 10 OFFSET {(
|
||||||
|
data_in.pages - 1) * 10}"""
|
||||||
# 如果查询'#account_id',则不多余返回一个account_id
|
# 如果查询'#account_id',则不多余返回一个account_id
|
||||||
elif ziduan == '#account_id':
|
elif ziduan == '#account_id':
|
||||||
sql=f"""select `{ziduan}`,name from {game}.`user` WHERE `{ziduan}` {tiaojian} '{data_in.condition}' ORDER BY `#reg_time` LIMIT 10 OFFSET {(data_in.pages-1)*10} """
|
sql = f"""select `{ziduan}`,name from {game}.`user` WHERE `{ziduan}` {tiaojian} '{data_in.condition}' ORDER BY `#reg_time` LIMIT 10 OFFSET {(
|
||||||
|
data_in.pages - 1) * 10} """
|
||||||
elif data_in.user_arrt_type == 'int':
|
elif data_in.user_arrt_type == 'int':
|
||||||
sql=f"""select `#account_id`,`{ziduan}` from {game}.`user` WHERE `{ziduan}` {tiaojian} {data_in.condition} ORDER BY `#reg_time` LIMIT 10 OFFSET {(data_in.pages-1)*10}"""
|
sql = f"""select `#account_id`,`{ziduan}` from {game}.`user` WHERE `{ziduan}` {tiaojian} {data_in.condition} ORDER BY `#reg_time` LIMIT 10 OFFSET {(
|
||||||
|
data_in.pages - 1) * 10}"""
|
||||||
else:
|
else:
|
||||||
sql=f"""select `#account_id`,`{ziduan}` from `{game}`.`user` WHERE `{ziduan}` {tiaojian} '{data}' ORDER BY `#reg_time` LIMIT 10 OFFSET {(data_in.pages-1)*10}"""
|
sql = f"""select `#account_id`,`{ziduan}` from `{game}`.`user` WHERE `{ziduan}` {tiaojian} '{data}' ORDER BY `#reg_time` LIMIT 10 OFFSET {(
|
||||||
|
data_in.pages - 1) * 10}"""
|
||||||
# 查询数据
|
# 查询数据
|
||||||
try:
|
try:
|
||||||
df = await ckdb.query_dataframe(sql)
|
df = await ckdb.query_dataframe(sql)
|
||||||
@ -1720,6 +1731,8 @@ async def user_property_model(
|
|||||||
'new_values': new_values
|
'new_values': new_values
|
||||||
}}
|
}}
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/seek_user_count")
|
@router.post("/seek_user_count")
|
||||||
async def user_property_model(
|
async def user_property_model(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1756,6 +1769,7 @@ async def user_property_model(
|
|||||||
res = len(df)
|
res = len(df)
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/download_user")
|
@router.post("/download_user")
|
||||||
async def user_property_model(
|
async def user_property_model(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1801,6 +1815,7 @@ async def user_property_model(
|
|||||||
export = d.to_stream()
|
export = d.to_stream()
|
||||||
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
||||||
|
|
||||||
|
|
||||||
@router.post("/solo_user")
|
@router.post("/solo_user")
|
||||||
async def user_property_model(
|
async def user_property_model(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1917,6 +1932,8 @@ addHours(`#event_time`, `#zone_offset`) <= '{data_in.end_time}' and `#event_name
|
|||||||
'proportion': zhanbi
|
'proportion': zhanbi
|
||||||
}
|
}
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/event_list")
|
@router.get("/event_list")
|
||||||
async def event_list(
|
async def event_list(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1935,6 +1952,7 @@ async def event_list(
|
|||||||
res = event_list[0]['details']
|
res = event_list[0]['details']
|
||||||
return schemas.Msg(code=0, msg='ok', data=res)
|
return schemas.Msg(code=0, msg='ok', data=res)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/add_event_list")
|
@router.post("/add_event_list")
|
||||||
async def add_select_map(
|
async def add_select_map(
|
||||||
request: Request,
|
request: Request,
|
||||||
|
Loading…
Reference in New Issue
Block a user