/******************************************************************************* * Copyright © 2020 HT.Cloud.Framework 版权所有 * Author: HT.Cloud * Description: WaterCloud快速开发平台 * Website: *********************************************************************************/ using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Web; using HT.Cloud.Code; using HT.Cloud.Code.Model; namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers { [Area("SystemSecurity")] public class AppLogController : BaseController { [HttpGet] [HandlerAjaxOnly] public async Task GetGridJson(Pagination pagination, int timetype = 2) { return await Task.Run(() => { //导出全部页使用 if (pagination.rows == 0 && pagination.page == 0) { pagination.rows = 99999999; pagination.page = 1; } List list = new List(); string logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs"); getDirectory(list, logPath); DateTime startTime = DateTime.Now.ToString("yyyy-MM-dd").ToDate(); DateTime endTime = DateTime.Now.ToString("yyyy-MM-dd").ToDate().AddDays(1); switch (timetype) { case 1: break; case 2: startTime = startTime.AddDays(-7); break; case 3: startTime = startTime.AddMonths(-1); break; case 4: startTime = startTime.AddMonths(-3); break; default: break; } list = list.Where(a => (a.FileName.Split('.')[0]).CompareTo(startTime.ToString("yyyy-MM-dd")) >= 0 && (a.FileName.Split('.')[0]).CompareTo(endTime.ToString("yyyy-MM-dd")) <= 0).ToList(); pagination.records = list.Count(); list = list.OrderBy(a => a.FileName).Skip((pagination.page - 1) * pagination.rows).Take(pagination.rows).ToList(); return Success(pagination.records, list); }); } [HttpGet] [HandlerAjaxOnly] public async Task GetFormJson(string keyValue) { return await Task.Run(() => { string content; string logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs", keyValue.Split('.')[0].Substring(0, 7), keyValue); using (StreamReader sr = new StreamReader(logPath)) { content = sr.ReadToEnd(); } return Success("操作成功", HttpUtility.HtmlEncode(content)); }); } /// /// 获得指定路径下所有文件名 /// /// 列表 /// 文件夹路径 public static void getDirectory(List sw, string path) { DirectoryInfo root = new DirectoryInfo(path); foreach (FileInfo f in root.GetFiles()) { AppLogEntity app = new AppLogEntity(); app.FileName = f.Name; sw.Add(app); } foreach (DirectoryInfo d in root.GetDirectories()) { getDirectory(sw, d.FullName); } } } }