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; } } }