using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using MySqlX.XDevAPI; using OASystem.API.OAMethodLib.JuHeAPI; using OASystem.API.OAMethodLib.YouDaoAPI; using OASystem.Domain.Dtos.Groups; using OASystem.Domain.Dtos.SmallFun; using OASystem.Domain.ViewModels.JuHeExchangeRate; using OASystem.Domain.ViewModels.SmallFun; using SqlSugar; using System.Buffers; using System.Collections.Generic; using System.Collections.Immutable; using System.Collections.Specialized; using System.Text.Json; using System.Text.Json.Nodes; using System.Transactions; using System.Xml.Linq; namespace OASystem.API.Controllers { /// /// 小功能接口 /// [Route("api/[controller]/[action]")] [ApiController] public class SmallFunController : ControllerBase { private readonly IJuHeApiService _juHeApiService; private readonly IConfiguration _config; /// /// 初始化 /// /// public SmallFunController(IJuHeApiService juHeApiService, IConfiguration config) { this._juHeApiService = juHeApiService; this._config = config; } #region 聚合API 汇率相关 /// /// 获取汇率币种 /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task GeRateCurrency() { var rateCurrencyData = AppSettingsHelper.Get("RateCurrency"); return Ok(JsonView(rateCurrencyData)); } /// /// 获取汇率费用 /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task GeExchangeRate(ExchangeRateDto rateDto) { #region 参数处理 if (string.IsNullOrEmpty(rateDto.CurrencyCodePer) || string.IsNullOrEmpty(rateDto.CurrencyCodeSuf)) { return Ok(JsonView(false, "币种参数为空!")); } if (rateDto.Money <= 0) { return Ok(JsonView(false, "转换金额 <= 0!")); } #endregion var result = await _juHeApiService.GetExchangeRateAsync(rateDto); if (result.Code != 0 || result == null) { return Ok(JsonView(false, result.Msg)); } return Ok(JsonView(result.Data)); } #endregion #region 有道API 文本翻译 /// /// 有道翻译 所有语种 /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task GetLuaguages() { var luaguages = new GetYouDaoLanguages().Luanguages; return Ok(JsonView(luaguages)); } /// /// 有道翻译 /// /// 待翻译的文本 目前只支持 中转英 /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task GetTranslate(YouDaoDto dto) { if (string.IsNullOrEmpty(dto.Txt)) { return Ok(JsonView("待翻译的文本不能为空!")); } string from = "zh-CHS", to = "en"; if (!string.IsNullOrEmpty(dto.From) && !string.IsNullOrEmpty(dto.To)) { var luaguuages = new GetYouDaoLanguages().Luanguages; var fromLuaguage = luaguuages.Where(a => a.Code == dto.From).FirstOrDefault(); var toLuaguage = luaguuages.Where(a => a.Code == dto.To).FirstOrDefault(); if (fromLuaguage == null) { return Ok(JsonView("源语言code不支持!")); } if (toLuaguage == null) { return Ok(JsonView("目标语言code不支持!")); } from = dto.From; to = dto.To; } var translateData = await YouDaoApiTools.GetReTrans(dto.Txt, from, to); if (translateData == null || translateData.Code != 0) { return Ok(JsonView(false, translateData.Msg)); } return Ok(JsonView( new { translation = translateData.Data })); } #endregion } }