fix 处理next空数组

This commit is contained in:
2024-03-17 20:58:11 +08:00
parent 423d90bf3d
commit 6872518b65
2 changed files with 19 additions and 9 deletions

View File

@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Kurisu.AspNetCore.Utils.Extensions;
using Newtonsoft.Json;
namespace Dlhis.Basic.Organization.Response;
@@ -26,7 +27,7 @@ public class DepartmentTreeResponse
/// 下级部门
/// </summary>
[JsonIgnore]
public List<DepartmentTreeResponse> _Next { get; set; } = new List<DepartmentTreeResponse>();
public List<DepartmentTreeResponse> CurrentNext { get; set; }
/// <summary>
/// 下级部门
@@ -35,8 +36,12 @@ public class DepartmentTreeResponse
{
get
{
_Next.ForEach(x => x.Tenant = Tenant);
return _Next;
if (CurrentNext.IsPresent())
{
CurrentNext.ForEach(x => x.Tenant = Tenant);
}
return CurrentNext;
}
}
}

View File

@@ -37,7 +37,7 @@ public class DepartmentService : IDepartmentService
No = x.Code,
PNo = null,
Tenant = x.Code,
_Next = tops.Select(item =>
CurrentNext = tops.Select(item =>
{
var i = item.Adapt<DepartmentTreeResponse>();
i.PNo = x.Code;
@@ -48,13 +48,18 @@ public class DepartmentService : IDepartmentService
.ToList();
}
private void RecursionGetNext(DepartmentTreeResponse current, List<DepartmentTreeResponse> data)
//***************************************************** help methods ****************************************************************
private static void RecursionGetNext(DepartmentTreeResponse current, List<DepartmentTreeResponse> data)
{
var next = data.Where(x => x.PNo == current.No).ToList();
current._Next = next;
if (next.Any())
{
current.CurrentNext = next;
foreach (var item in next)
{
RecursionGetNext(item, data);
}
}
}
}