public ChartReport SearchResourceAndAgentReport(long startTime, long endTime) { ChartReport report = new ChartReport(); int total = 0; List<BOrder> orders = FindOrders(0, 0, 0, 0, 0, null, null, new int[] { 2}, startTime, endTime, out total); List<ReportTemplate> resourceReport = new List<ReportTemplate>(); List<ReportTemplate> agentReport = new List<ReportTemplate>(); var rp = from order in orders group order by order.ResourceId into gOrders orderby gOrders.Key select new { ResourceId = gOrders.Key, ResourceName = gOrders.FirstOrDefault<BOrder>().ReseouceName, SalesAmount = gOrders.Sum(o => o.PurchasePrice), CostAmount = gOrders.Sum(o => o.PlatformCostPrice), Revenue = gOrders.Sum(o => o.Revenue) }; foreach (var rpt in rp) { ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.ResourceId, Name = rpt.ResourceName, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount }; resourceReport.Add(temp); } report.ResourceReport = resourceReport; var rp2 = from order in orders where order.AgentId > 0 && order.Operator==0 group order by order.AgentId into gOrders orderby gOrders.Key select new { AgentId = gOrders.Key, AgentName = gOrders.FirstOrDefault<BOrder>().AgentName, SalesAmount = gOrders.Sum(o => o.PurchasePrice), CostAmount = gOrders.Sum(o => o.PlatformCostPrice), Revenue = gOrders.Sum(o => o.Revenue) }; foreach (var rpt in rp2) { ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.AgentId, Name = rpt.AgentName, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount }; agentReport.Add(temp); } var rp3 = from order in orders where order.AgentId == 0 group order by order.ChargeType into gOrders orderby gOrders.Key select new { Type = gOrders.Key, Name = gOrders.FirstOrDefault<BOrder>().Operator==0?"前台直冲":"后台直冲", SalesAmount = gOrders.Sum(o => o.PurchasePrice), CostAmount = gOrders.Sum(o => o.PlatformCostPrice), Revenue = gOrders.Sum(o => o.Revenue) }; foreach (var rpt in rp3) { ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.Type, Name = rpt.Name, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount }; agentReport.Add(temp); } report.UserReport = agentReport; return report; }
public List<ReportTemplate> SearchAgentReport(int agencyId,long startTime, long endTime) { List<ReportTemplate> reportList = new List<ReportTemplate>(); int total = 0; if(agencyId==0) { agencyId = CurrentLoginUser.User.Id; } List<BOrder> orders = FindOrders(0, agencyId, 0, 0, 0, null, null, null, startTime, endTime, out total); var rp = from order in orders group order by order.AgentRouteId into gOrders orderby gOrders.Key select new { ResourceId = gOrders.Key, ResourceName = gOrders.FirstOrDefault<BOrder>().TaocanName, SalesAmount = gOrders.Sum(o => o.SalePrice), CostAmount = gOrders.Sum(o => o.PurchasePrice), Revenue = gOrders.Sum(o => o.SalePrice)- gOrders.Sum(o => o.PurchasePrice) }; foreach (var rpt in rp) { ReportTemplate temp = new ReportTemplate() { CostAmount = rpt.CostAmount, Id = rpt.ResourceId, Name = rpt.ResourceName, Revenue = rpt.Revenue, SalesAmount = rpt.SalesAmount }; reportList.Add(temp); } return reportList; }