SmallFunController.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.Extensions.Options;
  4. using MySqlX.XDevAPI;
  5. using OASystem.API.OAMethodLib.JuHeAPI;
  6. using OASystem.API.OAMethodLib.YouDaoAPI;
  7. using OASystem.Domain.Dtos.Groups;
  8. using OASystem.Domain.Dtos.SmallFun;
  9. using OASystem.Domain.ViewModels.JuHeExchangeRate;
  10. using OASystem.Domain.ViewModels.SmallFun;
  11. using SqlSugar;
  12. using System.Buffers;
  13. using System.Collections.Generic;
  14. using System.Collections.Immutable;
  15. using System.Collections.Specialized;
  16. using System.Text.Json;
  17. using System.Text.Json.Nodes;
  18. using System.Transactions;
  19. using System.Xml.Linq;
  20. namespace OASystem.API.Controllers
  21. {
  22. /// <summary>
  23. /// 小功能接口
  24. /// </summary>
  25. [Route("api/[controller]/[action]")]
  26. [ApiController]
  27. public class SmallFunController : ControllerBase
  28. {
  29. private readonly IJuHeApiService _juHeApiService;
  30. private readonly IConfiguration _config;
  31. /// <summary>
  32. /// 初始化
  33. /// </summary>
  34. /// <param name="juHeApiService"></param>
  35. public SmallFunController(IJuHeApiService juHeApiService, IConfiguration config)
  36. {
  37. this._juHeApiService = juHeApiService;
  38. this._config = config;
  39. }
  40. #region 聚合API 汇率相关
  41. /// <summary>
  42. /// 获取汇率币种
  43. /// </summary>
  44. /// <returns></returns>
  45. [HttpPost]
  46. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  47. public async Task<IActionResult> GeRateCurrency()
  48. {
  49. var rateCurrencyData = AppSettingsHelper.Get<RateCurrencyModel>("RateCurrency");
  50. return Ok(JsonView(rateCurrencyData));
  51. }
  52. /// <summary>
  53. /// 获取汇率费用
  54. /// </summary>
  55. /// <returns></returns>
  56. [HttpPost]
  57. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  58. public async Task<IActionResult> GeExchangeRate(ExchangeRateDto rateDto)
  59. {
  60. #region 参数处理
  61. if (string.IsNullOrEmpty(rateDto.CurrencyCodePer) || string.IsNullOrEmpty(rateDto.CurrencyCodeSuf))
  62. {
  63. return Ok(JsonView(false, "币种参数为空!"));
  64. }
  65. if (rateDto.Money <= 0)
  66. {
  67. return Ok(JsonView(false, "转换金额 <= 0!"));
  68. }
  69. #endregion
  70. var result = await _juHeApiService.GetExchangeRateAsync(rateDto);
  71. if (result.Code != 0 || result == null)
  72. {
  73. return Ok(JsonView(false, result.Msg));
  74. }
  75. return Ok(JsonView(result.Data));
  76. }
  77. #endregion
  78. #region 有道API 文本翻译
  79. /// <summary>
  80. /// 有道翻译 所有语种
  81. /// </summary>
  82. /// <returns></returns>
  83. [HttpPost]
  84. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  85. public async Task<IActionResult> GetLuaguages()
  86. {
  87. var luaguages = new GetYouDaoLanguages().Luanguages;
  88. return Ok(JsonView(luaguages));
  89. }
  90. /// <summary>
  91. /// 有道翻译
  92. /// </summary>
  93. /// <param name="dto">待翻译的文本 目前只支持 中转英</param>
  94. /// <returns></returns>
  95. [HttpPost]
  96. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  97. public async Task<IActionResult> GetTranslate(YouDaoDto dto)
  98. {
  99. if (string.IsNullOrEmpty(dto.Txt))
  100. {
  101. return Ok(JsonView("待翻译的文本不能为空!"));
  102. }
  103. string from = "zh-CHS", to = "en";
  104. if (!string.IsNullOrEmpty(dto.From) && !string.IsNullOrEmpty(dto.To))
  105. {
  106. var luaguuages = new GetYouDaoLanguages().Luanguages;
  107. var fromLuaguage = luaguuages.Where(a => a.Code == dto.From).FirstOrDefault();
  108. var toLuaguage = luaguuages.Where(a => a.Code == dto.To).FirstOrDefault();
  109. if (fromLuaguage == null)
  110. {
  111. return Ok(JsonView("源语言code不支持!"));
  112. }
  113. if (toLuaguage == null)
  114. {
  115. return Ok(JsonView("目标语言code不支持!"));
  116. }
  117. from = dto.From;
  118. to = dto.To;
  119. }
  120. var translateData = await YouDaoApiTools.GetReTrans(dto.Txt, from, to);
  121. if (translateData == null || translateData.Code != 0)
  122. {
  123. return Ok(JsonView(false, translateData.Msg));
  124. }
  125. return Ok(JsonView( new { translation = translateData.Data }));
  126. }
  127. #endregion
  128. }
  129. }