/// <summary> /// 获取所有日志(分页) /// </summary> /// <param name="request"></param> /// <param name="page"></param> /// <param name="rows"></param> /// <returns></returns> public ActionResult GetPagingXmlLogs(GetPagingXmlLogsRequest request, int page, int rows) { var result = string.Empty; if (request == null) { request = new GetPagingXmlLogsRequest(); } request.PageIndex = page; request.PageSize = rows; var rs = _xmlLogService.GetPagingXmlLogs(request); if (rs.ReturnCode == ReturnCodeType.Success) { result = "{\"total\": " + rs.Content.TotalCount + ",\"rows\":" + rs.Content.Entities.ToJson(dateTimeFormat: "yyyy-MM-dd HH:mm:ss.fff") + "}"; } return(Content(result)); }
/// <summary> /// 获取所有日志(分页) /// </summary> /// <param name="request"></param> /// <returns></returns> public ServiceResult <PagingResult <GetPagingXmlLogsResponse> > GetPagingXmlLogs(GetPagingXmlLogsRequest request) { var result = new ServiceResult <PagingResult <GetPagingXmlLogsResponse> > { ReturnCode = ReturnCodeType.Error, Content = new PagingResult <GetPagingXmlLogsResponse>() }; //处理详情页面url var logSiteUrl = Log.Common.Helper.ConfigHelper.LogSite; var rs = _xmlLogDao.GetPagingXmlLogs(request); if (rs != null && rs.Entities.HasValue()) { foreach (var item in rs.Entities) { item.DetailUrl = string.Format("{0}XmlLog/Detail/{1}", logSiteUrl, item.Id); } } result.ReturnCode = ReturnCodeType.Success; result.Content = rs; return(result); }
/// <summary> /// 获取所有日志(分页) /// </summary> /// <param name="request"></param> /// <returns></returns> public PagingResult <GetPagingXmlLogsResponse> GetPagingXmlLogs(GetPagingXmlLogsRequest request) { PagingResult <GetPagingXmlLogsResponse> result = null; var totalCount = 0; var startIndex = (request.PageIndex - 1) * request.PageSize + 1; var endIndex = request.PageIndex * request.PageSize; //按条件查询,构造where //使用DynamicParameters var p = new DynamicParameters(); var sbSqlPaging = new StringBuilder(@"SELECT ROW_NUMBER() OVER ( ORDER BY xmlLogs.id DESC ) AS RowNum , xmlLogs.created_time AS CreatedTime , xmlLogs.system_code AS SystemCode , xmlLogs.class_name AS ClassName , xmlLogs.method_name AS MethodName , xmlLogs.method_cname AS MethodCName, xmlLogs.ip_address AS IpAddress , xmlLogs.client_ip AS ClientIp, xmlLogs.appdomain_name AS AppDomainName , xmlLogs.machine_name AS MachineName, * FROM dbo.t_logs_xml_log(NOLOCK) AS xmlLogs WHERE 1 = 1"); var sbSqlTotal = new StringBuilder(@"SELECT COUNT(xmlLogs.id) FROM dbo.t_logs_xml_log(NOLOCK) AS xmlLogs WHERE 1 = 1"); if (!request.SystemCode.IsNullOrEmpty()) { sbSqlPaging.Append(" AND xmlLogs.system_code=@SystemCode"); sbSqlTotal.Append(" AND xmlLogs.system_code=@SystemCode"); p.Add("SystemCode", request.SystemCode, dbType: System.Data.DbType.String); } if (!request.Source.IsNullOrEmpty()) { sbSqlPaging.Append(" AND xmlLogs.source=@Source"); sbSqlTotal.Append(" AND xmlLogs.source=@Source"); p.Add("Source", request.Source, System.Data.DbType.String); } if (!request.ClassName.IsNullOrEmpty()) { sbSqlPaging.Append(" AND xmlLogs.class_name=@ClassName"); sbSqlTotal.Append(" AND xmlLogs.class_name=@ClassName"); p.Add("ClassName", request.ClassName, System.Data.DbType.String); } if (!request.MethodName.IsNullOrEmpty()) { sbSqlPaging.Append(" AND xmlLogs.method_name=@MethodName"); sbSqlTotal.Append(" AND xmlLogs.method_name=@MethodName"); p.Add("MethodName", request.MethodName, System.Data.DbType.String); } if (!request.MethodCName.IsNullOrEmpty()) { sbSqlPaging.Append(" AND xmlLogs.method_cname=@MethodCName"); sbSqlTotal.Append(" AND xmlLogs.method_cname=@MethodCName"); p.Add("MethodCName", request.MethodCName, System.Data.DbType.String); } if (request.CreatedTimeStart.HasValue) { sbSqlPaging.Append(" AND xmlLogs.created_time >= @CreatedTimeStart"); sbSqlTotal.Append(" AND xmlLogs.created_time >= @CreatedTimeStart"); p.Add("CreatedTimeStart", request.CreatedTimeStart.Value, System.Data.DbType.DateTime); } if (request.CreatedTimeEnd.HasValue) { sbSqlPaging.Append(" AND xmlLogs.created_time <= @CreatedTimeEnd"); sbSqlTotal.Append(" AND xmlLogs.created_time <= @CreatedTimeEnd"); p.Add("CreatedTimeEnd", request.CreatedTimeEnd.Value, System.Data.DbType.DateTime); } var sqlPaging = string.Format(@"SELECT rs.* FROM ( {0} ) AS rs WHERE rs.RowNum BETWEEN @Start AND @End", sbSqlPaging.ToString()); var sqlStr = string.Format("{0};{1};", sqlPaging, sbSqlTotal.ToString()); p.Add("Start", startIndex, System.Data.DbType.Int32); p.Add("End", endIndex, System.Data.DbType.Int32); using (var conn = DapperHelper.CreateConnection()) { var multi = conn.QueryMultiple(sqlStr, p); var query1 = multi.Read <GetPagingXmlLogsResponse>(); var query2 = multi.Read <int>(); totalCount = query2.First(); result = new PagingResult <GetPagingXmlLogsResponse>(totalCount, request.PageIndex, request.PageSize, query1); } return(result); }