using Microsoft.AspNetCore.Mvc; using System.Net; using System.Net.Http.Headers; using Microsoft.Extensions.Hosting.Internal; using Microsoft.AspNetCore.Http.Extensions; using IStation.Untity; using Furion.DynamicApiController; using System.ComponentModel.DataAnnotations; using Mapster; namespace IStation.Application { /// /// Station /// [Route("Main/Station/Mobile")] [ApiDescriptionSettings("Main", Name = "泵站(手机)", Order = 899)] public class Station_MobileController : IDynamicApiController { /// /// 通过 CorpID 获取默认组列表(手机) /// [Route("GetDefaultGroupListByCorpID@V1.0")] [HttpGet] public List GetDefaultGroupListByCorpID([FromQuery][Required] CorpIDInput input) { var corpId = input.CorpID; var cacheKey = $"Main_Station_Mobile_GetDefaultGroupListByCorpID_{corpId}"; var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { //泵站列表 var stationList = new Service.Station().GetByCorpID(corpId); if (stationList == null || stationList.Count < 1) return default; //第一个业务类别 var logicCatalog = new Service.LogicCatalog().GetFirstByCorpID(corpId); if (logicCatalog == null) return default; //业务清单列表 var logicTreeList = new Service.LogicTree().GetByCatalogID(corpId,logicCatalog.ID); if (logicTreeList == null || logicTreeList.Count < 1) return default; //业务区域列表 var logicAreaList = new Service.LogicArea().GetByCatalogID(corpId,logicCatalog.ID); //遍历业务清单 var vmList = new List(); foreach (var logicTree in logicTreeList) { if (logicTree.LogicType == ObjectType.LogicArea) { if (logicTreeList.Exists(t => t.ParentIds.LastOrDefault() == logicTree.ID && t.LogicType == ObjectType.Station)) { var logicArea = logicAreaList.Find(t => t.ID == logicTree.LogicID); var vm = new StationGroupMobileDto(); vm.ID = logicArea.ID; vm.Name = logicArea.Name; vm.Description = logicArea.Description; vm.Items = new List(); vmList.Add(vm); } } else if (logicTree.LogicType == ObjectType.Station) { var station = stationList.Find(t=>t.ID==logicTree.LogicID); var item = new StationItemMobileDto(); item.ID = station.ID; item.Name = station.Name; item.Address = station.Address; item.Description = station.Description; var parent = logicTreeList.Find(t=>t.ID==logicTree.ParentIds.LastOrDefault()); if (parent == null) { var group = vmList.Find(t => t.ID == 0); if (group == null) { group = new StationGroupMobileDto(); group.ID = 0; group.Name = "未分组"; group.Description = string.Empty; group.Items = new List(); vmList.Add(group); } group.Items.Add(item); } else { var group = vmList.Find(t=>t.ID==parent.LogicID); group.Items.Add(item); } } } return vmList; },CacheHelper.CacheLevel1); return vm_list; } /// /// 获取关注列表(手机) /// [Route("GetAttentionList@V1.0")] [HttpGet] public List GetAttentionList() { var userId = UserManager.UserID; var cacheKey = $"Main_Station_Mobile_GetAttentionList_{userId}"; var vmList = MemoryCacheHelper.GetSet(cacheKey, () => { var attentionList = new Service.UserAttention().GetByUserIDAndObjectType(UserManager.UserID, IStation.ObjectType.Station); if (attentionList == null || attentionList.Count < 1) return default; var stationService = new Service.Station(); var vmCacheList = new List(); foreach (var attention in attentionList) { var station = stationService.GetByID(attention.CorpID,attention.ObjectID); if (station != null && station.UseStatus == Model.eUseStatus.Enable) { var vmCache=new StationAttentionMobileDto(station); vmCacheList.Add(vmCache); } } return vmCacheList; }, CacheHelper.CacheLevel1); return vmList; } } }