分布分析导出
This commit is contained in:
parent
b97ce1a77a
commit
f8c48df43b
@ -587,6 +587,27 @@ async def scatter_model_sql(
|
||||
data = analysis.scatter_model_sql()
|
||||
return schemas.Msg(code=0, msg='ok', data=[data])
|
||||
|
||||
@router.post("/scatter_model_export")
|
||||
async def retention_model_export(request: Request,
|
||||
game: str,
|
||||
ckdb: CKDrive = Depends(get_ck_db),
|
||||
analysis: BehaviorAnalysis = Depends(BehaviorAnalysis),
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
):
|
||||
""" 分布分析 数据导出"""
|
||||
await analysis.init(data_where=current_user.data_where)
|
||||
data = analysis.scatter_model_sql()
|
||||
file_name = quote(f'分布分析.xlsx')
|
||||
mime = mimetypes.guess_type(file_name)[0]
|
||||
|
||||
sql = data['sql']
|
||||
df = await ckdb.query_dataframe(sql)
|
||||
df_to_stream = DfToStream((df, '分布分析'))
|
||||
with df_to_stream as d:
|
||||
export = d.to_stream()
|
||||
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
||||
|
||||
|
||||
|
||||
@router.post("/scatter_model")
|
||||
async def scatter_model(
|
||||
|
@ -593,7 +593,7 @@ ORDER BY level
|
||||
event = self.events[0]
|
||||
event_name = event['eventName']
|
||||
analysis = event['analysis']
|
||||
e_account_id_col = getattr(self.event_tbl.c, '#account_id')
|
||||
e_account_id_col = getattr(self.event_tbl.c, '#account_id').label('uid')
|
||||
u_account_id_col = getattr(self.user_tbl.c, '#account_id')
|
||||
event_name_col = getattr(self.event_tbl.c, '#event_name')
|
||||
event_time_col = getattr(self.event_tbl.c, '#event_time').label('date')
|
||||
@ -641,7 +641,7 @@ ORDER BY level
|
||||
elif event.get('quota'):
|
||||
event_attr_col = getattr(self.event_tbl.c, event['quota'])
|
||||
|
||||
qry = sa.select(event_date_col, settings.CK_FUNC[analysis](event_attr_col).label('values')) \
|
||||
qry = sa.select(event_date_col,e_account_id_col, settings.CK_FUNC[analysis](event_attr_col).label('values')) \
|
||||
.where(and_(*where)) \
|
||||
.group_by(event_date_col, *self.groupby, e_account_id_col)
|
||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||
|
Loading…
Reference in New Issue
Block a user