public JsonResult Query(BehaviorStatModel query) { RequestQueryBehaviorStatQuery queryCon = new RequestQueryBehaviorStatQuery(); queryCon.BusinessmanCode = query.BusinessmanCode; queryCon.BusinessmanName = query.BusinessmanName; queryCon.BusinessmanType = query.BusinessmanType; queryCon.StartDateTime = Convert.ToDateTime(query.StartDateTime); queryCon.EndDateTime = Convert.ToDateTime(query.EndDateTime); queryCon.PageIndex = query.page; queryCon.PageSize = query.rows; queryCon.Sort = query.sort; queryCon.Order = query.order; DataPack <ResponseBehaviorStat> dpList = null; CommunicateManager.Invoke <IBehaviorStatService>(service => { dpList = service.Query(queryCon); }); if (dpList == null) { return(Json(new { total = 0, rows = new List <ResponseBehaviorStat>() }, JsonRequestBehavior.AllowGet)); } return(Json(new { total = dpList.TotalCount, rows = dpList.List }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 查询用户操作行为 /// </summary> /// <param name="query"></param> /// <returns></returns> public DataPack <ResponseBehaviorStat> Query(RequestQueryBehaviorStatQuery query) { string carriercode = AuthManager.GetCurrentUser().Code; var contactName = AuthManager.GetCurrentUser().ContactName; var isAdmin = AuthManager.GetCurrentUser().IsAdmin; int pSize = query.PageSize ?? 10; int count = ((query.PageIndex == default(int) ? 1 : query.PageIndex) - 1) * pSize; var result = behaviorStatRepository.FindAll(); if (!string.IsNullOrEmpty(carriercode)) { result = result.Where(p => p.CarrierCode.ToLower().Equals(carriercode.ToLower())); } if (!string.IsNullOrEmpty(query.BusinessmanCode)) { result = result.Where(p => p.BusinessmanCode.ToLower().Equals(query.BusinessmanCode.ToLower())); } if (!string.IsNullOrEmpty(query.BusinessmanName)) { result = result.Where(p => p.BusinessmanName.ToLower().Contains(query.BusinessmanName.ToLower())); } if (!string.IsNullOrEmpty(query.BusinessmanType)) { result = result.Where(p => p.BusinessmanType.ToLower().Equals(query.BusinessmanType.ToLower())); } if (!isAdmin && !string.IsNullOrEmpty(contactName)) { result = result.Where(p => p.ContactName.ToLower().Equals(contactName.ToLower())); } if (query.StartDateTime != null) { var date = query.StartDateTime.Value.Date; result = result.Where(p => p.OpDateTime >= date); } if (query.EndDateTime != null) { var date = query.EndDateTime.Value.Date.AddDays(1).AddSeconds(-1); result = result.Where(p => p.OpDateTime <= date); } var res = ProcessBehaviorStatsToResponseBehaviorStats(result); if (string.IsNullOrWhiteSpace(query.Sort) || string.IsNullOrWhiteSpace(query.Order)) { res = res.OrderByDescending(p => p.OutTicketCount).ToList(); } else { if (query.Order == "desc") { switch (query.Sort) { case "LoginCount": res = res.OrderByDescending(p => p.LoginCount).ToList(); break; case "QueryCount": res = res.OrderByDescending(p => p.QueryCount).ToList(); break; case "ImportCount": res = res.OrderByDescending(p => p.ImportCount).ToList(); break; case "OutTicketCount": res = res.OrderByDescending(p => p.OutTicketCount).ToList(); break; case "BackTicketCount": res = res.OrderByDescending(p => p.BackTicketCount).ToList(); break; case "AbolishTicketCount": res = res.OrderByDescending(p => p.AbolishTicketCount).ToList(); break; case "AccessCount": res = res.OrderByDescending(p => p.AccessCount).ToList(); break; case "FinancingCount": res = res.OrderByDescending(p => p.FinancingCount).ToList(); break; case "UseCount": res = res.OrderByDescending(p => p.UseCount).ToList(); break; default: res = res.OrderByDescending(p => p.OutTicketCount).ToList(); break; } } else { switch (query.Sort) { case "LoginCount": res = res.OrderBy(p => p.LoginCount).ToList(); break; case "QueryCount": res = res.OrderBy(p => p.QueryCount).ToList(); break; case "ImportCount": res = res.OrderBy(p => p.ImportCount).ToList(); break; case "OutTicketCount": res = res.OrderBy(p => p.OutTicketCount).ToList(); break; case "BackTicketCount": res = res.OrderBy(p => p.BackTicketCount).ToList(); break; case "AbolishTicketCount": res = res.OrderBy(p => p.AbolishTicketCount).ToList(); break; case "AccessCount": res = res.OrderBy(p => p.AccessCount).ToList(); break; case "FinancingCount": res = res.OrderBy(p => p.FinancingCount).ToList(); break; case "UseCount": res = res.OrderBy(p => p.UseCount).ToList(); break; default: res = res.OrderBy(p => p.OutTicketCount).ToList(); break; } } } var totalCount = res.Count(); res = res.Skip(count).Take(pSize).ToList(); var dataPack = new DataPack <ResponseBehaviorStat>(); dataPack.TotalCount = totalCount; dataPack.List = res; return(dataPack); }
public FileResult Export(BehaviorStatModel query) { ExportExcelContext export = new ExportExcelContext("Excel2003"); DataTable dt = new DataTable("用户行为"); List <KeyValuePair <string, Type> > headArray = new List <KeyValuePair <string, Type> > { // new KeyValuePair<string,Type>("查询日期",typeof(string)), new KeyValuePair <string, Type>("业务经理", typeof(string)), // new KeyValuePair<string,Type>("操作员",typeof(string)), new KeyValuePair <string, Type>("商户号", typeof(string)), new KeyValuePair <string, Type>("公司名称", typeof(string)), new KeyValuePair <string, Type>("商户类型", typeof(string)), new KeyValuePair <string, Type>("登录次数", typeof(int)), new KeyValuePair <string, Type>("(机票)查询次数", typeof(int)), new KeyValuePair <string, Type>("(机票)导入次数 ", typeof(int)), new KeyValuePair <string, Type>("(机票)出票量 ", typeof(int)), new KeyValuePair <string, Type>("(机票)退票量 ", typeof(int)), new KeyValuePair <string, Type>("(机票)废票量 ", typeof(int)), new KeyValuePair <string, Type>("(理财)访问次数 ", typeof(int)), new KeyValuePair <string, Type>("(理财)理财笔数 ", typeof(int)), new KeyValuePair <string, Type>("(信用)使用笔数 ", typeof(int)), }; headArray.ForEach(p => dt.Columns.Add(p.Key, p.Value)); var queryCon = new RequestQueryBehaviorStatQuery(); queryCon.BusinessmanCode = query.BusinessmanCode; queryCon.BusinessmanName = query.BusinessmanName; queryCon.BusinessmanType = query.BusinessmanType; queryCon.StartDateTime = Convert.ToDateTime(query.StartDateTime); queryCon.EndDateTime = Convert.ToDateTime(query.EndDateTime); queryCon.PageIndex = 1; queryCon.PageSize = 65535; queryCon.Sort = query.sort; queryCon.Order = query.order; CommunicateManager.Invoke <IBehaviorStatService>(service => { service.Query(queryCon).List.ForEach(m => { var businessType = ""; if (m.BusinessmanType.ToLower().Equals("buyer")) { businessType = "采购商"; } else if (m.BusinessmanType.ToLower().Equals("supplier")) { businessType = "供应商"; } else { businessType = "运营商"; } dt.Rows.Add( // m.OpDateTime.ToString("yyyy-MM-dd"), m.ContactName, // m.OperatorName, m.BusinessmanCode, m.BusinessmanName, businessType, m.LoginCount, m.QueryCount, m.ImportCount, m.OutTicketCount, m.BackTicketCount, m.AbolishTicketCount, m.AccessCount, m.FinancingCount, m.UseCount ); }); }); return(File(export.GetMemoryStream(dt), "application/ms-excel", HttpUtility.UrlEncode(string.Format("{1}.{0}", export.TypeName, dt.TableName + query.StartDateTime + "至" + query.EndDateTime), Encoding.UTF8))); }