namespace IStation.Application
|
{
|
/// <summary>
|
/// LogicTree
|
/// </summary>
|
[Route("SZJT/Logic/Tree/Std")]
|
[ApiDescriptionSettings("SZJT", Name = "清单(Std)", Order = 69900)]
|
public class LogicTree_StdController : IDynamicApiController
|
{
|
|
|
/// <summary>
|
/// 通过 PolicyID 获取树项列表
|
/// </summary>
|
[Route("GetTreeItemListByPolicyID@V1.0")]
|
[HttpGet]
|
public List<LogicTreeItemDto> GetTreeItemListByPolicyID([FromQuery][Required] PolicyIDInput input)
|
{
|
var keyContent = $"SZJT_Logic_Tree_Std_GetTreeItemListByPolicyID_{input.PolicyID}";
|
var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
|
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
var list = new Service.LogicTree().GetExByPolicyID(input.PolicyID);
|
Service.LogicTree.PublishCache(cacheKey);
|
var vmList = list?.Select(x => new LogicTreeItemDto(x)).ToList();
|
return vmList;
|
}, CacheHelper.CacheLevel5);
|
return vm_list;
|
|
}
|
|
/// <summary>
|
/// 通过 PolicyID 获取树列表
|
/// </summary>
|
[Route("GetTreeListByPolicyID@V1.0")]
|
[HttpGet]
|
public List<LogicTreeStdDto> GetTreeListByPolicyID([FromQuery][Required] PolicyIDInput input)
|
{
|
var keyContent = $"SZJT_Logic_Tree_Std_GetTreeListByPolicyID_{input.PolicyID}";
|
var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
|
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
var list = new Service.LogicTree().GetExByPolicyID(input.PolicyID);
|
Service.LogicTree.PublishCache(cacheKey);
|
if (list == null || list.Count < 1)
|
{
|
return default;
|
}
|
var vmList = new List<LogicTreeStdDto>();
|
var tempList = new List<LogicTreeStdDto>();
|
foreach (var item in list)
|
{
|
var vm = new LogicTreeStdDto(item);
|
var vmParent = tempList.Find(x => x.ID == vm.ParentID);
|
if (vmParent == null)
|
{
|
vmList.Add(vm);
|
}
|
else
|
{
|
vmParent.Children.Add(vm);
|
}
|
tempList.Add(vm);
|
}
|
return vmList;
|
}, CacheHelper.CacheLevel5);
|
return vm_list;
|
|
}
|
|
|
|
|
}
|
}
|