68 lines
2.3 KiB
C#
68 lines
2.3 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using WcsMain.ApiServe.Controllers.Dto.WcsDto.SystemController;
|
|
using WcsMain.ApiServe.Controllers.Dto;
|
|
using WcsMain.WcsAttribute.AutoFacAttribute;
|
|
using WcsMain.ApiServe.Factory;
|
|
using DataCheck;
|
|
|
|
namespace WcsMain.ApiServe.Service.WcsService;
|
|
|
|
[Service]
|
|
public class RunningInfoService
|
|
{
|
|
|
|
/// <summary>
|
|
/// 获取日志名称
|
|
/// </summary>
|
|
/// <param name="logType"></param>
|
|
/// <returns></returns>
|
|
public WcsApiResponse<List<string>> GetLogFileName(string? logType)
|
|
{
|
|
string logAddress = AppDomain.CurrentDomain.BaseDirectory + $"Log\\{logType}\\";
|
|
DirectoryInfo directoryInfo = new(logAddress);
|
|
bool isExist = directoryInfo.Exists;
|
|
if (!isExist)
|
|
{
|
|
return WcsApiResponseFactory.Fail<List<string>>(msg: "没有相关的日志");
|
|
}
|
|
var fileInfos = directoryInfo.GetFiles();
|
|
List<string> fileNames = [];
|
|
foreach (FileInfo fileInfo in fileInfos)
|
|
{
|
|
fileNames.Add(fileInfo.Name);
|
|
}
|
|
return WcsApiResponseFactory.Success(fileNames, "查询成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证下载文件是否存在
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public WcsApiResponse CheckDownLoadLog([FromBody] LogRequest request)
|
|
{
|
|
bool checkData = CheckData.CheckDataRules(request);
|
|
if (!checkData)
|
|
{
|
|
return WcsApiResponseFactory.RequestErr();
|
|
}
|
|
string logAddress = AppDomain.CurrentDomain.BaseDirectory + $"Log\\{request.LogType}\\{request.LogFileName}";
|
|
bool isHave = System.IO.File.Exists(logAddress);
|
|
return isHave ? WcsApiResponseFactory.Success() : WcsApiResponseFactory.Fail("文件不存在");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 下载文件
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public FileContentResult DownLoadLog(LogRequest request, ControllerBase controllerBase)
|
|
{
|
|
string logAddress = AppDomain.CurrentDomain.BaseDirectory + $"Log\\{request.LogType}\\{request.LogFileName}";
|
|
byte[] fileBytes = System.IO.File.ReadAllBytes(logAddress);
|
|
return controllerBase.File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "log.txt");
|
|
}
|
|
|
|
|
|
}
|