Dictionary <string, object> getRetInfo(ParamFetchMoney p, long money, Dictionary <string, object> data) { Dictionary <string, object> ret = new Dictionary <string, object>(); int atype = Convert.ToInt32(data["accType"]); ret["acc"] = p.m_acc; ret["money"] = money; ret["isApi"] = (atype == AccType.ACC_API); if (data["home"] is DBNull) { ret["home"] = ""; } else { ret["home"] = Convert.ToString(data["home"]); } ret["creator"] = Convert.ToString(data["createCode"]); if (data["gameClose"] is DBNull) { ret["gameClose"] = ""; } else { ret["gameClose"] = Convert.ToString(data["gameClose"]); } return(ret); }
protected void Page_Load(object sender, EventArgs e) { ParamFetchMoney param = new ParamFetchMoney(); param.m_acc = Request.QueryString["acc"]; DyOpFetchMoney dy = new DyOpFetchMoney(); string retStr = dy.doDyop(param); Response.Write(retStr); // 哪个玩家账号 /* string acc = Request.Params["acc"]; * if (string.IsNullOrEmpty(acc)) * { * returnMsg(RetCode.RET_PARAM_NOT_VALID, "", 0); * return; * } * * string cmd = * string.Format("select money,enable from {0} WHERE acc='{1}'", TableName.PLAYER_ACCOUNT_XIANXIA, acc); * * string sqlServer = WebConfigurationManager.AppSettings["mysql"]; * * MySqlDbServer db = new MySqlDbServer(sqlServer); * Dictionary<string, object> r = db.queryOne(cmd, MySqlDbName.DB_XIANXIA); * if (r != null) * { * bool enable = true; * if (!(r["enable"] is DBNull)) * { * enable = Convert.ToBoolean(r["enable"]); * } * * long money = Convert.ToInt64(r["money"]); * * if (enable) * { * cmd = string.Format("UPDATE {0} set state={1},lastLoginDate='{2}' where acc='{3}'", * TableName.PLAYER_ACCOUNT_XIANXIA, * PlayerState.STATE_GAME, * DateTime.Now.ToString(ConstDef.DATE_TIME24), * acc); * db.executeOp(cmd, MySqlDbName.DB_XIANXIA); * * returnMsg(RetCode.RET_SUCCESS, acc, money); * } * else * { * returnMsg(RetCode.RET_ACC_BLOCKED, acc, money); * } * * return; * } * * returnMsg(RetCode.RET_NO_PLAYER, acc, 0);*/ }
void setOnlineMoney(MySqlDbServer sqlDb, long money, ParamFetchMoney p) { string sqlCmd = string.Format(SQL_UPDATE_ONLINE_MONEY, TableName.PLAYER_ACCOUNT_XIANXIA, money, p.m_acc); sqlDb.executeOp(sqlCmd, MySqlDbName.DB_XIANXIA); }
public override string doDyop(object param) { ParamFetchMoney p = (ParamFetchMoney)param; int code = p.isParamValid(); if (code != 0) { return(returnMsg(code)); } MySqlDbServer sqlDb = new MySqlDbServer(CC.MYSQL_IP); string sqlCmd = string.Format(SQL_QUERY_STATE, TableName.PLAYER_ACCOUNT_XIANXIA, p.m_acc); Dictionary <string, object> data = sqlDb.queryOne(sqlCmd, MySqlDbName.DB_XIANXIA); if (data == null) { return(returnMsg(RetCode.RET_NO_PLAYER)); } // 取出原有状态 int oriState = Convert.ToInt32(data["state"]); // sql命令 string sqlCmd1 = string.Format(SQL_UPDATE, TableName.PLAYER_ACCOUNT_XIANXIA, PlayerState.STATE_GAME, DateTime.Now.ToString(ConstDef.DATE_TIME24), p.m_acc); int count = sqlDb.executeOpTran(sqlCmd1, MySqlDbName.DB_XIANXIA); if (count <= 0) // 没有成功 { return(returnMsg(RetCode.RET_NO_PLAYER)); } string sqlCmd2 = string.Format(SQL_QUERY, TableName.PLAYER_ACCOUNT_XIANXIA, TableName.GM_ACCOUNT, p.m_acc); data = sqlDb.queryOne(sqlCmd2, MySqlDbName.DB_XIANXIA); if (data != null) { bool enable = true; if (!(data["enable"] is DBNull)) { enable = Convert.ToBoolean(data["enable"]); } long money = Convert.ToInt64(data["money"]); Dictionary <string, object> ret = getRetInfo(p, money, data); if (enable) { setOnlineMoney(sqlDb, money, p); return(returnMsg(RetCode.RET_SUCCESS, ret)); } else // 被封号,将状态置为正常 { if (oriState == PlayerState.STATE_IDLE) // 原有状态为离线,恢复 { string sqlCmd3 = string.Format(SQL_UPDATE_STATE, TableName.PLAYER_ACCOUNT_XIANXIA, PlayerState.STATE_IDLE, p.m_acc); sqlDb.executeOp(sqlCmd3, MySqlDbName.DB_XIANXIA); } return(returnMsg(RetCode.RET_ACC_BLOCKED, ret)); } } return(returnMsg(RetCode.RET_NO_PLAYER)); }