protected void onQuery(string creator, int detailType, GMUser user)
        {
            m_levelStr.InnerHtml = user.getOpLevelMgr().getCurLevelStr(creator);

            ParamWinLose param = new ParamWinLose();

            param.m_creator    = creator == "" ? ItemHelp.getAccountSpecial(user) : creator;
            param.m_detailType = detailType;
            param.m_time       = m_time.Text;
            param.m_playerAcc  = m_acc.Text;

            if (creator == "")
            {
                param.m_creatorIsSubAcc = ItemHelp.isSubAcc(user);
            }

            OpRes res = user.doStat(param, StatType.statTypeWinLose);

            if (param.isStatOnePlayer())
            {
                ViewPlayerWinLose v = new ViewPlayerWinLose();
                v.genTable(m_result, res, user);
            }
            else
            {
                genTableSumResult(m_result, res, user, param);
                if (res == OpRes.opres_success)
                {
                    if (param.isDetailSubAgent())
                    {
                        genTableDetailResult(m_detailResult, res, user, param, s_head);
                        m_info.InnerText = string.Format("{0}的直属下线", creator);
                    }
                    else
                    {
                        genTableDetailResult(m_detailResult, res, user, param, s_head1);
                        m_info.InnerText = string.Format("{0}的直属会员", creator);
                    }
                }
            }
        }
示例#2
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        m_result.reset();
        OpRes        res = OpRes.op_res_param_not_valid;
        ParamWinLose p   = (ParamWinLose)param;

        bool canEmpty = m_generator.timeCanEmpty();

        if (!canEmpty)
        {
            if (string.IsNullOrEmpty(p.m_time))
            {
                return(OpRes.op_res_time_format_error);
            }
        }

        if (p.isStatOnePlayer())
        {
            statOnePlayer(user, p);
            return(OpRes.opres_success);
        }

        ParamMemberInfo paramInfo = new ParamMemberInfo();

        paramInfo.m_creator     = p.m_creator;
        paramInfo.m_searchDepth = 1;

        if (p.isDetailSubAgent()) // 详细列表中列的是子代理
        {
            // 搜索指定创建者的所有直属下线
            res = user.doQuery(paramInfo, QueryType.queryTypeGmAccount);
            if (res != OpRes.opres_success)
            {
                return(res);
            }

            List <MemberInfo> qresult = (List <MemberInfo>)user.getQueryResult(QueryType.queryTypeGmAccount);
            for (int i = 0; i < qresult.Count; i++)
            {
                MemberInfo minfo = qresult[i];
                // user.getOpLevelMgr().addSub(p.m_creator, minfo.m_acc);
                addSubLevel(user, p.m_creator, minfo.m_acc, p);

                res = statSubAgent(minfo, p.m_time, user);
                if (res != OpRes.opres_success)
                {
                    return(res);
                }
            }

            res = statDirectlyPlayerSum(p.m_creator, p.m_time, user);
        }
        else // 详细列表中列的是直属玩家
        {
            // 搜索指定创建者的所有直属下线
            res = user.doQuery(paramInfo, QueryType.queryTypePlayerMember);
            if (res != OpRes.opres_success)
            {
                return(res);
            }

            List <MemberInfo> qresult = (List <MemberInfo>)user.getQueryResult(QueryType.queryTypePlayerMember);
            for (int i = 0; i < qresult.Count; i++)
            {
                MemberInfo minfo = qresult[i];
                res = statDirectlyPlayer(minfo, p.m_time, user);
                if (res != OpRes.opres_success)
                {
                    return(res);
                }
            }

            res = statSubAgentSum(p.m_creator, p.m_time, user);
        }

        m_result.finish(p, user);
        return(res);
    }