using Ninject; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web.Mvc; using WX.CRM.Common; using WX.CRM.IBLL.Base; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.Base { public class ActionLogController : BaseController { [Inject] public IBAS_ACTIONLOG bas_ActionLog_BL { get; set; } [Inject] public IBAS_ACTIONLOGCONFIG bas_ActionLogConfig_BL { get; set; } [HttpGet] [AuthorizeRedirect(Roles = InitRights.CONST_报表页面访问记录)] public ActionResult CountIndex() { var tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.报表页面访问记录, userRightId); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; ViewBag.UrlNameList = bas_ActionLogConfig_BL.GetDistinctUrlName(); return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_报表页面访问记录)] public JsonResult GetCountIndexHtml(string stime, string etime, string columns) { DataSet ds = bas_ActionLog_BL.CountActionLog(stime, etime); List list = new List(); List urlNameList = bas_ActionLogConfig_BL.GetDistinctUrlName(); DataTable dt = new DataTable(); if (ds != null && ds.Tables[0].Rows.Count > 0) { dt = ds.Tables[0]; list = dt.ToList(); } List userList = list.GroupBy(m => m.UserId).Select(n => n.Key).ToList(); Table table = new Table("tablist"); if (userList != null) { foreach (var userId in userList) { table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(userId)); if (urlNameList != null) { foreach (var urlName in urlNameList) { var model = list.Where(m => m.UserId == userId && m.UrlName == urlName).SingleOrDefault(); table.AddCol(model != null ? model.Num : 0); } } table.AddRow(); } } var json = new { rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } private class CountActionLog { public decimal UserId { get; set; } public decimal ActionId { get; set; } public decimal Num { get; set; } public string UrlName { get; set; } } } }