using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; using Microsoft.AspNetCore.Mvc; using SqlSugar; using System.Linq.Expressions; using ZR.Admin.WebApi.Filters; using ZR.Common; using ZR.Model; using ZR.Model.System; using ZR.Model.Vo; using ZR.Service.System.IService; namespace ZR.Admin.WebApi.Controllers.monitor { /// /// 系统访问记录 /// [Verify] [Route("/monitor/logininfor")] public class SysLogininforController : BaseController { private ISysLoginService sysLoginService; public SysLogininforController(ISysLoginService sysLoginService) { this.sysLoginService = sysLoginService; } /// /// 查询登录日志 /// /monitor/logininfor/list /// /// /// /// [HttpGet("list")] public IActionResult LoignLogList([FromQuery] SysLogininfor sysLogininfoDto, [FromQuery] PagerInfo pagerInfo) { var list = sysLoginService.GetLoginLog(sysLogininfoDto, pagerInfo); return SUCCESS(list, TIME_FORMAT_FULL_2); } /// /// 清空登录日志 /// /monitor/logininfor/clean /// /// [Log(Title = "清空登录日志", BusinessType= BusinessType.CLEAN)] [ActionPermissionFilter(Permission = "monitor:logininfor:remove")] [HttpDelete("clean")] public IActionResult CleanLoginInfo() { sysLoginService.TruncateLogininfo(); return SUCCESS(1); } /// /// /monitor/logininfor/1 /// /// /// [Log(Title = "删除登录日志", BusinessType = BusinessType.DELETE)] [HttpDelete("{infoIds}")] [ActionPermissionFilter(Permission = "monitor:logininfor:remove")] public IActionResult Remove(string infoIds) { long[] infoIdss = Tools.SpitLongArrary(infoIds); return SUCCESS(sysLoginService.DeleteLogininforByIds(infoIdss)); } /// /// 登录日志导出 /// /// [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "登录日志导出")] [HttpGet("export")] [ActionPermissionFilter(Permission = "monitor:logininfor:export")] public IActionResult Export([FromQuery] SysLogininfor logininfoDto) { logininfoDto.BeginTime = DateTimeHelper.GetBeginTime(logininfoDto.BeginTime, -1); logininfoDto.EndTime = DateTimeHelper.GetBeginTime(logininfoDto.EndTime, 1); var exp = Expressionable.Create() .And(it => it.loginTime >= logininfoDto.BeginTime && it.loginTime <= logininfoDto.EndTime); var list = sysLoginService.Queryable().Where(exp.ToExpression()) .ToList(); string sFileName = ExportExcel(list, "loginlog", "登录日志"); return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); } } }