123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Threading.Tasks;
- using DW5S.DTO;
- using DW5S.Repostory;
- using System.IO;
- using DW5S.Entity;
- using DW5S.WebApi;
- using System.Diagnostics;
- using System.Configuration;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.EntityFrameworkCore;
- using Serilog;
- namespace DW5S.Controllers
- {
- /// <summary>
- /// 日志相关接口
- /// </summary>
- public class LogController : BaseController
- {
- ILogger logger { get; set; }
- IUnitOfWork unitOfWork { get; set; }
- /// <summary>
- /// 将日志写入到平台
- /// </summary>
- /// <param name="dto">日志信息</param>
- /// <returns></returns>
- [HttpPost]
- public async Task<AjaxResult> Add(LogInfoDto dto)
- {
- try
- {
- var repsLog = unitOfWork.Of<LogRes>();
- await repsLog.AddOrUpdateAsync(new LogRes()
- {
- LogTime = dto.LogTime,
- Module = dto.Module,
- LogType = (Entity.EnumLogType)(int)dto.LogType,
- Msg = dto.Msg,
- });
- await unitOfWork.SaveAsync();
- return Success();
- }
- catch (Exception ex)
- {
- string msg = "日志信息写入异常";
- logger.Error(ex, msg);
- return Error(msg);
- }
- }
- /// <summary>
- /// 查询日志信息
- /// </summary>
- /// <param name="dto">日志查询参数</param>
- /// <returns></returns>
- [HttpPost]
- public async Task<AjaxResult<List<LogInfoDto>>> Query(LogQueryDto dto)
- {
- try
- {
- var query = unitOfWork.Of<LogRes>().AsQueryable();
- if (!string.IsNullOrWhiteSpace(dto.Module) && dto.Module != "全部")
- query = query.Where(p => p.Module == dto.Module);
- if (dto.LogTimeBegin != null && dto.LogTimeBegin != DateTime.MinValue)
- query = query.Where(p => p.LogTime >= dto.LogTimeBegin);
- if (dto.LogTimeEnd != null && dto.LogTimeEnd != DateTime.MinValue)
- query = query.Where(p => p.LogTime <= dto.LogTimeEnd);
- var res = await query.OrderBy(p => p.Module).ThenByDescending(t => t.LogTime).ToListAsync();
- var dtoRes = res.Select(t => new LogInfoDto
- {
- ID = t.Id,
- LogTime = t.LogTime,
- LogType = (EnumLogTypeDto)(int)t.LogType,
- Module = t.Module,
- Msg = t.Msg,
- }).ToList();
- return Success(dtoRes);
- }
- catch (Exception ex)
- {
- string msg = "日志信息查询异常";
- logger.Error(ex, msg);
- return Error<List<LogInfoDto>>(msg);
- }
- }
- /// <summary>
- /// 获取所有日志模块
- /// </summary>
- /// <returns></returns>
- [HttpPost]
- public async Task<AjaxResult<List<LogModulesResDto>>> GetModules()
- {
- try
- {
- var repsLog = unitOfWork.Of<LogRes>();
- var res = await repsLog.GetDistinctAsync(p => p.Module);
- var dtoRes = res.Select(p => new LogModulesResDto()
- {
- Module = p
- }).OrderBy(p => p.Module).ToList();
- return Success(dtoRes);
- }
- catch (Exception ex)
- {
- string msg = "日志模块查询异常";
- logger.Error(ex, msg);
- return Error<List<LogModulesResDto>>(msg);
- }
- }
- /// <summary>
- /// 删除日志
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPost]
- public async Task<AjaxResult> Delete(IEnumerable<LogDeleteDto> dto)
- {
- if (dto == null || !dto.Any()) return Success();
- try
- {
- var repsLog = unitOfWork.Of<LogRes>();
- var ids = dto.Select(p => p.ID);
- await repsLog.DeleteAsync(p => ids.Contains(p.Id));
- await unitOfWork.SaveAsync();
- return Success();
- }
- catch (Exception ex)
- {
- string msg = "日志信息删除异常";
- logger.Error(ex, msg);
- return Error(msg);
- }
- }
- }
- }
|