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); } } } }
// 开始统计 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); }