using Microsoft.AspNetCore.Mvc;
using ZR.Model.System.Dto;
namespace ZR.Admin.WebApi.Controllers.monitor
{
///
/// 操作日志记录
///
[Route("/monitor/operlog")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysOperlogController : BaseController
{
private ISysOperLogService sysOperLogService;
public SysOperlogController(ISysOperLogService sysOperLogService)
{
this.sysOperLogService = sysOperLogService;
}
///
/// 查询操作日志
///
///
///
[HttpGet("list")]
public IActionResult OperList([FromQuery] SysOperLogQueryDto sysOperLog)
{
sysOperLog.OperName = !HttpContextExtension.IsAdmin(HttpContext) ? HttpContextExtension.GetName(HttpContext) : sysOperLog.OperName;
var list = sysOperLogService.SelectOperLogList(sysOperLog);
return SUCCESS(list);
}
///
/// 删除操作日志
///
///
///
[Log(Title = "操作日志", BusinessType = BusinessType.DELETE)]
[ActionPermissionFilter(Permission = "monitor:operlog:delete")]
[HttpDelete("{operIds}")]
public IActionResult Remove(string operIds)
{
if (!HttpContextExtension.IsAdmin(HttpContext))
{
return ToResponse(ApiResult.Error("操作失败"));
}
long[] operIdss = Tools.SpitLongArrary(operIds);
return SUCCESS(sysOperLogService.DeleteOperLogByIds(operIdss));
}
///
/// 清空操作日志
///
///
[Log(Title = "清空操作日志", BusinessType = BusinessType.CLEAN)]
[ActionPermissionFilter(Permission = "monitor:operlog:delete")]
[HttpDelete("clean")]
public IActionResult ClearOperLog()
{
if (!HttpContextExtension.IsAdmin(HttpContext))
{
return ToResponse(ResultCode.CUSTOM_ERROR,"操作失败");
}
sysOperLogService.CleanOperLog();
return SUCCESS(1);
}
///
/// 导出操作日志
///
///
[Log(Title = "操作日志", BusinessType = BusinessType.EXPORT)]
[ActionPermissionFilter(Permission = "monitor:operlog:export")]
[HttpGet("export")]
public IActionResult Export([FromQuery] SysOperLogQueryDto sysOperLog)
{
sysOperLog.PageSize = 100000;
var list = sysOperLogService.SelectOperLogList(sysOperLog);
var result = ExportExcelMini(list.Result, "操作日志", "操作日志");
return ExportExcel(result.Item2, result.Item1);
}
}
}