Пример #1
0
        /// <summary>
        /// 获取所有日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <param name="page"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        public ActionResult GetPagingPerformanceLogs(GetPagingPerformanceLogsRequest request, int page, int rows)
        {
            var result = string.Empty;

            if (request == null)
            {
                request = new GetPagingPerformanceLogsRequest();
            }
            request.PageIndex = page;
            request.PageSize  = rows;

            var rs = _perfLogService.GetPagingPerformanceLogs(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 <GetPagingPerformanceLogsResponse> > GetPagingPerformanceLogs(GetPagingPerformanceLogsRequest request)
        {
            var result = new ServiceResult <PagingResult <GetPagingPerformanceLogsResponse> >
            {
                ReturnCode = ReturnCodeType.Error,
                Content    = new PagingResult <GetPagingPerformanceLogsResponse>()
            };

            //处理详情页面url
            var logSiteUrl = Log.Common.Helper.ConfigHelper.LogSite;
            var rs         = _perfLogDao.GetPagingPerformanceLogs(request);

            if (rs != null && rs.Entities.HasValue())
            {
                foreach (var item in rs.Entities)
                {
                    item.DetailUrl = string.Format("{0}PerformanceLog/Detail/{1}", logSiteUrl, item.Id);
                }
            }
            result.ReturnCode = ReturnCodeType.Success;
            result.Content    = rs;

            return(result);
        }
Пример #3
0
        /// <summary>
        /// 获取所有日志(分页)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PagingResult <GetPagingPerformanceLogsResponse> GetPagingPerformanceLogs(GetPagingPerformanceLogsRequest request)
        {
            PagingResult <GetPagingPerformanceLogsResponse> 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 perfLogs.id DESC ) AS RowNum ,
                        perfLogs.created_time AS CreatedTime ,
                        perfLogs.system_code AS SystemCode ,
                        perfLogs.class_name AS ClassName ,
                        perfLogs.method_name AS MethodName ,
                        perfLogs.method_cname AS MethodCName ,
                        perfLogs.machine_name AS MachineName ,
                        perfLogs.ip_address AS IpAddress ,
                        perfLogs.client_ip AS ClientIp ,
                        *
                FROM    dbo.t_logs_performance_log (NOLOCK) AS perfLogs
                WHERE   1 = 1");
            var sbSqlTotal  = new StringBuilder(@"SELECT  COUNT(perfLogs.id)
                FROM    dbo.t_logs_performance_log (NOLOCK) AS perfLogs
                WHERE   1 = 1");

            if (!request.SystemCode.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND perfLogs.system_code=@SystemCode");
                sbSqlTotal.Append(" AND perfLogs.system_code=@SystemCode");
                p.Add("SystemCode", request.SystemCode, dbType: System.Data.DbType.String);
            }
            if (!request.Source.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND perfLogs.source=@Source");
                sbSqlTotal.Append(" AND perfLogs.source=@Source");
                p.Add("Source", request.Source, System.Data.DbType.String);
            }
            if (!request.ClassName.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND perfLogs.class_name=@ClassName");
                sbSqlTotal.Append(" AND perfLogs.class_name=@ClassName");
                p.Add("ClassName", request.ClassName, System.Data.DbType.String);
            }
            if (!request.MethodName.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND perfLogs.method_name=@MethodName");
                sbSqlTotal.Append(" AND perfLogs.method_name=@MethodName");
                p.Add("MethodName", request.MethodName, System.Data.DbType.String);
            }
            if (!request.MethodCName.IsNullOrEmpty())
            {
                sbSqlPaging.Append(" AND perfLogs.method_cname=@MethodCName");
                sbSqlTotal.Append(" AND perfLogs.method_cname=@MethodCName");
                p.Add("MethodCName", request.MethodCName, System.Data.DbType.String);
            }
            if (request.CreatedTimeStart.HasValue)
            {
                sbSqlPaging.Append(" AND perfLogs.created_time >= @CreatedTimeStart");
                sbSqlTotal.Append(" AND perfLogs.created_time >= @CreatedTimeStart");
                p.Add("CreatedTimeStart", request.CreatedTimeStart.Value, System.Data.DbType.DateTime);
            }
            if (request.CreatedTimeEnd.HasValue)
            {
                sbSqlPaging.Append(" AND perfLogs.created_time <= @CreatedTimeEnd");
                sbSqlTotal.Append(" AND perfLogs.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 <GetPagingPerformanceLogsResponse>();
                var query2 = multi.Read <int>();
                totalCount = query2.First();

                result = new PagingResult <GetPagingPerformanceLogsResponse>(totalCount, request.PageIndex, request.PageSize, query1);
            }

            return(result);
        }