| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using Admin.NET.Plugin.AiDOP.Dto.S8;
- using Admin.NET.Plugin.AiDOP.Entity.S8;
- namespace Admin.NET.Plugin.AiDOP.Service.S8;
- public class S8SceneTreeService : ITransient
- {
- private readonly SqlSugarRepository<AdoS8SceneTree> _rep;
- public S8SceneTreeService(SqlSugarRepository<AdoS8SceneTree> rep) => _rep = rep;
- public async Task<List<AdoS8SceneTreeNodeDto>> GetSceneTreeAsync(long tenantId, long factoryId)
- {
- var nodes = await _rep.AsQueryable()
- .Where(x => (x.TenantId == 0 || x.TenantId == tenantId)
- && (x.FactoryId == 0 || x.FactoryId == factoryId)
- && x.Enabled)
- .OrderBy(x => x.SortNo)
- .OrderBy(x => x.Id)
- .ToListAsync();
- return BuildTree(nodes, null);
- }
- private static List<AdoS8SceneTreeNodeDto> BuildTree(List<AdoS8SceneTree> nodes, long? parentId) =>
- nodes
- .Where(n => n.ParentId == parentId)
- .Select(n => new AdoS8SceneTreeNodeDto
- {
- Id = n.Id,
- ParentId = n.ParentId,
- NodeCode = n.NodeCode,
- NodeName = n.NodeName,
- Level = n.Level,
- Path = n.Path,
- SModule = n.SModule,
- IsLeaf = n.IsLeaf,
- Disabled = !n.IsLeaf,
- Children = BuildTree(nodes, n.Id),
- })
- .ToList();
- }
|