public override string doQuery(object param)
    {
        ParamQueryPlayer p    = (ParamQueryPlayer)param;
        bool             cres = createGMUser(p);

        if (!cres)
        {
            return(Helper.genJsonStr(m_retData));
        }
        if (!p.checkSign(m_gmUser))
        {
            m_retData.Add("result", RetCode.RET_SIGN_ERROR);
            return(Helper.genJsonStr(m_retData));
        }

        PlayerDetail player = new PlayerDetail(p.m_playerAcc, m_gmUser);

        if (!player.m_isExists)
        {
            m_retData.Add("result", RetCode.RET_NO_PLAYER);
            return(Helper.genJsonStr(m_retData));
        }

        if (!player.isOwner(m_gmUser.m_acc))
        {
            m_retData.Add("result", RetCode.RET_NO_RIGHT);
            return(Helper.genJsonStr(m_retData));
        }

        m_retData.Add("result", RetCode.RET_SUCCESS);
        m_retData.Add("playerAcc", p.m_playerAcc);

        double remainMoney = Helper.showMoneyValue(player.isInGame() ? player.m_moneyOnline : player.m_money);

        m_retData.Add("money", remainMoney);
        //m_retData.Add("moneyType", player.m_moneyType);
        m_retData.Add("state", player.m_state);
        m_retData.Add("createTime", player.m_createTime);

        return(Helper.genJsonStr(m_retData));
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            ParamQueryPlayer param = new ParamQueryPlayer();

            param.m_gmAccount = Request.QueryString["gmAcc"];
            param.m_gmPwd     = Request.QueryString["gmPwd"];
            param.m_playerAcc = Request.QueryString["playerAcc"];
            param.m_sign      = Request.QueryString["sign"];

            if (!param.isParamValid())
            {
                Dictionary <string, object> data = new Dictionary <string, object>();
                data.Add("result", RetCode.RET_PARAM_NOT_VALID);
                Response.Write(Helper.genJsonStr(data));
                return;
            }

            QueryPlayerDetailInfo query = new QueryPlayerDetailInfo();
            string retStr = query.doQuery(param);

            Response.Write(retStr);
        }