This commit is contained in:
wuaho 2021-08-20 16:52:41 +08:00
parent 36b5104c66
commit 189ce272e8
2 changed files with 17 additions and 12 deletions

View File

@ -169,20 +169,18 @@ async def load_prop_quotas(request: Request,
current_user: schemas.UserDB = Depends(deps.get_current_user) current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg: ) -> schemas.Msg:
"""事件属性 聚合条件""" """事件属性 聚合条件"""
key = f'{game}_event_{data_in.event_name}'
event_prop_set = await rdb.smembers(key)
event_prop_list = sorted(event_prop_set)
all_filed = await rdb.get(f'{game}_event')
all_filed = json.loads(all_filed) event_columns = await ck.get_columns(game, 'event')
data_attr = await crud.data_attr.find_many(db, {'game': game, 'cat': 'event'}) data_attr = await crud.data_attr.find_many(db, {'game': game, 'cat': 'event'})
data_attr = {item['name']: item for item in data_attr} data_attr = {item['name']: item for item in data_attr}
event_props = [] event_props = []
for item in event_prop_list: for item in event_columns:
data_type = settings.CK_TYPE_DICT.get(all_filed.get(item)) data_type = settings.CK_TYPE_DICT.get(item['type'])
title = data_attr.get(item, {}).get('show_name') or item title = data_attr.get(item['name'], {}).get('show_name') or item['name']
event_prop = { event_prop = {
'id': item, 'id': item['name'],
'data_type': data_type, 'data_type': data_type,
'title': title, 'title': title,
'category': settings.CK_OPERATOR.get(data_type) or [] 'category': settings.CK_OPERATOR.get(data_type) or []

View File

@ -174,8 +174,15 @@ class BehaviorAnalysis:
def handler_filts(self, *ext_filters, g_f=True): def handler_filts(self, *ext_filters, g_f=True):
user_filter = [] user_filter = []
event_filter = [] event_filter = []
filters = (*self.global_filters, *ext_filters) if g_f else (*ext_filters,) # filters = (*self.global_filters, *ext_filters) if g_f else (*ext_filters,)
filters = [] if filters == ([],) else filters filters = []
if g_f:
filters.extend(self.global_filters)
filters.extend(ext_filters)
else:
filters.extend(self.global_filters)
# filters = [] if filters == ([],) else filters
for item in filters: for item in filters:
if item['tableType'] == 'user': if item['tableType'] == 'user':
where = user_filter where = user_filter
@ -422,7 +429,7 @@ ORDER BY level
event_date_col <= self.end_date, event_date_col <= self.end_date,
event_name_col == event_name event_name_col == event_name
] ]
event_filter, _ = self.handler_filts(self.events[0]['filts']) event_filter, _ = self.handler_filts(*self.events[0]['filts'])
where.extend(event_filter) where.extend(event_filter)
values_col = func.count().label('values') values_col = func.count().label('values')
if analysis in ['number_of_days', 'number_of_hours']: if analysis in ['number_of_days', 'number_of_hours']: