diff --git a/common/verification.py b/common/verification.py index a055c8e..75569ea 100644 --- a/common/verification.py +++ b/common/verification.py @@ -8,7 +8,10 @@ __all__ = 'restore_field', 'sort_kv', 'check_sign', 'check_preset' def restore_field(data: dict) -> dict: res = dict() for k, v in data.items(): - res[settings.FIELD_MAP.get(k) or k] = v + if isinstance(v, dict): + res[settings.FIELD_MAP.get(k) or k] = restore_field(v) + else: + res[settings.FIELD_MAP.get(k) or k] = v return res diff --git a/handler_data/ta_handler.py b/handler_data/ta_handler.py index a273451..c2178d5 100644 --- a/handler_data/ta_handler.py +++ b/handler_data/ta_handler.py @@ -19,7 +19,7 @@ class TaHandler: if v is not None: msg[k] = data.pop(k) msg['properties'] = data.pop('properties') # type:dict - if msg['#type'] in ('track', 'track_update'): + if msg['#type'] in ('track', 'track_update', 'track_overwrite'): msg['properties'].update(data) if 'event_id' in msg['properties']: msg['#event_id'] = msg['properties'].pop('event_id') @@ -47,6 +47,11 @@ async def add_ip(request, rdb, data): data['#ip'] = data.get('#ip') or ip +@TaHandler +async def set_appid(request, rdb, data): + data['#app_id'] = settings.APPID_MAP.get(data['#app_id'], data['#app_id']) + + @TaHandler async def to_date(request, rdb, data): """ diff --git a/routers/point.py b/routers/point.py index 28231c5..d2ff9ad 100644 --- a/routers/point.py +++ b/routers/point.py @@ -20,7 +20,9 @@ async def point(request: Request, items: DataModel): appid = items.public.get('b01') if not appid: return {'code': -1, 'msg': '必须要appid'} - output_factory.name = settings.OUTPUT_NAME[appid] + output_factory.name = settings.OUTPUT_NAME.get(appid) + if not output_factory.name: + return {'code': -1, 'msg': '没有匹配到appid'} for item in items.data: data: dict = restore_field(item) sign = data.pop('sign') diff --git a/settings.py b/settings.py index 5859d12..9779906 100644 --- a/settings.py +++ b/settings.py @@ -46,15 +46,13 @@ class Config: "a36": "#app_crashed_reason", "a37": "#zone_offset", - - "b01": "#app_id", "b02": "#type", "b03": "#time", "b06": "#event_time" } - TA_OUTER = {'#time', '#ip', '#type', '#distinct_id', '#account_id', '#event_name','#event_id'} + TA_OUTER = {'#time', '#ip', '#type', '#distinct_id', '#account_id', '#event_name', '#event_id', '#app_id'} REDIS_CONF = { 'address': ('192.168.0.161', 6379), @@ -63,11 +61,21 @@ class Config: } SALT = { '3F9AdWKZGhhNS2': 's4epprEG8DdyG5', - 'G5OYZLM21H': 's4epprEG8DdyG5' + 'G5OYZLM21H': 's4epprEG8DdyG5', + 'c3e0409ac18341149877b08f087db640': 's4epprEG8DdyG5', + 'e903ab24ad8f4bfca8a3ce7e122cd102': 's4epprEG8DdyG5' } + + # 映射数数 appID + APPID_MAP = { + '3F9AdWKZGhhNS2': 'a77703e24e6643d08b74a4163a14f74c' + } + OUTPUT_NAME = { '3F9AdWKZGhhNS2': 'test', - 'G5OYZLM21H': 'test' + 'G5OYZLM21H': 'test', + 'c3e0409ac18341149877b08f087db640': 'test2', + 'e903ab24ad8f4bfca8a3ce7e122cd102': 'test3' } KAFKA_CONF = { 'bootstrap_servers': ["192.168.0.30:9092", "192.168.0.71:9092", "192.168.0.229:9092"],