ly/Service/LogService.cs

65 lines
2.1 KiB
C#
Raw Permalink Normal View History

2025-03-22 12:16:22 +00:00
using Azure.Core;
using LY.App.Extensions.DI;
using LY.App.Model;
using Mapster;
2025-03-29 01:53:17 +00:00
using Microsoft.Extensions.Logging;
2025-03-22 12:16:22 +00:00
using SqlSugar;
using System.Security.AccessControl;
2025-03-29 01:53:17 +00:00
using System.Text;
2025-03-22 12:16:22 +00:00
namespace LY.App.Service
{
2025-04-02 06:48:37 +00:00
[ServiceInjection(InjectionType.Transient)]
2025-03-22 12:16:22 +00:00
public class LogService
{
private readonly SqlSugarClient _db;
public LogService(SqlSugarClient sqlSugarClient)
{
_db = sqlSugarClient;
}
public async Task AddLog(AddLog input)
{
var entity = input.Adapt<LogEntity>();
2025-03-30 23:38:50 +00:00
await _db?.Insertable(entity).ExecuteReturnSnowflakeIdAsync();
2025-03-22 12:16:22 +00:00
}
2025-03-28 15:20:31 +00:00
/// <summary>
/// 分页查询
/// </summary>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<ApiResult> List(int pageNum, int pageSize, string key)
{
RefAsync<int> total = 0;
var items = await _db.Queryable<LogEntity>()
.WhereIF(!string.IsNullOrEmpty(key), s => s.Message.Contains(key))
.OrderByDescending(s => s.Id)
.ToPageListAsync(pageNum, pageSize, total);
return new ApiResult()
{
data = new
{
total = total.Value,
items
}
};
}
2025-03-29 01:53:17 +00:00
public async Task<byte[]> DownLog(string key)
{
var query = await _db.Queryable<LogEntity>()
.WhereIF(!string.IsNullOrEmpty(key), s => s.Message.Contains(key))
.OrderByDescending(s => s.CreateTime).ToListAsync();
// 构建文本内容
var sb = new StringBuilder();
foreach (var log in query)
{
sb.AppendLine($"时间:[{log.CreateTime}] -消息:[{log.Message}]- 参数: {log.Parameters}");
}
// 将文本内容转为字节数组
byte[] fileBytes = Encoding.UTF8.GetBytes(sb.ToString());
return fileBytes;
}
2025-03-22 12:16:22 +00:00
}
}