def ImpGetUserSession(conn, job): dictRet = { dbs_def.FLAG: True, } szAuthKey = job.GetParam() sql = "select `SESSION_ID` FROM `account` WHERE `ACCOUNT_ID` = '%s'" % (szAuthKey) ret = dbs_common.SyncQueryTrans(EDbsOptType.eQuery, conn, sql) if ret is None: dictRet[dbs_def.FLAG] = False db_mgr.OnOneDbQueryDone(dictRet, job) return if len(ret) == 0: session_id = idmgr_.GenPlayerID(conn) sql = "INSERT INTO `account` VALUES('%s', '%s', now(), now())" % (szAuthKey, session_id) job.SetSession(session_id) ret = dbs_common.SyncQueryTrans(EDbsOptType.eInsert, conn, sql) if ret is None: ffext.ERROR('create session err %s' % (sql)) dictRet[dbs_def.FLAG] = False db_mgr.OnOneDbQueryDone(dictRet, job) return dictRet[dbs_def.RESULT] = session_id else: dictRet[dbs_def.RESULT] = ret[0][0] db_mgr.OnOneDbQueryDone(dictRet, job)
def ImpUpdateID(conn, job): now_val, type_id, server_id, now_val = job.GetParam() sql = "UPDATE `id_generator` SET `AUTO_INC_ID` = '%d' WHERE `TYPE` = '%d' AND `SERVER_ID` = '%d' AND `AUTO_INC_ID` < '%d'" % (now_val, type_id, server_id, now_val) assert dbs_common.SyncQueryTrans(EDbsOptType.eUpdate, conn, sql) is not None dictSerial = {dbs_def.FLAG: True} return dictSerial
def ImpGetAllGmConfig(conn, job): dictRet = { dbs_def.FLAG: True, } sql = "select * FROM `game_config` limit 1" ret = dbs_common.SyncQueryTrans(EDbsOptType.eQuery, conn, sql) if ret is None: dictRet[dbs_def.FLAG] = False return dictRet dictRet[dbs_def.RESULT] = ret return dictRet
def ImpGetIDData(conn, job): dictRet = {dbs_def.FLAG: True} nTypeID, nServerID = job.GetParam() sql = "SELECT `AUTO_INC_ID`, `RUNING_FLAG` FROM `id_generator` WHERE `TYPE` = '%d' AND `SERVER_ID` = '%d'" % ( nTypeID, nServerID) ret = dbs_common.SyncQueryTrans(EDbsOptType.eQuery, conn, sql) if len(ret) == 0: # 数据库中还没有这一行,插入 sql = "INSERT INTO `id_generator` SET `AUTO_INC_ID` = '0',`TYPE` = '%d', `SERVER_ID` = '%d', `RUNING_FLAG` = '1' " % ( nTypeID, nServerID) assert dbs_common.SyncQueryTrans(EDbsOptType.eInsert, conn, sql) is not None dictRet[dbs_def.RESULT] = [0, 1] return dictRet sql = "UPDATE `id_generator` SET `RUNING_FLAG` = '1' WHERE `TYPE` = '%d' AND `SERVER_ID` = '%d'" % ( nTypeID, nServerID) assert dbs_common.SyncQueryTrans(EDbsOptType.eUpdate, conn, sql) is not None dictRet[dbs_def.RESULT] = ret[0] return dictRet
def ImpDbsLoadPlayerData(conn, job): dictSerial = { dbs_def.FLAG: True, } session = job.GetSession() sql = "SELECT DATA_INFO_BASE, DATA_INFO FROM `player` WHERE `SESSION_ID` = '%s'" % (session) ret = dbs_common.SyncQueryTrans(EDbsOptType.eQuery, conn, sql) if ret is None: ffext.ERROR('load_player载入数据出错%s' % (sql)) dictSerial[dbs_def.FLAG] = False db_mgr.OnOneDbQueryDone(dictSerial, job) return if len(ret) == 0: dictPlayerInfo = { table_property_def.Player.SESSION_ID: session, table_property_def.Player.NAME: "name_" + str(session), table_property_def.Player.SEX: session % 2, table_property_def.Player.CREATE_TIME: int(time.time()), } szDataInfo = json.dumps(dictPlayerInfo) szExtraInfo = json.dumps({table_property_def.Player.MONEY_LIST: []}) sql = "INSERT INTO `player` VALUES('%s', '%s', '%s')" % (session, szDataInfo, szExtraInfo) ret = dbs_common.SyncQueryTrans(EDbsOptType.eInsert, conn, sql) if ret is None: ffext.ERROR('load_player载入数据出错%s' % (sql)) dictSerial[dbs_def.FLAG] = False db_mgr.OnOneDbQueryDone(dictSerial, job) return else: szPlayerInfoBase = ret[0][0] szPlayerInfoExtra = ret[0][1] dictPlayerInfo = json.loads(szPlayerInfoBase) dictTmp = json.loads(szPlayerInfoExtra) util.dict_merge(dictTmp, dictPlayerInfo) dictSerial[dbs_def.RESULT] = dictPlayerInfo db_mgr.OnOneDbQueryDone(dictSerial, job)
def ImpDbsSaveAllGmConfig(conn, job): dictRet = { dbs_def.FLAG: True, } szData = job.GetParam() sql = "select * FROM `game_config` limit 1" ret = dbs_common.SyncQueryTrans(EDbsOptType.eQuery, conn, sql) if ret is None: dictRet[dbs_def.FLAG] = False return dictRet if len(ret) == 0: sql = "INSERT INTO `game_config` VALUES('%s', '%s')" % (1, szData) else: sql = "UPDATE `game_config` SET CONFIG_DATA = '%s' where CONFIG_ID = '%s'" % ( szData.encode("utf-8"), 1) ret = dbs_common.SyncQueryTrans(EDbsOptType.eQuery, conn, sql) if ret is None: dictRet[dbs_def.FLAG] = False return dictRet dictRet[dbs_def.RESULT] = ret return dictRet
def ImpDbsPersistentPlayerData(conn, job): """ 持久化玩家信息 :param conn: :param job: :return: """ # sql = "SELECT `player` SET DATA_INFO = '%s' WHERE `SESSION_ID` = '%s'" % (dictSerial, session) # sql = "UPDATE player SET DATA_INFO = JSON_SET(DATA_INFO, '$.%s', '%s') where SESSION_ID = '%s'" % (szProperty, json.dumps(valueObj), session) dictSerial = job.GetParam() session = job.GetSession() sql = "UPDATE player SET DATA_INFO = '%s' where SESSION_ID = '%s'" % ( dictSerial.encode("utf-8"), session) dbs_common.SyncQueryTrans(EDbsOptType.eUpdate, conn, sql) dictSerial = {dbs_def.FLAG: True} return dictSerial