Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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