diff --git a/handler/handle_event.py b/handler/handle_event.py index a4d8bb2..7543af9 100644 --- a/handler/handle_event.py +++ b/handler/handle_event.py @@ -7,8 +7,9 @@ class HandlerEvent(Handler): @classmethod def get_coll(cls, *args, **kwargs): event_date = kwargs.get('event_date') + appid = kwargs.get('appid') coll_name = f'event_{event_date}' - return cls.g_mdb[coll_name] + return cls.g_mdb[appid][coll_name] def handler_event(self): update_data = self._data.get('props', {}) @@ -25,6 +26,6 @@ class HandlerEvent(Handler): '_ut': self._nt, '_ct': self._nt, }) - coll = self.get_coll(event_date=event_date) + coll = self.get_coll(appid=self.appid, event_date=event_date) coll.insert(update_data) diff --git a/handler/handle_paylist.py b/handler/handle_paylist.py index 400f606..f4b76ec 100644 --- a/handler/handle_paylist.py +++ b/handler/handle_paylist.py @@ -4,7 +4,8 @@ from .handler import Handler class HandlerPaylist(Handler): @classmethod def get_coll(cls, *args, **kwargs): - return cls.g_mdb['paylist'] + appid = kwargs.get('appid') + return cls.g_mdb[appid]['paylist'] def get_where(self): props = self._data['props'] diff --git a/handler/handle_user.py b/handler/handle_user.py index fcaa89a..23c527a 100644 --- a/handler/handle_user.py +++ b/handler/handle_user.py @@ -4,7 +4,8 @@ from .handler import Handler class HandlerUser(Handler): @classmethod def get_coll(cls, *args, **kwargs): - return cls.g_mdb['user'] + appid = kwargs.get('appid') + return cls.g_mdb[appid]['user'] def get_where(self): props = self._data['props'] @@ -12,4 +13,3 @@ class HandlerUser(Handler): '_game_role_id': props.get('_game_role_id'), # 游戏角色id } return where - diff --git a/handler/handler.py b/handler/handler.py index 91a95b3..75a2df6 100644 --- a/handler/handler.py +++ b/handler/handler.py @@ -14,20 +14,20 @@ class Handler(metaclass=ABCMeta): def __init__(self, data): self._data = data - appid = data['appid'] + self.appid = data['appid'] self._event = self._data['event'] self._game = self._data['project'] self._type = self._data['type'] Handler._init_game_config() - Handler._init_mdb(f'{settings.DB_PREFIX}_{Handler.game_config[appid]["id_name"]}') - self.secret_token = Handler.game_config[appid].get('secret_token', '') - self._nt = arrow.now(tz=Handler.game_config[appid].get('timezone', 'local')).timestamp - + Handler._init_mdb() + self.secret_token = Handler.game_config[self.appid].get('secret_token', '') + self._nt = arrow.now(tz=Handler.game_config[self.appid].get('timezone', 'local')).timestamp @classmethod - def _init_mdb(cls, dbname): + def _init_mdb(cls): if not cls.g_mdb: - cls.g_mdb = settings.mdb_clint[dbname] + cls.g_mdb = {appid: settings.mdb_clint[f'{settings.DB_PREFIX}_{item["id_name"]}'] + for appid, item in cls.game_config.items()} return cls.g_mdb def set_handle(self): @@ -37,7 +37,7 @@ class Handler(metaclass=ABCMeta): :return: """ where = self.get_where() - coll = self.get_coll() + coll = self.get_coll(appid=self._appid) update_data = self._data.get('props', {}) if update_data: update_data.update({ @@ -50,7 +50,7 @@ class Handler(metaclass=ABCMeta): if not cls.game_config: topic_list = settings.kafka_setting['topic_name'] data = settings.admin_game_coll.find({'appid': {'$in': topic_list}}, {'_id': False}) - cls.game_config = {item['appid']:item for item in data} + cls.game_config = {item['appid']: item for item in data} logger.info(cls.game_config) return cls.game_config