SmallFunController.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.Extensions.Options;
  4. using OASystem.API.OAMethodLib.JuHeAPI;
  5. using OASystem.Domain.ViewModels.JuHeExchangeRate;
  6. using System.Buffers;
  7. using System.Collections.Specialized;
  8. using System.Text.Json;
  9. using System.Text.Json.Nodes;
  10. using System.Xml.Linq;
  11. namespace OASystem.API.Controllers
  12. {
  13. /// <summary>
  14. /// 小功能接口
  15. /// </summary>
  16. [Route("api/[controller]/[action]")]
  17. [ApiController]
  18. public class SmallFunController : ControllerBase
  19. {
  20. private readonly IJuHeApiService _juHeApiService;
  21. /// <summary>
  22. /// 初始化
  23. /// </summary>
  24. /// <param name="juHeApiService"></param>
  25. public SmallFunController(IJuHeApiService juHeApiService)
  26. {
  27. this._juHeApiService = juHeApiService;
  28. }
  29. #region 聚合汇率相关
  30. /// <summary>
  31. /// 获取汇率接口
  32. /// </summary>
  33. /// <returns></returns>
  34. [HttpPost]
  35. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  36. public async Task<IActionResult> GeExchangeRate()
  37. {
  38. string rateDataString = await RedisRepository.RedisFactory
  39. .CreateRedisRepository()
  40. .StringGetAsync<string>("OA2023JuHeExchangeRate");//string 取
  41. //if (string.IsNullOrEmpty(rateDataString))
  42. //{
  43. var rateData = await _juHeApiService.GetExchangeRateAsync();
  44. if (rateData.Resultcode == "200" && rateData.Error_code == 0)
  45. {
  46. var data = rateData.Result;
  47. System.Text.Json.JsonSerializer.Deserialize<ListDictionary>(data.ToJson());
  48. var node = JsonNode.Parse(data.ToJson());
  49. var responseData = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, dynamic>>(node);
  50. //var responseData = System.Text.Json.JsonSerializer.Deserialize<ExchangeRateModel>(data);
  51. //var responseData = JsonSerializer.Deserialize<Dictionary<string, dynamic>>(data);
  52. //var node = JsonNode.Parse(data.ToJson());
  53. //var myClass = node.GetValue<ExchangeRateModel>;
  54. TimeSpan ts = DateTime.Now.AddMinutes(120) - DateTime.Now; //设置redis 过期时间 比 jwt 时间 快一分钟
  55. await RedisRepository.RedisFactory.CreateRedisRepository()
  56. .StringSetAsync<string>("OA2023JuHeExchangeRate", data.ToJson(), ts);//string 存
  57. //JsonObject.Create(data, ExchangeRateModel).ToJson();
  58. }
  59. //}
  60. return Ok(JsonView(true));
  61. }
  62. #endregion
  63. /// <summary>
  64. /// 获取汇率
  65. /// </summary>
  66. /// <returns></returns>
  67. }
  68. }