Files
HTCloud/HT.Cloud.Web/Areas/SystemSecurity/Controllers/AppLogController.cs
2023-03-03 16:07:50 +08:00

103 lines
2.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
* 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<ActionResult> GetGridJson(Pagination pagination, int timetype = 2)
{
return await Task.Run(() =>
{
//导出全部页使用
if (pagination.rows == 0 && pagination.page == 0)
{
pagination.rows = 99999999;
pagination.page = 1;
}
List<AppLogEntity> list = new List<AppLogEntity>();
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<ActionResult> 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));
});
}
/// <summary>
/// 获得指定路径下所有文件名
/// </summary>
/// <param name="sw">列表</param>
/// <param name="path">文件夹路径</param>
public static void getDirectory(List<AppLogEntity> 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);
}
}
}
}