OL.FrameCore.Application/SysLog/SysLogService.cs

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Microsoft.EntityFrameworkCore;
using OL.FrameCore.Application.SysLog.Dto;
using OL.FrameCore.Domain.Entity;
using OL.FrameCore.Infrastructure.UnitOfWork;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;

namespace OL.FrameCore.Application.SysLog
{
    public class SysLogService: ISysLogService
    {
        IUnitOfWork _unitOfwork;
        public SysLogService(IUnitOfWork unitOfwork)
        {
            _unitOfwork = unitOfwork;
        }

        /// <summary>
        /// 获取用户操作日志列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PageData<GetUserOperateLogListResponse> GetUserOperateLogList(GetUserOperateLogListRequest request)
        {
            var repositoryUserOperateLog = _unitOfwork.GetRepository<SysUserOperateLog>();
            var repositoryUser = _unitOfwork.GetRepository<SysUser>();

            //Expression<Func<SysUserOperateLog, bool>> predicate = p =>
            //(request.OperateId.HasValue == false ? true : p.OperateId == request.OperateId)
            //&& (request.OperateType.HasValue == false ? true : p.OperateType == request.OperateType)
            //&& (request.UserId.HasValue == false ? true : p.UserId == request.UserId);
            //var query = repositoryUserOperateLog.TableNoTracking.Where(predicate).Select(p => new GetUserOperateLogListResponse
            //{
            //    Id = p.Id,
            //    UserId = p.UserId,
            //    OperateType = p.OperateType,
            //    Remark = p.Remark,
            //    IP = p.IP,
            //    OperateId = p.OperateId,
            //    CreateTime = p.CreateTime
            //});

            var query = from a in repositoryUserOperateLog.TableNoTracking
                        join b in repositoryUser.TableNoTracking on a.UserId equals b.Id
                        join c in repositoryUser.TableNoTracking on a.OperateId equals c.Id
                        where (request.OperateId.HasValue == false ? true : a.OperateId == request.OperateId)
                        && (request.OperateType.HasValue == false ? true : a.OperateType == request.OperateType)
                        && (request.UserId.HasValue == false ? true : a.UserId == request.UserId)
                        && a.CreateTime >= request.BeginTime
                        && a.CreateTime < request.EndTime.AddDays(1)
                        orderby a.CreateTime descending
                        select new GetUserOperateLogListResponse
                        {
                            Id = a.Id,
                            UserId = a.UserId,
                            UserName = b.TrueName,
                            OperateType = a.OperateType,
后面还有 89 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。