using Microsoft.AspNetCore.Mvc; using SqlSugar; using ZR.Model; using ZR.Model.System.Dto; using ZR.Model.System; using Infrastructure.Extensions; using Infrastructure.Attribute; using ZR.Admin.WebApi.Filters; using ZR.Common; using Infrastructure.Enums; using ZR.Service.System.IService; using Infrastructure; namespace ZR.Admin.WebApi.Controllers.System { /// /// 任务日志 /// [Verify] [Route("/monitor/jobLog")] public class TasksLogController : BaseController { private readonly ISysTasksLogService tasksLogService; public TasksLogController(ISysTasksLogService tasksLogService) { this.tasksLogService = tasksLogService; } /// /// 查询日志 /// /// /// /// [HttpGet("list")] public IActionResult GetList([FromQuery] PagerInfo pager, [FromQuery] TasksLogQueryDto queryDto) { queryDto.BeginTime = DateTimeHelper.GetBeginTime(queryDto.BeginTime, -7); queryDto.EndTime = DateTimeHelper.GetBeginTime(queryDto.EndTime, 7); var predicate = Expressionable.Create().And(it => it.CreateTime >= queryDto.BeginTime && it.CreateTime <= queryDto.EndTime); predicate = predicate.AndIF(queryDto.JobName.IfNotEmpty(), m => m.JobName.Contains(queryDto.JobName)); predicate = predicate.AndIF(queryDto.JobGroup.IfNotEmpty(), m => m.JobGroup == queryDto.JobGroup); predicate = predicate.AndIF(queryDto.Status.IfNotEmpty(), m => m.Status == queryDto.Status); predicate = predicate.AndIF(queryDto.JobId.IfNotEmpty(), m => m.JobId == queryDto.JobId); var response = tasksLogService.GetPages(predicate.ToExpression(), pager, m => m.CreateTime, OrderByType.Desc); return SUCCESS(response, TIME_FORMAT_FULL); } /// /// 删除定时任务调用日志 /// /// /// [HttpDelete("{jobIds}")] [ActionPermissionFilter(Permission = "PRIV_JOBLOG_DELETE")] [Log(Title = "删除任务日志", BusinessType = BusinessType.DELETE)] public IActionResult Delete(string jobIds) { long[] jobIdArr = Tools.SpitLongArrary(jobIds); int result = tasksLogService.Delete(jobIdArr); return ToResponse(ToJson(result, result)); } /// /// 清空日志 /// /// [HttpDelete("clean")] [ActionPermissionFilter(Permission = "PRIV_JOBLOG_REMOVE")] [Log(Title = "清空任务日志", BusinessType = BusinessType.CLEAN)] public IActionResult Clean() { tasksLogService.DeleteTable(); return SUCCESS(1); } /// /// 定时任务日志导出 /// /// [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "定时任务日志导出")] [HttpGet("export")] [ActionPermissionFilter(Permission = "PRIV_JOBLOG_EXPORT")] public IActionResult Export() { var list = tasksLogService.GetAll(); string sFileName = ExportExcel(list, "jobLog", "定时任务日志"); return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); } } }