// 对玩家自己在游戏内提交的订单状态进行修改 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); } }
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); }