修改用户日志

This commit is contained in:
2024-12-26 14:54:13 +08:00
parent 5f9572a0ab
commit cf9248b0cc
13 changed files with 19088 additions and 71 deletions
@@ -0,0 +1,52 @@
using AutoMapper.QueryableExtensions;
using EntityFrameworkCore.Triggered;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Triggers.AfterSaveTrigger
{
public class UserLogAfterTrigger(IRepository<IdentityUser> _identityUserRepository) : IAfterSaveTrigger<UserLog>
{
public async Task AfterSave(ITriggerContext<UserLog> context, CancellationToken cancellationToken)
{
var userlog = context.Entity;
if (context.ChangeType == ChangeType.Added)
{
if (userlog.TargetIdentityUserId != null)
{
var obj = await _identityUserRepository.Where(t => t.Id == userlog.TargetIdentityUserId).Select(t => new UserLogJsonObj()
{
DepartmentName = t.DepartmentName,
EMail = t.EMail,
FirstName = t.FirstName,
LastName = t.LastName,
OrganizationName = t.OrganizationName,
Phone = t.Phone,
PositionName = t.PositionName,
Sex = t.Sex,
Status = t.Status,
UserCode = t.UserCode,
UserName = t.UserName,
UserRoleList = t.UserRoleList.Select(t => new UserRoleLogObj()
{
IsUserRoleDisabled = t.IsUserRoleDisabled,
UserTypeEnum = t.UserTypeEnum,
UserTypeShortName = t.UserTypeRole.UserTypeShortName
}).ToList()
}).FirstOrDefaultAsync();
userlog.JsonObj = obj;
await _identityUserRepository.SaveChangesAsync();
}
}
}
}
}
@@ -28,15 +28,16 @@ namespace IRaCIS.Core.Application.Triggers
}
public class UserAddTrigger(IUserInfo _userInfo, IRepository<UserLog> _userLogReposiotry) : IBeforeSaveTrigger<UserRole>
public class UserAddTrigger(IUserInfo _userInfo, IRepository<UserLog> _userLogReposiotry) : IBeforeSaveTrigger<IdentityUser>
{
public async Task BeforeSave(ITriggerContext<UserRole> context, CancellationToken cancellationToken)
public async Task BeforeSave(ITriggerContext<IdentityUser> context, CancellationToken cancellationToken)
{
var user = context.Entity;
if (context.ChangeType == ChangeType.Added)
{
await _userLogReposiotry.AddAsync(new UserLog() { OptType = UserOptType.AddUser, OptUserId = user.Id, LoginUserId = _userInfo.UserRoleId, IP = _userInfo.IP });
await _userLogReposiotry.AddAsync(new UserLog() { IP = _userInfo.IP, ActionIdentityUserId = _userInfo.IdentityUserId, ActionUserName = _userInfo.UserName, OptType = UserOptType.AddUser }, true);
}