namespace IStation.Application
{
///
/// LogicTree
///
[Route("SZJT/Logic/Tree/Std")]
[ApiDescriptionSettings("SZJT", Name = "清单(Std)", Order = 69900)]
public class LogicTree_StdController : IDynamicApiController
{
///
/// 通过 PolicyID 获取树项列表
///
[Route("GetTreeItemListByPolicyID@V1.0")]
[HttpGet]
public List 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;
}
///
/// 通过 PolicyID 获取树列表
///
[Route("GetTreeListByPolicyID@V1.0")]
[HttpGet]
public List 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();
var tempList = new List();
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;
}
}
}