208 lines
6.1 KiB
C#
208 lines
6.1 KiB
C#
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>
|
|
/// 用户
|
|
/// </summary>
|
|
[ApiController]
|
|
[ApiExplorerSettings(GroupName = "v1")]
|
|
[Route("[controller]")]
|
|
public class UserController : ControllerBase
|
|
{
|
|
private readonly IUserService _userService;
|
|
public UserController(IUserService userService)
|
|
{
|
|
_userService = userService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取微信信息
|
|
/// </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("用户信息获取失败");
|
|
}
|
|
|
|
return wechatResult;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 用户名密码登录
|
|
/// </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>
|
|
/// 微信用户第一次登录
|
|
/// </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>
|
|
/// 移除唯一标识
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost("RemoveUniqueIdentity")]
|
|
[AllowAnonymous]
|
|
public async Task<IActionResult> RemoveUniqueIdentity(string userId)
|
|
{
|
|
await _userService.RemoveUniqueIdentity(userId);
|
|
return Ok("移除成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证唯一标识
|
|
/// </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>
|
|
/// 获取OpenId
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("GetWxOpenID")]
|
|
[AllowAnonymous]
|
|
public async Task<string> GetWxOpenID(string code)
|
|
{
|
|
var res = await _userService.GetWxOpenID(code);
|
|
return res;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 微信用户登录
|
|
/// </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>
|
|
/// 获取关联账号
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("RelatedAccounts")]
|
|
public async Task<List<RelatedAccountsDto>> RelatedAccounts()
|
|
{
|
|
var res = await _userService.RelatedAccounts();
|
|
return res;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 刷新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>
|
|
/// 添加关联账号
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost("AddRelatedAccounts")]
|
|
public async Task<IActionResult> AddRelatedAccounts([FromBody] AddRelatedAccountsDto dto)
|
|
{
|
|
await _userService.AddRelatedAccounts(dto);
|
|
return Ok("添加成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取个人信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("PersonalInfo")]
|
|
public async Task<PersonalInfoDto> PersonalInfo()
|
|
{
|
|
var res = await _userService.PersonalInfo();
|
|
return res;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新个人信息
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("UpdatePersonalInfo")]
|
|
public async Task<IActionResult> UpdatePersonalInfo([FromBody] PersonalInfoDto dto)
|
|
{
|
|
await _userService.UpdatePersonalInfo(dto);
|
|
return Ok("更新成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 上传头像
|
|
/// </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;
|
|
}
|
|
}
|
|
} |