using Ninject; using System; using System.Linq; using System.Web.Mvc; using WX.CRM.IBLL.Soft; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.Soft { public class SoftRptController : BaseController { [Inject] public ISOFT_USER_Q _soft_user_Q { get; set; } [AuthorizeRedirect(Roles = InitRights.CONST_注册资源统计报表)] public ActionResult Index() { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.注册资源统计报表, userRightId); tool.AddOtherButton("Other1", "导出", "icon-excel", "Export_Click", true); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHeadCol("ch", "", "渠道号", "sortTable('tablist',1,'int');", "cursor:pointer"); tab.AddHeadCol("registernumber", "", "注册量", "sortTable('tablist',2,'int');", "cursor:pointer"); tab.AddHeadCol("resourcenumber", "", "资源量", "sortTable('tablist',3,'int');", "cursor:pointer"); tab.AddHeadCol("resourcerate", "", "注册资源率", "sortTable('tablist',4,'int');", "cursor:pointer"); tab.AddHeadCol("recordcount", "", "接通量", "sortTable('tablist',5,'int');", "cursor:pointer"); tab.AddHeadCol("recordcountrate", "", "接通率", "sortTable('tablist',6,'int');", "cursor:pointer"); tab.AddHeadCol("recordnumber", "", "有效沟通量", "sortTable('tablist',7,'int');", "cursor:pointer"); tab.AddHeadCol("recordrate", "", "有效沟通率", "sortTable('tablist',8,'int');", "cursor:pointer"); tab.AddHeadCol("firstcallnumber", "", "第一次沟通量", "sortTable('tablist',9,'int');", "cursor:pointer"); tab.AddHeadCol("secondcallnumber", "", "第二次沟通量", "sortTable('tablist',10,'int');", "cursor:pointer"); //tab.AddHeadCol("smallordernumber", "", "小单成交量", "sortTable('tablist',11,'int');", "cursor:pointer"); //tab.AddHeadCol("smallorderrate", "", "小单成交率", "sortTable('tablist',12,'int');", "cursor:pointer"); tab.AddHeadCol("allordernumber", "", "总成交量", "sortTable('tablist',11,'int');", "cursor:pointer"); tab.AddHeadCol("allorderrate", "", "总成交率", "sortTable('tablist',12,'int');", "cursor:pointer"); tab.AddHeadCol("allorderprice", "", "总成交金额", "sortTable('tablist',13,'int');", "cursor:pointer"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead(); return View(); } /// /// 按照条件获取数据 /// /// /// /// [AuthorizeRedirect(Roles = InitRights.CONST_注册资源统计报表)] public JsonResult GetHtmlList(DateTime stime, DateTime etime, string columns) { Table table = new Table(columns, true); var list = _soft_user_Q.Soft_Rpt_Get(stime, etime); foreach (var row in list) { table.AddCol(row.ch); table.AddCol(row.registernumber); table.AddCol(row.resourcenumber); table.AddCol(row.resourcerate); table.AddCol(row.recordcount); table.AddCol(row.recordcountrate); table.AddCol(row.recordnumber); table.AddCol(row.recordrate); table.AddCol(row.firstcallnumber); table.AddCol(row.secondcallnumber); //table.AddCol(row["smallordernumber"]); //table.AddCol(row["smallorderrate"]); table.AddCol(row.allordernumber); table.AddCol(row.allorderrate); table.AddCol(row.allorderprice); table.AddRow(); } if (list.Any()) { var resourcenumber = list.Sum(p => p.resourcenumber); table.AddCol("合计"); table.AddCol(list.Sum(p => p.registernumber)); table.AddCol(resourcenumber); if (resourcenumber == 0) { table.AddCol("0%"); } else { table.AddCol(string.Format("{0:P}", resourcenumber / list.Sum(p => p.registernumber))); } table.AddCol(list.Sum(p => p.recordcount)); if (resourcenumber == 0) { table.AddCol("0%"); } else { table.AddCol(string.Format("{0:P}", list.Sum(p => p.recordcount) / resourcenumber)); } table.AddCol(list.Sum(p => p.recordnumber)); if (resourcenumber == 0) { table.AddCol("0%"); } else { table.AddCol(string.Format("{0:P}", list.Sum(p => p.recordnumber) / resourcenumber)); } table.AddCol(list.Sum(p => p.firstcallnumber)); table.AddCol(list.Sum(p => p.secondcallnumber)); table.AddCol(list.Sum(p => p.allordernumber)); if (resourcenumber == 0) { table.AddCol("0%"); } else { table.AddCol(string.Format("{0:P}", list.Sum(p => p.allordernumber) / resourcenumber)); } table.AddCol(list.Sum(p => p.allorderprice)); table.AddFootRow(); } var json = new { rowsList = table.GetRows(), foot = table.GetFoot() }; return Json(json, JsonRequestBehavior.AllowGet); } /// /// 导出所有信息 /// /// [AuthorizeToolBar(InitRights.CONST_注册资源统计报表, InitToolBar.CONST_Other1)] public FileResult Export(DateTime stime, DateTime etime) { string checkedFilds = PageRequest.GetQueryString("checkedFilds"); string checkedTitles = PageRequest.GetQueryString("checkedTitles"); //DataTable list = _soft_user_Q.Soft_Rpt_Get(stime, etime); //return File(ExcelHelper.ExportDataTableToExcel(list, "注册资源统计", checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("注册资源统计报表.xls")); var list = _soft_user_Q.Soft_Rpt_Get(stime, etime); return File(ExcelHelper.ExportListModelToExcel(list, "注册资源统计", 50000, null), "application/ms-excel", PageRequest.GetDlownLoadName("注册资源统计报表.xls")); } } }