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; using Microsoft.AspNetCore.Authorization; namespace IStation.Application { /// /// BimfaceFile /// [Route("Bimface/BimfaceFile/Logic")] [ApiDescriptionSettings("Bimface", Name = "Bimface文件", Order = 899)] public class BimfaceFile_LogicController : IDynamicApiController { /// /// 获取 AccessToken (业务) /// [Route("GetAccessToken@V1.0")] [HttpGet] public string GetAccessToken() { var cacheKey = $"Bimface_BimfaceFile_Logic_GetAccessToken"; var vm = MemoryCacheHelper.GetSet(cacheKey, () => { var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret); if (client == null) return default; return client.GetAccessToken(); }, CacheHelper.CacheLevel3); return vm; } /// /// 通过 StationID 获取默认 ViewToken (业务) /// [Route("GetDefaultViewTokenByStationID@V1.0")] [HttpGet] public string GetDefaultViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId=input.StationID; var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultViewTokenByStationID_{corpId}_{stationId}"; var vm = MemoryCacheHelper.GetSet(cacheKey, () => { var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId,ObjectType.Station,stationId); if (fileMapping == null) return default; var file = new Service.BimfaceFile().GetByID(corpId,fileMapping.BimfaceFileID); if (file == null) return default; var client = BimfaceClient.GetClient(ConfigHelper.AppKey,ConfigHelper.AppSecret); if (client == null) return default; return client.GetViewToken(file.BimfaceID); },CacheHelper.CacheLevel4); return vm; } /// /// 通过 StationID 获取默认 ViewToken (业务)(不需要验证token) /// [AllowAnonymous] [Route("GetDefaultViewTokenByStationID@V1.1")] [HttpGet] public string GetDefaultViewTokenByStationIDWithOutToken([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultViewTokenByStationID_{corpId}_{stationId}"; var vm = MemoryCacheHelper.GetSet(cacheKey, () => { var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId); if (fileMapping == null) return default; var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID); if (file == null) return default; var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret); if (client == null) return default; return client.GetViewToken(file.BimfaceID); }, CacheHelper.CacheLevel4); return vm; } /// /// 通过 BimfaceID(Bimface平台标识) 获取 ViewToken (业务) /// [Route("GetViewTokenByBimfaceID@V1.0")] [HttpGet] public string GetViewTokenByBimfaceID([Required] long BimfaceID) { var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret); if (client == null) return default; return client.GetViewToken(BimfaceID); } /// /// 通过 BimfaceID(Bimface平台标识) 获取 ViewToken (业务) /// [AllowAnonymous] [Route("GetViewTokenByBimfaceID@V1.1")] [HttpGet] public string GetViewTokenByBimfaceID_V1_1([Required] long BimfaceID) { var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret); if (client == null) return default; return client.GetViewToken(BimfaceID); } /// /// 通过 StationID 获取默认 (业务) /// [Route("GetDefaultByStationID@V1.0")] [HttpGet] public BimfaceFileLogicDto GetDefaultByStationID([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultByStationID_{corpId}_{stationId}"; var vm = MemoryCacheHelper.GetSet(cacheKey, () => { var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId); if (fileMapping == null) return default; var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID); if (file == null) return default; var vmCache = new BimfaceFileLogicDto(file,fileMapping); return vmCache; }, CacheHelper.CacheLevel3); return vm; } /// /// 通过 StationID 获取默认带ViewToken (业务) /// [Route("GetDefaultWithViewTokenByStationID@V1.0")] [HttpGet] public BimfaceFileWithViewTokenLogicDto GetDefaultWithViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultWithViewTokenByStationID_{corpId}_{stationId}"; var vm = MemoryCacheHelper.GetSet(cacheKey, () => { var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId); if (fileMapping == null) return default; var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID); if (file == null) return default; var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret); if (client == null) return default; var viewToken= client.GetViewToken(file.BimfaceID); var vmCache = new BimfaceFileWithViewTokenLogicDto(file, fileMapping, viewToken); return vmCache; }, CacheHelper.CacheLevel3); return vm; } /// /// 通过 StationID 获取默认带ViewToken (业务)(不需要验证token) /// [AllowAnonymous] [Route("GetDefaultWithViewTokenByStationID@V1.1")] [HttpGet] public BimfaceFileWithViewTokenLogicDto GetDefaultWithViewTokenByStationIDWithOutToken([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultWithViewTokenByStationID_{corpId}_{stationId}"; var vm = MemoryCacheHelper.GetSet(cacheKey, () => { var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId); if (fileMapping == null) return default; var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID); if (file == null) return default; var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret); if (client == null) return default; var viewToken = client.GetViewToken(file.BimfaceID); var vmCache = new BimfaceFileWithViewTokenLogicDto(file, fileMapping, viewToken); return vmCache; }, CacheHelper.CacheLevel3); return vm; } } }