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