public override OpRes doDyop(object param, GMUser user) { ParamDelAcc p = (ParamDelAcc)param; OpRes res = OpRes.op_res_failed; switch (p.m_op) { case 0: { res = delGmAcc(p, user); } break; case 1: { res = delPlayer(p, user); } break; case 2: { res = delGmOpLog(p, user); } break; } return(res); }
// 删除操作日志 private OpRes delGmOpLog(ParamDelAcc p, GMUser user) { if (!user.isAdmin()) { return(OpRes.op_res_no_right); } SqlDeleteGenerator gen = new SqlDeleteGenerator(); string cmd = gen.getResultSql(TableName.OPLOG, "1=1"); int count = user.sqlDb.executeOp(cmd, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA); return(count >= 0 ? OpRes.opres_success : OpRes.op_res_db_failed); }
public void ProcessRequest(HttpContext context) { RightMgr.getInstance().opCheck(RIGHT.DEL_ACCOUNT, context.Session, context.Response); ParamDelAcc param = new ParamDelAcc(); param.m_acc = context.Request.QueryString["acc"]; param.m_op = Convert.ToInt32(context.Request.QueryString["op"]); GMUser user = (GMUser)context.Session["user"]; OpRes res = user.doDyop(param, DyOpType.opTypeDelAccount); string retStr = OpResMgr.getInstance().getResultString(res); context.Response.ContentType = "text/plain"; context.Response.Write(retStr); }
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); }
private OpRes delPlayer(ParamDelAcc p, GMUser user) { Player player = new Player(p.m_acc, user); if (!player.m_isExists) { return(OpRes.op_res_player_not_exist); } if (!player.isDerivedFrom(user)) { return(OpRes.op_res_no_right); } SqlDeleteGenerator gen = new SqlDeleteGenerator(); string cmd = gen.getResultSql(TableName.PLAYER_ACCOUNT_XIANXIA, string.Format("acc='{0}'", p.m_acc)); int count = user.sqlDb.executeOp(cmd, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA); return(count > 0 ? OpRes.opres_success : OpRes.op_res_db_failed); }