| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | 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.Extensions.Logging;using Microsoft.EntityFrameworkCore;namespace DW5S.App.Controllers{    /// <summary>    /// 日志相关接口    /// </summary>    public class LogController : BaseController    {        [Autowired]        private readonly ILogger logger;        [Autowired]        private readonly UnitOfWork unitOfWork;        /// <summary>        /// 将日志写入到平台        /// </summary>        /// <param name="dto">日志信息</param>        /// <returns></returns>        [HttpPost]        public async Task<AjaxResult> Add(LogInfoDto dto)        {            try            {                var repsLog = unitOfWork.Reps<LogRes>();                await repsLog.AddAsync(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.LogError(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.Reps<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.LogError(ex, msg);                return Error<List<LogInfoDto>>(msg);            }        }        /// <summary>        /// 获取所有日志模块        /// </summary>        /// <returns></returns>        [HttpPost]        public async Task<AjaxResult<List<LogModulesResDto>>> GetModules()        {            try            {                var repsLog = unitOfWork.Reps<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.LogError(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.Reps<LogRes>();                var ids = dto.Select(p =>p.ID);                repsLog.DeleteById(ids);                await unitOfWork.SaveAsync();                return Success();            }            catch (Exception ex)            {                string msg = "日志信息删除异常";                logger.LogError(ex, msg);                return Error(msg);            }        }    }}
 |