208 lines
6.1 KiB
C#
Raw Permalink Normal View History

2025-06-06 14:57:20 +08:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using YD_WeChatApplet.Commons;
using YD_WeChatApplet.Services;
using YD_WeChatApplet.WeChat.Lib;
using YD_WeChatApplet.WeChat;
using TGJ.NetworkFreight.SeckillAggregateServices.Pos.UserService;
using YD_WeChatApplet.Api.Utilities;
using System.Net.Http;
using YD_WeChatApplet.Api.Entitys;
using YD_WeChatApplet.Commons.Users;
using YD_WeChatApplet.Commons.Dto.Teacher;
using YD_WeChatApplet.Commons.Dto;
using YD_WeChatApplet.Api.Services.Impl;
using YD_WeChatApplet.Commons.Dto.User;
namespace YD_WeChatApplet.Controllers
{
/// <summary>
/// <20>û<EFBFBD>
/// </summary>
[ApiController]
[ApiExplorerSettings(GroupName = "v1")]
[Route("[controller]")]
public class UserController : ControllerBase
{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
_userService = userService;
}
/// <summary>
/// <20><>ȡ΢<C8A1><CEA2><EFBFBD><EFBFBD>Ϣ
/// </summary>
/// <param name="wXLoginPo"></param>
/// <returns></returns>
[HttpPost("WXUserInfo")]
[AllowAnonymous]
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 Exception("<22>û<EFBFBD><C3BB><EFBFBD>Ϣ<EFBFBD><CFA2>ȡʧ<C8A1><CAA7>");
}
return wechatResult;
}
/// <summary>
/// <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
/// </summary>
/// <returns></returns>
[HttpPost(nameof(Login))]
[AllowAnonymous]
public async Task<IActionResult> Login([FromBody] LoginInfo paramDto)
{
var res = await _userService.Login(paramDto);
return Ok(res);
}
/// <summary>
/// ΢<><CEA2><EFBFBD>û<EFBFBD><C3BB><EFBFBD>һ<EFBFBD>ε<EFBFBD>¼
/// </summary>
/// <returns></returns>
[HttpPost("WxFirstLogin")]
[AllowAnonymous]
public async Task<IActionResult> WxFirstLogin([FromBody] WXLoginPo loginPo)
{
//var id = UserLoginContext.Current.UserId;
var res = await _userService.WxFirstLogin(loginPo);
return Ok(res);
}
/// <summary>
/// <20>Ƴ<EFBFBD>Ψһ<CEA8><D2BB>ʶ
/// </summary>
/// <returns></returns>
[HttpPost("RemoveUniqueIdentity")]
[AllowAnonymous]
2025-06-13 13:33:50 +08:00
public async Task<bool> RemoveUniqueIdentity(string userId)
2025-06-06 14:57:20 +08:00
{
await _userService.RemoveUniqueIdentity(userId);
2025-06-13 13:33:50 +08:00
return true;
2025-06-06 14:57:20 +08:00
}
/// <summary>
/// <20><>֤Ψһ<CEA8><D2BB>ʶ
/// </summary>
/// <returns></returns>
[HttpPost("VerifyUniqueIdentity")]
[AllowAnonymous]
public async Task<bool> VerifyUniqueIdentity(string userId, string openId)
{
var res = await _userService.VerifyUniqueIdentity(userId, openId);
return res;
}
/// <summary>
/// <20><>ȡOpenId
/// </summary>
/// <returns></returns>
[HttpGet("GetWxOpenID")]
[AllowAnonymous]
public async Task<string> GetWxOpenID(string code)
{
var res = await _userService.GetWxOpenID(code);
return res;
}
/// <summary>
/// ΢<><CEA2><EFBFBD>û<EFBFBD><C3BB><EFBFBD>¼
/// </summary>
/// <returns></returns>
[HttpPost("WxLogin")]
[AllowAnonymous]
public async Task<IActionResult> WxLogin([FromBody] WXLoginPo loginPo)
{
//var id = UserLoginContext.Current.UserId;
var res = await _userService.WxLogin(loginPo.code);
return Ok(res);
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>
/// </summary>
/// <returns></returns>
[HttpGet("RelatedAccounts")]
public async Task<List<RelatedAccountsDto>> RelatedAccounts()
{
var res = await _userService.RelatedAccounts();
return res;
}
/// <summary>
/// ˢ<><CBA2>Token
/// </summary>
/// <param name="requestToken"></param>
/// <returns></returns>
[HttpPost("ReplaceToken")]
[AllowAnonymous]
public async Task<UserInfoDto> ReplaceToken(string requestToken)
{
var res = await _userService.ReplaceToken(requestToken);
return res;
}
/// <summary>
/// <20><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD>˺<EFBFBD>
/// </summary>
/// <returns></returns>
[HttpPost("AddRelatedAccounts")]
public async Task<IActionResult> AddRelatedAccounts([FromBody] AddRelatedAccountsDto dto)
{
await _userService.AddRelatedAccounts(dto);
return Ok("<22><><EFBFBD>ӳɹ<D3B3>");
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// </summary>
/// <returns></returns>
[HttpGet("PersonalInfo")]
public async Task<PersonalInfoDto> PersonalInfo()
{
var res = await _userService.PersonalInfo();
return res;
}
/// <summary>
/// <20><><EFBFBD>¸<EFBFBD><C2B8><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost("UpdatePersonalInfo")]
public async Task<IActionResult> UpdatePersonalInfo([FromBody] PersonalInfoDto dto)
{
await _userService.UpdatePersonalInfo(dto);
return Ok("<22><><EFBFBD>³ɹ<C2B3>");
}
/// <summary>
/// <20>ϴ<EFBFBD>ͷ<EFBFBD><CDB7>
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost(nameof(UploadPhoto))]
public async Task<string> UploadPhoto(IFormFile file)
{
var url = await _userService.UploadPhoto(file);
return url;
}
}
}