MeiRiYiCheng_1_old/YBDevice.NApi/Controllers/Api/TestApiController.cs

109 lines
4.0 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using Nirvana.Common;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using YBDevice.Body.BodyFatHelper;
using YBDevice.Entity;
using YBDevice.NApi.Application.SubscriberInfo;
namespace YBDevice.NApi.Controllers.Api
{
[Route("api/[controller]/[action]")]
[ApiController]
public class TestApiController : ControllerBase
{
private readonly IBodyFatHelperService _bodyFatHelperService;
private readonly ISubscriberService _subscriberService;
public TestApiController(IBodyFatHelperService bodyFatHelperService, ISubscriberService subscriberService)
{
_bodyFatHelperService = bodyFatHelperService;
_subscriberService = subscriberService;
}
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value1" };
}
/// <summary>
/// 测试算法
/// </summary>
/// <param name="weight"></param>
/// <param name="height"></param>
/// <param name="age"></param>
/// <param name="sex"></param>
/// <param name="adc"></param>
/// <returns></returns>
[HttpGet]
public ActionResult testcalc(double weight, double height, int age, GenderType sex, int adc)
{
var data = _bodyFatHelperService.CalcBodyFat(weight, height, age, adc, sex);
return Content(data.ToJson());
}
[HttpPost]
public IActionResult testerror()
{
throw new Exception("异常测试");
}
[HttpGet]
[Authorize]
public ActionResult<IEnumerable<string>> Get2()
{
return new string[] { "value2", "value2" };
}
[HttpGet]
public async Task testsubscr()
{
await _subscriberService.DeleteUserDataAsync(new Application.DeleteUserDataS2SDto
{
DevType = 11,
FamilyId = 1723,
ResultId = Guid.Parse("08d9c530-0ef2-4514-8ee2-4be3beb2f40d"),
time = DateTime.Parse("2021-12-22 17:47:24.937"),
UserId = 1539
});
//await _subscriberService.UpdateUserHeightDataAsync(new YBDevice.Entity.UpdateUserHeightDataS2SDto
//{
// Height=128,
// familyid=1716,
// DevType=14,
// LastHeight=5.2m,
// LastResultHeightTime=DateTime.Parse("2021-11-11 14:21:21"),
// HalfYearHeight=0,
// YearHeight=0
//});
}
[HttpGet]
[AllowAnonymous]
public IActionResult Login(string username, string pwd)
{
if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(pwd))
{
var claims = new[] {
new Claim(JwtRegisteredClaimNames.Nbf,$"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),//生效时间
new Claim(JwtRegisteredClaimNames.Exp,$"{new DateTimeOffset(DateTime.Now.AddMinutes(1)).ToUnixTimeSeconds()}"),//过期时间
new Claim(ClaimTypes.Name,username)
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configs.GetString("SecureKey")));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var tokendata = new JwtSecurityToken(
issuer: "",//签发人
audience: "",//受众
claims: claims,
expires: DateTime.Now.AddMinutes(1),
signingCredentials: creds
);
string token = new JwtSecurityTokenHandler().WriteToken(tokendata);
return Content(token);
}
return Content("登录失败");
}
}
}