using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using OASystem.API.OAMethodLib.JuHeAPI; using OASystem.Domain.ViewModels.JuHeExchangeRate; using System.Buffers; using System.Collections.Specialized; using System.Text.Json; using System.Text.Json.Nodes; using System.Xml.Linq; namespace OASystem.API.Controllers { /// <summary> /// 小功能接口 /// </summary> [Route("api/[controller]/[action]")] [ApiController] public class SmallFunController : ControllerBase { private readonly IJuHeApiService _juHeApiService; /// <summary> /// 初始化 /// </summary> /// <param name="juHeApiService"></param> public SmallFunController(IJuHeApiService juHeApiService) { this._juHeApiService = juHeApiService; } #region 聚合汇率相关 /// <summary> /// 获取汇率接口 /// </summary> /// <returns></returns> [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task<IActionResult> GeExchangeRate() { string rateDataString = await RedisRepository.RedisFactory .CreateRedisRepository() .StringGetAsync<string>("OA2023JuHeExchangeRate");//string 取 //if (string.IsNullOrEmpty(rateDataString)) //{ var rateData = await _juHeApiService.GetExchangeRateAsync(); if (rateData.Resultcode == "200" && rateData.Error_code == 0) { var data = rateData.Result; System.Text.Json.JsonSerializer.Deserialize<ListDictionary>(data.ToJson()); var node = JsonNode.Parse(data.ToJson()); var responseData = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, dynamic>>(node); //var responseData = System.Text.Json.JsonSerializer.Deserialize<ExchangeRateModel>(data); //var responseData = JsonSerializer.Deserialize<Dictionary<string, dynamic>>(data); //var node = JsonNode.Parse(data.ToJson()); //var myClass = node.GetValue<ExchangeRateModel>; TimeSpan ts = DateTime.Now.AddMinutes(120) - DateTime.Now; //设置redis 过期时间 比 jwt 时间 快一分钟 await RedisRepository.RedisFactory.CreateRedisRepository() .StringSetAsync<string>("OA2023JuHeExchangeRate", data.ToJson(), ts);//string 存 //JsonObject.Create(data, ExchangeRateModel).ToJson(); } //} return Ok(JsonView(true)); } #endregion /// <summary> /// 获取汇率 /// </summary> /// <returns></returns> } }