public override string doQuery(object param)
    {
        ParamQueryLoginLog p = (ParamQueryLoginLog)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));
        }

        IMongoQuery imq = Query.LT("time", DateTime.Now);

        if (!string.IsNullOrEmpty(p.m_playerAcc))
        {
            IMongoQuery imq2 = Query.EQ("acc", p.m_playerAcc);
            imq = Query.And(imq, imq2);
        }

        List <Dictionary <string, object> > dataList = MongodbAcc.Instance.ExecuteGetListByQuery(TableName.PLAYER_LOGIN, imq, FIELDS, "time", false, 0, 20);

        for (int i = 0; i < dataList.Count; i++)
        {
            if (dataList[i].ContainsKey("_id"))
            {
                dataList[i].Remove("_id");
            }

            if (!string.IsNullOrEmpty(p.m_playerAcc))
            {
                dataList[i].Remove("acc");
            }
        }

        if (!string.IsNullOrEmpty(p.m_playerAcc))
        {
            m_retData.Add("acc", p.m_playerAcc);
        }

        m_retData.Add("loginList", dataList);
        return(Helper.genJsonStr(m_retData, true));
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            ParamQueryLoginLog param = new ParamQueryLoginLog();

            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;
            }

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

            Response.Write(retStr);
        }