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.Http; using Furion.DependencyInjection; using Microsoft.AspNetCore.Authorization; using Furion.DataEncryption; using Furion.FriendlyException; namespace IStation.Application { /// /// Bimface /// [AllowAnonymous] [Route("LargeScreen/Demo/Bimface")] [ApiDescriptionSettings("LargeScreen", Name = "Demo(Bimface)", Order = 666)] public class DemoBimface_Controller : IDynamicApiController, ITransient { private readonly IHttpContextAccessor _httpContextAccessor; /// /// /// public DemoBimface_Controller(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } /// /// 通过 StationID 获取默认 ViewToken /// [Route("GetDefaultViewTokenByStationID")] [HttpGet] public string GetDefaultViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var cacheKey = $"LargeScreen_Demo_Bimface_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 /// [Route("GetDefaultWithViewTokenByStationID")] [HttpGet] public DemoBimfaceFileWithViewTokenDto GetDefaultWithViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var cacheKey = $"LargeScreen_Demo_Bimface_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 DemoBimfaceFileWithViewTokenDto(file, fileMapping, viewToken); return vmCache; }, CacheHelper.CacheLevel3); return vm; } } }