Exemplo n.º 1
0
    public OpRes dispatch(ParamModifyGmRight p, GMUser user)
    {
        DestGmUser dst = new DestGmUser(p.m_acc, user);

        if (!dst.m_isExists)
        {
            return(OpRes.op_res_no_right);
        }

        bool res = DyOpModifyGmRight.canDispatchRight(user, dst.m_accType,
                                                      () => { return(dst.m_owner == user.m_user); });

        if (!res)
        {
            return(OpRes.op_res_no_right);
        }

        SqlUpdateGenerator gen = new SqlUpdateGenerator();

        gen.addField("gmRight", p.m_right, FieldType.TypeString);
        string sql = gen.getResultSql(TableName.GM_ACCOUNT,
                                      string.Format("acc='{0}'", p.m_acc));
        int count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

        return(count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed);
    }
Exemplo n.º 2
0
    // 解封账号dst
    private OpRes startAcc(DestGmUser dst, GMUser user, ParamStartStopGmAcc p)
    {
        SqlUpdateGenerator gen = new SqlUpdateGenerator();

        gen.addField("state", GmState.STATE_NORMAL, FieldType.TypeNumber);

        if (dst.m_accType == AccType.ACC_GENERAL_AGENCY ||
            dst.m_accType == AccType.ACC_AGENCY ||
            dst.m_accType == AccType.ACC_API)
        {
            string sql = gen.getResultSql(TableName.GM_ACCOUNT,
                                          string.Format(" createCode like '{0}%' ", dst.m_createCode));
            int count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

            // 解封账号之下的玩家
            gen.reset();
            gen.addField("enable", 1, FieldType.TypeNumber);
            sql = gen.getResultSql(TableName.PLAYER_ACCOUNT_XIANXIA,
                                   string.Format(" createCode like '{0}%' ", dst.m_createCode));
            user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);
            return(count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed);
        }
        else
        {
            string sql = gen.getResultSql(TableName.GM_ACCOUNT,
                                          string.Format(" acc= '{0}' ", p.m_acc));
            int count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);
            return(count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed);
        }
    }
Exemplo n.º 3
0
    // 是否可以对GM账号进行上分下分操作
    private OpRes canDoScoreToGM(string acc, long score, bool isAddScore, GMUser user)
    {
        DestGmUser dstUser = new DestGmUser(acc, user);

        if (!dstUser.m_isExists)
        {
            return(OpRes.op_res_no_right);
        }

        if (!dstUser.isDerivedFrom(user))
        {
            return(OpRes.op_res_no_right);
        }

        if (dstUser.isAccStop())
        {
            return(OpRes.op_res_acc_block);
        }

        if (!isAddScore)
        {
            if (dstUser.m_money < score)
            {
                return(OpRes.op_res_money_not_enough);
            }
        }
        return(OpRes.opres_success);
    }
Exemplo n.º 4
0
    private OpRes updateWashRatio(ParamModifyGmProperty p, DestGmUser dst, GMUser user)
    {
        if (dst.m_owner != user.m_user)
        {
            return(OpRes.op_res_no_right);
        }

        ParamCreateGmAccount param = new ParamCreateGmAccount();

        param.m_washRatio = p.m_param;
        double washRatio = 0;

        if (!ItemHelp.isValidWashRatio(param, user, ref washRatio))
        {
            return(OpRes.op_res_param_not_valid);
        }

        SqlUpdateGenerator gen = new SqlUpdateGenerator();

        gen.addField("washRatio", washRatio, FieldType.TypeNumber);

        string sql   = gen.getResultSql(TableName.GM_ACCOUNT, string.Format(" acc='{0}' ", p.m_acc));
        int    count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

        return(count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed);
    }
Exemplo n.º 5
0
    public override OpRes doDyop(object param, GMUser user)
    {
        ParamModifyGmProperty p   = (ParamModifyGmProperty)param;
        DestGmUser            dst = new DestGmUser(p.m_acc, user);

        if (!dst.m_isExists)
        {
            return(OpRes.op_res_no_right);
        }

        OpRes res   = OpRes.op_res_failed;
        int   count = 0;

        switch (p.m_whichProperty)
        {
        case ParamModifyGmProperty.MODIFY_ALIASNAME:
        {
            if (!dst.isDerivedFrom(user))
            {
                return(OpRes.op_res_no_right);
            }

            SqlUpdateGenerator gen = new SqlUpdateGenerator();
            gen.addField("aliasName", p.m_param, FieldType.TypeString);
            string sql = gen.getResultSql(TableName.GM_ACCOUNT, string.Format(" acc='{0}' ", p.m_acc));
            count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);
            res   = count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed;
        }
        break;

        case ParamModifyGmProperty.MODIFY_AGENT_RATION:
        {
            res = updateAgentRatio(p, dst, user);
        }
        break;

        case ParamModifyGmProperty.MODIFY_WASH_RATION:
        {
            res = updateWashRatio(p, dst, user);
        }
        break;

        case ParamModifyGmProperty.MODIFY_ACC_STATE:
        {
            res = modifyAccState(p, user);
        }
        break;
        }
        return(res);
    }
Exemplo n.º 6
0
    private OpRes delGmAcc(ParamDelAcc p, GMUser user)
    {
        DestGmUser dst = new DestGmUser(p.m_acc, user);

        if (dst.m_isSelf)
        {
            return(OpRes.op_res_no_right);
        }

        if (!dst.m_isExists)
        {
            return(OpRes.op_res_no_right);
        }

        if (!dst.isDerivedFrom(user))
        {
            return(OpRes.op_res_no_right);
        }

        int childCount = (int)user.sqlDb.getRecordCount(TableName.GM_ACCOUNT,
                                                        string.Format("owner='{0}' ", dst.m_owner), 0, MySqlDbName.DB_XIANXIA);
        SqlUpdateGenerator up = new SqlUpdateGenerator();

        up.addField("childNodeNumber", childCount, FieldType.TypeNumber);
        string sql   = up.getResultSql(TableName.GM_ACCOUNT, string.Format("acc='{0}' and childNodeNumber=0 ", dst.m_owner));
        int    count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

        if (count >= 0)
        {
            SqlDeleteGenerator gen  = new SqlDeleteGenerator();
            string             cmd1 = gen.getResultSql(TableName.GM_ACCOUNT,
                                                       string.Format(" createCode like '{0}%' ", dst.m_createCode));
            user.sqlDb.executeOp(cmd1, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

            string cmd2 = gen.getResultSql(TableName.PLAYER_ACCOUNT_XIANXIA,
                                           string.Format(" createCode like '{0}%' ", dst.m_createCode));
            count = user.sqlDb.executeOp(cmd2, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

            return(count >= 0 ? OpRes.opres_success : OpRes.op_res_db_failed);
        }

        return(OpRes.op_res_db_failed);
    }
Exemplo n.º 7
0
    public override OpRes doDyop(object param, GMUser user)
    {
        ParamStartStopGmAcc p   = (ParamStartStopGmAcc)param;
        DestGmUser          dst = new DestGmUser(p.m_acc, user);

        if (!dst.m_isExists)
        {
            return(OpRes.op_res_no_right);
        }

        if (!dst.isDerivedFrom(user))
        {
            return(OpRes.op_res_no_right);
        }

        if (p.isStart())
        {
            return(startAcc(dst, user, p));
        }

        return(stopAcc(dst, user, p));
    }
Exemplo n.º 8
0
    public override OpRes doDyop(object param, GMUser user)
    {
        ParamModifyGmRight p = (ParamModifyGmRight)param;

        if (p.m_op == 1)
        {
            return(dispatch(p, user));
        }

        DestGmUser dst = new DestGmUser(p.m_acc, user);

        if (!dst.m_isExists)
        {
            return(OpRes.op_res_no_right);
        }

        if (!dst.isDerivedFrom(user))
        {
            return(OpRes.op_res_no_right);
        }

        if (!dst.isAccType(AccType.ACC_AGENCY) &&
            !dst.isAccType(AccType.ACC_GENERAL_AGENCY) &&
            !dst.isAccType(AccType.ACC_SUPER_ADMIN_SUB))
        {
            return(OpRes.op_res_no_right);
        }

        SqlUpdateGenerator gen = new SqlUpdateGenerator();

        gen.addField("gmRight", p.m_right, FieldType.TypeString);
        string sql = gen.getResultSql(TableName.GM_ACCOUNT,
                                      string.Format("acc='{0}'", p.m_acc));
        int count = user.sqlDb.executeOp(sql, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

        return(count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed);
    }