控制显隐指标
This commit is contained in:
parent
aec4ebf825
commit
362a1cb1d2
@ -148,7 +148,12 @@ async def event_model(
|
||||
await analysis.init(data_where=current_user.data_where)
|
||||
sqls = await analysis.event_model_sql()
|
||||
res = []
|
||||
for item in sqls:
|
||||
is_hide = []
|
||||
|
||||
for idx, item in enumerate(sqls):
|
||||
if item.get('is_show') == False:
|
||||
is_hide.append(idx)
|
||||
|
||||
q = {
|
||||
'groups': [],
|
||||
'values': [],
|
||||
@ -262,6 +267,7 @@ async def event_model(
|
||||
item['values'] = np.array(item['values'])[sort_key].tolist()
|
||||
item['sum'] = np.array(item['sum'])[sort_key].tolist()
|
||||
item['avg'] = np.array(item['avg'])[sort_key].tolist()
|
||||
res = [item for idx, item in enumerate(res) if idx not in is_hide]
|
||||
|
||||
return schemas.Msg(code=0, msg='ok', data=res)
|
||||
|
||||
|
@ -220,7 +220,6 @@ class BehaviorAnalysis:
|
||||
# self.event_tbl = sa.Table('event_view', metadata, *[sa.Column(column) for column in columns])
|
||||
self.event_tbl = sa.Table('event', metadata, *[sa.Column(column) for column in columns])
|
||||
|
||||
|
||||
async def handler_filts(self, *filters):
|
||||
"""
|
||||
|
||||
@ -244,7 +243,7 @@ class BehaviorAnalysis:
|
||||
elif item['tableType'] == 'event':
|
||||
where = event_filter
|
||||
elif item['tableType'] == 'user_label':
|
||||
user_cluster_def=UserClusterDef(self.game,item['columnName'],self.data_where)
|
||||
user_cluster_def = UserClusterDef(self.game, item['columnName'], self.data_where)
|
||||
await user_cluster_def.init()
|
||||
sub_qry = user_cluster_def.to_sql_qry()
|
||||
if comparator == 'in':
|
||||
@ -252,7 +251,6 @@ class BehaviorAnalysis:
|
||||
else:
|
||||
event_filter.append(sa.Column('#account_id').notin_(sub_qry))
|
||||
|
||||
|
||||
continue
|
||||
else:
|
||||
continue
|
||||
@ -260,7 +258,6 @@ class BehaviorAnalysis:
|
||||
tbl = getattr(self, f'{item["tableType"]}_tbl')
|
||||
col = getattr(tbl.c, item['columnName'])
|
||||
|
||||
|
||||
ftv = item['ftv']
|
||||
if comparator == '==':
|
||||
if len(ftv) > 1:
|
||||
@ -319,7 +316,7 @@ class BehaviorAnalysis:
|
||||
who_visit = getattr(self.event_tbl.c, visit_name)
|
||||
|
||||
filters, _ = await self.handler_filts((self.events[0]['filts'], self.events[0].get('relation')),
|
||||
self.ext_filters)
|
||||
self.ext_filters)
|
||||
filters = filters or [1]
|
||||
selectd = [func.toStartOfDay(func.addHours(event_time_col, self.zone_time)).label('date'),
|
||||
*self.groupby,
|
||||
@ -379,6 +376,7 @@ class BehaviorAnalysis:
|
||||
|
||||
for event in self.events:
|
||||
event_name_display = event.get('eventNameDisplay')
|
||||
is_show = event.get('is_show', True)
|
||||
|
||||
select_exprs = []
|
||||
if self.time_particle != 'total':
|
||||
@ -403,9 +401,9 @@ class BehaviorAnalysis:
|
||||
event_name = custom['event_name']
|
||||
where = [event_name_col.in_(event_name)]
|
||||
event_filter, _ = await self.handler_filts((event['filts'], event.get('relation')),
|
||||
(self.global_filters, self.global_relation),
|
||||
self.ext_filters
|
||||
)
|
||||
(self.global_filters, self.global_relation),
|
||||
self.ext_filters
|
||||
)
|
||||
select_exprs.extend(self.groupby)
|
||||
qry = sa.select(
|
||||
*select_exprs,
|
||||
@ -420,7 +418,8 @@ class BehaviorAnalysis:
|
||||
'end_date': self.end_date[:10],
|
||||
'event_name': event.get('eventNameDisplay'),
|
||||
'format': event.get('format') or 'float',
|
||||
'date_range': self.date_range
|
||||
'date_range': self.date_range,
|
||||
'is_show': is_show,
|
||||
}
|
||||
)
|
||||
continue
|
||||
@ -482,7 +481,7 @@ class BehaviorAnalysis:
|
||||
'time_particle': self.time_particle,
|
||||
'start_date': self.start_date[:10],
|
||||
'end_date': self.end_date[:10],
|
||||
|
||||
'is_show': is_show,
|
||||
})
|
||||
|
||||
return sqls
|
||||
@ -512,7 +511,7 @@ ORDER BY level
|
||||
cond_level = []
|
||||
for item in self.events:
|
||||
event_filter, _ = await self.handler_filts((item['filts'], item.get('relation', 'and'))
|
||||
, self.ext_filters)
|
||||
, self.ext_filters)
|
||||
conds.append(
|
||||
and_(event_name_col == item['eventName'], *event_filter)
|
||||
)
|
||||
@ -523,7 +522,7 @@ ORDER BY level
|
||||
self.event_tbl)
|
||||
|
||||
g_event_filter, _ = await self.handler_filts((self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
, self.ext_filters)
|
||||
where = [
|
||||
func.addHours(event_time_col, self.zone_time) >= self.start_date,
|
||||
func.addHours(event_time_col, self.zone_time) <= self.end_date,
|
||||
@ -572,8 +571,8 @@ ORDER BY level
|
||||
if event_name != '*':
|
||||
where.append(event_name_col == event_name)
|
||||
event_filter, user_filter = await self.handler_filts((event['filts'], event.get('relation', 'and')),
|
||||
(self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
(self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
if user_filter:
|
||||
where.append(e_account_id_col.in_(sa.select(u_account_id_col).where(*user_filter)))
|
||||
where.extend(event_filter)
|
||||
@ -583,9 +582,9 @@ ORDER BY level
|
||||
|
||||
if analysis in ['times', 'number_of_days', 'number_of_hours']:
|
||||
if self.time_particle == 'total':
|
||||
qry = sa.select( *self.groupby, values_col) \
|
||||
qry = sa.select(*self.groupby, values_col) \
|
||||
.where(and_(*where)) \
|
||||
.group_by( *self.groupby, e_account_id_col)
|
||||
.group_by(*self.groupby, e_account_id_col)
|
||||
else:
|
||||
qry = sa.select(event_date_col, *self.groupby, values_col) \
|
||||
.where(and_(*where)) \
|
||||
@ -606,10 +605,10 @@ ORDER BY level
|
||||
elif event.get('quota'):
|
||||
event_attr_col = getattr(self.event_tbl.c, event['quota'])
|
||||
if self.time_particle == 'total':
|
||||
qry = sa.select( e_account_id_col,
|
||||
qry = sa.select(e_account_id_col,
|
||||
settings.CK_FUNC[analysis](event_attr_col).label('values')) \
|
||||
.where(and_(*where)) \
|
||||
.group_by( *self.groupby, e_account_id_col)
|
||||
.group_by(*self.groupby, e_account_id_col)
|
||||
else:
|
||||
qry = sa.select(event_date_col, e_account_id_col,
|
||||
settings.CK_FUNC[analysis](event_attr_col).label('values')) \
|
||||
@ -749,8 +748,8 @@ ORDER BY values desc"""
|
||||
visit_name = self.events[0].get('event_attr_id')
|
||||
|
||||
where, _ = await self.handler_filts((self.events[0]['filts'], self.events[0].get('relation', 'and')),
|
||||
(self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
(self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
where_a = '1'
|
||||
if where:
|
||||
qry = sa.select().where(*where)
|
||||
@ -758,8 +757,8 @@ ORDER BY values desc"""
|
||||
where_a = sql.split('WHERE ')[1]
|
||||
|
||||
where, _ = await self.handler_filts((self.events[1]['filts'], self.events[1].get('relation', 'and')),
|
||||
(self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
(self.global_filters, self.global_relation)
|
||||
, self.ext_filters)
|
||||
where_b = '1'
|
||||
if where:
|
||||
qry = sa.select().where(*where)
|
||||
@ -817,7 +816,7 @@ group by a.reg_date) log on reg.date=log.reg_date
|
||||
'sql': sql,
|
||||
'date_range': self.date_range,
|
||||
'unit_num': self.unit_num,
|
||||
'retention_n':retention_n,
|
||||
'retention_n': retention_n,
|
||||
'filter_item_type': filter_item_type,
|
||||
'filter_item': filter_item,
|
||||
'time_particle': self.time_particle,
|
||||
|
Loading…
Reference in New Issue
Block a user