using Yitter.IdGenerator;
namespace Admin.NET.Plugin.AiDOP.Order;
///
/// 销售订单评审业务操作日志写入(sys_log_op)
///
public class SeOrderOperationLogService : ITransient
{
private readonly SqlSugarRepository _logOpRep;
private readonly UserManager _userManager;
public SeOrderOperationLogService(SqlSugarRepository logOpRep, UserManager userManager)
{
_logOpRep = logOpRep;
_userManager = userManager;
}
///
/// 写入操作日志;失败不影响主流程
///
public async Task WriteAsync(SeOrderOperationLogDto dto)
{
try
{
var uid = dto.UserId > 0 ? dto.UserId : _userManager.UserId;
var requestParam = string.IsNullOrEmpty(dto.BeforeJson) && string.IsNullOrEmpty(dto.AfterJson)
? null
: System.Text.Json.JsonSerializer.Serialize(new
{
tableName = dto.TableName,
keyValue = dto.KeyValue,
before = dto.BeforeJson,
after = dto.AfterJson
});
await _logOpRep.InsertAsync(new SysLogOp
{
Id = YitIdHelper.NextId(),
DisplayTitle = dto.Action,
ControllerName = dto.TableName,
ActionName = dto.Action,
Message = dto.Content,
RequestParam = requestParam,
LogDateTime = DateTime.Now,
Account = _userManager.Account,
RealName = _userManager.RealName,
CreateUserId = uid,
TenantId = _userManager.TenantId,
Status = "200",
LogLevel = Microsoft.Extensions.Logging.LogLevel.Information,
});
}
catch
{
// 日志失败不抛出
}
}
}