diff --git a/api/api_v1/endpoints/data_auth.py b/api/api_v1/endpoints/data_auth.py index 62f1e4b..4d85e75 100644 --- a/api/api_v1/endpoints/data_auth.py +++ b/api/api_v1/endpoints/data_auth.py @@ -169,20 +169,18 @@ async def load_prop_quotas(request: Request, current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> 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 = {item['name']: item for item in data_attr} event_props = [] - for item in event_prop_list: - data_type = settings.CK_TYPE_DICT.get(all_filed.get(item)) - title = data_attr.get(item, {}).get('show_name') or item + for item in event_columns: + data_type = settings.CK_TYPE_DICT.get(item['type']) + title = data_attr.get(item['name'], {}).get('show_name') or item['name'] event_prop = { - 'id': item, + 'id': item['name'], 'data_type': data_type, 'title': title, 'category': settings.CK_OPERATOR.get(data_type) or [] diff --git a/models/behavior_analysis.py b/models/behavior_analysis.py index f670b90..5e027f4 100644 --- a/models/behavior_analysis.py +++ b/models/behavior_analysis.py @@ -174,8 +174,15 @@ class BehaviorAnalysis: def handler_filts(self, *ext_filters, g_f=True): user_filter = [] event_filter = [] - filters = (*self.global_filters, *ext_filters) if g_f else (*ext_filters,) - filters = [] if filters == ([],) else filters + # filters = (*self.global_filters, *ext_filters) if g_f else (*ext_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: if item['tableType'] == 'user': where = user_filter @@ -422,7 +429,7 @@ ORDER BY level event_date_col <= self.end_date, 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) values_col = func.count().label('values') if analysis in ['number_of_days', 'number_of_hours']: