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 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 GeTranslate(string q)
{
if (string.IsNullOrEmpty(q))
{
return Ok(JsonView("翻译的文本不能为空!"));
}
var translateData = await YouDaoApiTools.GetReTrans(q);
if (translateData == null || translateData.Code != 0)
{
return Ok(JsonView(false, translateData.Msg));
}
return Ok(JsonView( new { translation = translateData.Data }));
}
#endregion
}
}