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 { /// /// 用户 /// [ApiController] [ApiExplorerSettings(GroupName = "v1")] [Route("[controller]")] public class UserController : ControllerBase { private readonly IUserService _userService; public UserController(IUserService userService) { _userService = userService; } /// /// 获取微信信息 /// /// /// [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; } /// /// 用户名密码登录 /// /// [HttpPost(nameof(Login))] [AllowAnonymous] public async Task Login([FromBody] LoginInfo paramDto) { var res = await _userService.Login(paramDto); return Ok(res); } /// /// 微信用户第一次登录 /// /// [HttpPost("WxFirstLogin")] [AllowAnonymous] public async Task WxFirstLogin([FromBody] WXLoginPo loginPo) { //var id = UserLoginContext.Current.UserId; var res = await _userService.WxFirstLogin(loginPo); return Ok(res); } /// /// 移除唯一标识 /// /// [HttpPost("RemoveUniqueIdentity")] [AllowAnonymous] public async Task RemoveUniqueIdentity(string userId) { await _userService.RemoveUniqueIdentity(userId); return Ok("移除成功"); } /// /// 验证唯一标识 /// /// [HttpPost("VerifyUniqueIdentity")] [AllowAnonymous] public async Task VerifyUniqueIdentity(string userId, string openId) { var res = await _userService.VerifyUniqueIdentity(userId, openId); return res; } /// /// 获取OpenId /// /// [HttpGet("GetWxOpenID")] [AllowAnonymous] public async Task GetWxOpenID(string code) { var res = await _userService.GetWxOpenID(code); return res; } /// /// 微信用户登录 /// /// [HttpPost("WxLogin")] [AllowAnonymous] public async Task WxLogin([FromBody] WXLoginPo loginPo) { //var id = UserLoginContext.Current.UserId; var res = await _userService.WxLogin(loginPo.code); return Ok(res); } /// /// 获取关联账号 /// /// [HttpGet("RelatedAccounts")] public async Task> RelatedAccounts() { var res = await _userService.RelatedAccounts(); return res; } /// /// 刷新Token /// /// /// [HttpPost("ReplaceToken")] [AllowAnonymous] public async Task ReplaceToken(string requestToken) { var res = await _userService.ReplaceToken(requestToken); return res; } /// /// 添加关联账号 /// /// [HttpPost("AddRelatedAccounts")] public async Task AddRelatedAccounts([FromBody] AddRelatedAccountsDto dto) { await _userService.AddRelatedAccounts(dto); return Ok("添加成功"); } /// /// 获取个人信息 /// /// [HttpGet("PersonalInfo")] public async Task PersonalInfo() { var res = await _userService.PersonalInfo(); return res; } /// /// 更新个人信息 /// /// /// [HttpPost("UpdatePersonalInfo")] public async Task UpdatePersonalInfo([FromBody] PersonalInfoDto dto) { await _userService.UpdatePersonalInfo(dto); return Ok("更新成功"); } /// /// 上传头像 /// /// /// [HttpPost(nameof(UploadPhoto))] public async Task UploadPhoto(IFormFile file) { var url = await _userService.UploadPhoto(file); return url; } } }