private OpRes query(ParamQuery param, IMongoQuery imq, GMUser user)
    {
        List <Dictionary <string, object> > dataList =
            DBMgr.getInstance().executeQuery(TableName.STAT_GAME_TIME_FOR_DISTRIBUTION_RESULT, user.getDbServerID(), DbName.DB_PUMP, imq,
                                             0, 0, null, "genTime", false);

        if (dataList == null || dataList.Count == 0)
        {
            return(OpRes.op_res_not_found_data);
        }

        int i = 0;

        for (i = 0; i < dataList.Count; i++)
        {
            Dictionary <string, object> data = dataList[i];
            DateTime t = Convert.ToDateTime(data["genTime"]).ToLocalTime();

            GameTimeForDistributionBase tmp = new GameTimeForDistributionBase();
            tmp.m_gameId    = Convert.ToInt32(data["gameId"]);
            tmp.m_Less10s   = Convert.ToInt32(data["Less10s"]);
            tmp.m_Less30s   = Convert.ToInt32(data["Less30s"]);
            tmp.m_Less60s   = Convert.ToInt32(data["Less60s"]);
            tmp.m_Less5min  = Convert.ToInt32(data["Less5min"]);
            tmp.m_Less10min = Convert.ToInt32(data["Less10min"]);
            tmp.m_Less30min = Convert.ToInt32(data["Less30min"]);
            tmp.m_Less60min = Convert.ToInt32(data["Less60min"]);
            tmp.m_GT60min   = Convert.ToInt32(data["GT60min"]);
            m_result.addData(t, tmp);
        }

        return(OpRes.opres_success);
    }
    public void add(GameTimeForDistributionBase data)
    {
        if (m_data.ContainsKey(data.m_gameId))
        {
            return;
        }

        m_data.Add(data.m_gameId, data);
    }
    public void addData(DateTime time, GameTimeForDistributionBase data)
    {
        DistributionData d = null;

        if (m_data.ContainsKey(time))
        {
            d = m_data[time];
        }
        else
        {
            d = new DistributionData();
            m_data.Add(time, d);
        }
        d.add(data);
    }