Product_Wms/WcsMain/ApiServe/Service/WcsService/RunningInfoService.cs

70 lines
2.4 KiB
C#
Raw Normal View History

2024-10-07 09:51:55 +08:00
using Microsoft.AspNetCore.Mvc;
using WcsMain.Constant.WcsAttribute.AutoFacAttribute;
2024-10-07 09:51:55 +08:00
using WcsMain.ApiServe.Factory;
using DataCheck;
using WcsMain.ApiServe.Dto;
using WcsMain.ApiServe.Dto.WcsDto.SystemController;
2024-10-07 09:51:55 +08:00
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);
}
var fileNameArray = fileNames.ToArray();
Array.Reverse(fileNameArray);
return WcsApiResponseFactory.Success(fileNameArray.ToList(), "查询成功");
}
/// <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");
}
}