82 lines
3.5 KiB
C#
82 lines
3.5 KiB
C#
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<TrackNodeEntity>, ITrackNodeRepository, IScopedDependency
|
|
{
|
|
public async Task<UnifyPageResultDto<TrackNodeDto>> GetPageList(TrackNodePageDto queryParam)
|
|
{
|
|
var result = await Context.Queryable<TrackNodeEntity>()
|
|
.LeftJoin<VUserEntity>((t, u1) => t.CreateUserId == u1.Id)
|
|
.LeftJoin<VUserEntity>((t, u1, u2) => t.UpdateUserId == u2.Id)
|
|
.LeftJoin<VSystemEntity>((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<UnifyPageResultDto<TrackNodeDicDto>> GetPageDicList(TrackNodePageDto queryParam)
|
|
{
|
|
var result = await Context.Queryable<TrackNodeEntity>()
|
|
.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<int> DeleteById(long inputId)
|
|
{
|
|
return Context.Deleteable<TrackNodeEntity>().Where(val => val.Id == inputId).ExecuteCommandAsync();
|
|
}
|
|
|
|
public async Task<TrackNodeDto> GetDetail(long id)
|
|
{
|
|
var result = await Context.Queryable<TrackNodeEntity>()
|
|
.LeftJoin<VUserEntity>((t, u1) => t.CreateUserId == u1.Id)
|
|
.LeftJoin<VUserEntity>((t, u1, u2) => t.UpdateUserId == u2.Id)
|
|
.LeftJoin<VSystemEntity>((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;
|
|
}
|
|
}
|