事件分析标签分组项1

This commit is contained in:
Àî×ÚÕñ 2022-06-10 17:41:03 +08:00
parent f4442cdcb4
commit 433b39d1cf

View File

@ -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,