using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using YD_XinWei.Commons;
using YD_XinWei.Commons.Exceptions;
using TGJ.NetworkFreight.SeckillAggregateServices.Pos.UserService;
using YD_XinWei.Api.Utilities;
using YD_XinWei.Api.WeChat.Lib;
using YD_XinWei.Api.Services.Interface;
using YD_XinWei.Api.WeChat;
namespace YD_XinWei.Api.Controllers
{
///
/// 用户
///
[ApiController]
[ApiExplorerSettings(GroupName = "v1")]
[Route("[controller]")]
public class UserController : ControllerBase
{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
_userService = userService;
}
///
/// 获取微信信息
///
///
///
[HttpPost("WXUserInfo")]
public WechatUserInfo GetWXUserInfo(WXLoginPo wXLoginPo)
{
var wli = new WechatLoginInfo();
wli.code = wXLoginPo.code;
wli.encryptedData = wXLoginPo.encryptedData;
wli.iv = wXLoginPo.iv;
wli.rawData = wXLoginPo.rawData;
wli.signature = wXLoginPo.signature;
wli.appid = AppSettings.WeChat.Appid;
wli.secret = AppSettings.WeChat.Appid;
WechatUserInfo wechatResult = new WeChatAppDecrypt().Decrypt(wli);
if (wechatResult == null || string.IsNullOrWhiteSpace(wechatResult.openId))
{
throw new BizException("用户信息获取失败");
}
return wechatResult;
}
///
/// 用户名密码登录
///
///
[HttpPost(nameof(Login))]
[AllowAnonymous]
public async Task Login([FromBody] LoginInfo paramDto)
{
var res = await _userService.Login(paramDto);
return Ok(res);
}
///
/// 微信用户登录
///
///
[HttpPost("WxLogin")]
[AllowAnonymous]
public async Task WxLogin(WXLoginPo loginPo)
{
//var id = UserLoginContext.Current.UserId;
var res = await _userService.WxLogin(loginPo);
return Ok(res);
}
///
/// 关联账号
///
///
///
[HttpGet("RelatedAccounts")]
public async Task> RelatedAccounts(Guid relevanceId)
{
var res = await _userService.RelatedAccounts(relevanceId);
return res;
}
}
}