Esempio n. 1
0
    // 对玩家自己在游戏内提交的订单状态进行修改
    void forPlayerOrder(OrderInfo info)
    {
        if (info.m_orderFrom != OrderGenerator.ORDER_FROM_PLAYER_ORDER)
        {
            return;
        }

        if (info.m_orderState == PlayerReqOrderState.STATE_FAILED) // 订单处理失败
        {
            // 订单处理失败,还原成等待状态
            string upcmd = CPlayerOrder.genUpdateSql(info.m_orderId, OrderState.STATE_WAIT);
            m_sqlDb.executeOp(upcmd, CMySqlDbName.DB_XIANXIA);
        }
        else
        {
            string selcmd = string.Format(" SELECT * from {0} where {1}", TableName.PLAYER_ORDER_WAIT,
                                          string.Format("orderId= '{0}' ", info.m_orderId));
            Dictionary <string, object> data = m_sqlDb.queryOne(selcmd, CMySqlDbName.DB_XIANXIA);
            ResultPlayerOrderItem       item = CPlayerOrder.toOrder(data);
            if (item == null)
            {
                return;
            }

            string delcmd = CPlayerOrder.genRemoveSql(info.m_orderId);
            string inscmd = CPlayerOrder.genInsertSql(item, info.m_gmAcc, OrderState.STATE_FINISH);
            m_sqlDb.executeOp(delcmd, CMySqlDbName.DB_XIANXIA);
            m_sqlDb.executeOp(inscmd, CMySqlDbName.DB_XIANXIA);
        }
    }
Esempio n. 2
0
    OpRes execOrder(ResultPlayerOrderItem item, GMUser user)
    {
        if (item.m_orderState != OrderState.STATE_WAIT)
        {
            return(OpRes.opres_success);
        }

        ParamScore param = new ParamScore();

        param.m_op        = item.m_orderType;
        param.m_toAcc     = item.m_playerAcc;
        param.m_score     = item.m_orderMoney.ToString();
        param.m_orderFrom = OrderGenerator.ORDER_FROM_PLAYER_ORDER;
        param.m_orderId   = item.m_orderId;
        param.scoreToPlayer();

        OpRes res = user.doDyop(param, DyOpType.opTypeDyOpScore);

        if (res == OpRes.opres_success /*||
                                        * res == OpRes.op_res_player_in_game*/)
        {
            OpRes code = removeWait(item, user);
            if (code == OpRes.opres_success)
            {
                if (res == OpRes.opres_success)
                {
                    addFinish(item, user, OrderState.STATE_FINISH);
                }
                else
                {
                    addFinish(item, user, OrderState.STATE_HAS_SUB);
                }
            }
        }
        else if (res == OpRes.op_res_player_in_game)
        {
            string cmd   = CPlayerOrder.genUpdateSql(item.m_orderId, OrderState.STATE_HAS_SUB);
            int    count = user.sqlDb.executeOp(cmd, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);
            // 返回成功,界面可以重刷订单
            res = OpRes.opres_success;
        }
        return(res);
    }