添加登录日志功能

This commit is contained in:
橙子
2022-10-02 14:02:21 +08:00
parent 2b02194a18
commit e963a4051f
12 changed files with 165 additions and 37 deletions

View File

@@ -33,12 +33,14 @@ namespace Yi.Framework.ApiMicroservice.Controllers
private JwtInvoker _jwtInvoker;
private ILogger _logger;
private SecurityCodeHelper _securityCode;
private IRepository<UserEntity> _repository;
public AccountController(ILogger<UserEntity> logger, IUserService iUserService, JwtInvoker jwtInvoker, SecurityCodeHelper securityCode)
{
_iUserService = iUserService;
_jwtInvoker = jwtInvoker;
_logger = logger;
_securityCode = securityCode;
_repository = iUserService._repository;
}
/// <summary>
@@ -67,13 +69,22 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{
//跳过需要redis缓存获取uuid与code的关系进行比较即可
//先效验验证码和UUID
//登录还需要进行登录日志的落库
var loginInfo = HttpContext.GetLoginLogInfo();
loginInfo.LoginUser = loginDto.UserName;
loginInfo.LogMsg = "登录成功!";
var loginLogRepository = _repository.ChangeRepository<Repository<LoginLogEntity>>();
UserEntity user = new();
if (await _iUserService.Login(loginDto.UserName, loginDto.Password, o => user = o))
{
var userRoleMenu = await _iUserService.GetUserAllInfo(user.Id);
return Result.Success("登录成功!").SetData(new { token = _jwtInvoker.GetAccessToken(userRoleMenu.User, userRoleMenu.Menus) });
await loginLogRepository.InsertReturnSnowflakeIdAsync(loginInfo);
return Result.Success(loginInfo.LogMsg).SetData(new { token = _jwtInvoker.GetAccessToken(userRoleMenu.User, userRoleMenu.Menus) });
}
return Result.Error("登录失败!用户名或者密码错误!");
loginInfo.LogMsg = "登录失败!用户名或者密码错误!";
await loginLogRepository.InsertReturnSnowflakeIdAsync(loginInfo);
return Result.Error(loginInfo.LogMsg);
}

View File

@@ -17,12 +17,25 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{
[ApiController]
[Route("api/[controller]/[action]")]
public class LoginLogController : BaseCrudController<LoginLogEntity>
public class LoginLogController : BaseSimpleCrudController<LoginLogEntity>
{
private ILoginLogService _iLoginLogService;
public LoginLogController(ILogger<LoginLogEntity> logger, ILoginLogService iLoginLogService) : base(logger, iLoginLogService)
{
_iLoginLogService = iLoginLogService;
}
/// <summary>
/// 动态条件分页查询
/// </summary>
/// <param name="loginLog"></param>
/// <param name="page"></param>
/// <returns></returns>
[HttpGet]
public async Task<Result> PageList([FromQuery] LoginLogEntity loginLog, [FromQuery] PageParModel page)
{
return Result.Success().SetData(await _iLoginLogService.SelctPageList(loginLog, page));
}
}
}