using SJZY.Track.Domain.Aggregates.TrackNodeAggregate; using SJZY.Track.Domain.Dtos.TrackNode; using SJZY.Track.Domain.VEntities; namespace SJZY.Track.Repository.Repositories; public class TrackNodeRepository : BasicRepository, ITrackNodeRepository, IScopedDependency { public async Task> GetPageList(TrackNodePageDto queryParam) { var result = await Context.Queryable() .LeftJoin((t, u1) => t.CreateUserId == u1.Id) .LeftJoin((t, u1, u2) => t.UpdateUserId == u2.Id) .LeftJoin((t, u1, u2, u3) => t.SubSystemId == u3.Id) .Where((t, u1, u2) => !t.IsDeleted && !u1.IsDeleted && !u2.IsDeleted) .WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t, u1, u2) => t.NodeName!.Contains(queryParam.KeyWord) || t.NodeEnName!.Contains(queryParam.KeyWord)) .WhereIF(queryParam.SystemId.HasValue, (t, u1, u2) => t.SubSystemId == queryParam.SystemId.Value) .Select((t, u1, u2, u3) => new TrackNodeDto() { Id = t.Id, NodeName = t.NodeName, NodeEnName = t.NodeEnName, SubSystemId = t.SubSystemId, UpdateTime = t.UpdateTime, CreateTime = t.CreateTime, UpdateUserId = t.UpdateUserId, UpdateUserName = u2.Name, CreateUserName = u1.Name, SystemName = u3.CnName }).ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize); return result; } public async Task> GetPageDicList(TrackNodePageDto queryParam) { var result = await Context.Queryable() .Where((t) => !t.IsDeleted) .WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t) => t.NodeName!.Contains(queryParam.KeyWord) || t.NodeEnName!.Contains(queryParam.KeyWord)) .WhereIF(queryParam.SystemId.HasValue, (t) => t.SubSystemId == queryParam.SystemId.Value) .Select(t => new TrackNodeDicDto() { Id = t.Id, NodeName = t.NodeName, EnName = t.NodeEnName, }) .ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize); return result; } public Task DeleteById(long inputId) { return Context.Deleteable().Where(val => val.Id == inputId).ExecuteCommandAsync(); } public async Task GetDetail(long id) { var result = await Context.Queryable() .LeftJoin((t, u1) => t.CreateUserId == u1.Id) .LeftJoin((t, u1, u2) => t.UpdateUserId == u2.Id) .LeftJoin((t, u1, u2, u3) => t.SubSystemId == u3.Id) .Where((t, u1, u2) => !t.IsDeleted && !u1.IsDeleted && !u2.IsDeleted && t.Id == id) .Select((t, u1, u2, u3) => new TrackNodeDto() { Id = t.Id, NodeName = t.NodeName, NodeEnName = t.NodeEnName, SubSystemId = t.SubSystemId, UpdateTime = t.UpdateTime, CreateTime = t.CreateTime, UpdateUserId = t.UpdateUserId, UpdateUserName = u2.Name, CreateUserName = u1.Name, SystemName = u3.CnName }).FirstAsync(); return result; } }