shop_template_api/ARW.WebApi/Controllers/System/TasksLogController.cs
2023-06-02 21:15:33 +08:00

99 lines
3.5 KiB
C#

using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using ARW.Model;
using ARW.Model.System.Dto;
using ARW.Model.System;
using Infrastructure.Extensions;
using Infrastructure.Attribute;
using ARW.Admin.WebApi.Filters;
using ARW.Common;
using Infrastructure.Enums;
using ARW.Service.System.IService;
using Infrastructure;
namespace ARW.Admin.WebApi.Controllers.System
{
/// <summary>
/// 任务日志
/// </summary>
[Verify]
[Route("/monitor/jobLog")]
public class TasksLogController : BaseController
{
private readonly ISysTasksLogService tasksLogService;
public TasksLogController(ISysTasksLogService tasksLogService)
{
this.tasksLogService = tasksLogService;
}
/// <summary>
/// 查询日志
/// </summary>
/// <param name="queryDto"></param>
/// <param name="pager"></param>
/// <returns></returns>
[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<SysTasksLog>().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);
}
/// <summary>
/// 删除定时任务调用日志
/// </summary>
/// <param name="jobIds"></param>
/// <returns></returns>
[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));
}
/// <summary>
/// 清空日志
/// </summary>
/// <returns></returns>
[HttpDelete("clean")]
[ActionPermissionFilter(Permission = "PRIV_JOBLOG_REMOVE")]
[Log(Title = "清空任务日志", BusinessType = BusinessType.CLEAN)]
public IActionResult Clean()
{
tasksLogService.DeleteTable();
return SUCCESS(1);
}
/// <summary>
/// 定时任务日志导出
/// </summary>
/// <returns></returns>
[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 });
}
}
}