using LifePayment.Application; using LifePayment.Application.Contracts; using LifePayment.Domain.Shared; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using System; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.WebClientInfo; using Volo.Abp.Identity.Application.Contracts.Account; using Volo.Abp.IdentityModel; namespace LifePayment.HttpApi { [Route("api/[controller]/[action]")] [ApiController] public class AccountController : AbpController { private readonly IAccountService _accountService; private readonly OssSettings ossSettings; private readonly IWebClientInfoProvider _webClientInfoProvider; public AccountController( IAccountService accountService, IOptionsMonitor<OssSettings> optionsMonitor, IWebClientInfoProvider webClientInfoProvider ) { _accountService = accountService; this.ossSettings = optionsMonitor.CurrentValue; _webClientInfoProvider = webClientInfoProvider; } #region life pay /// <summary> /// 获å–生活缴费用户身份会è¯ä¿¡æ¯ /// </summary> /// <param name="code">用户登录å‡è¯</param> /// <returns></returns> [HttpGet] [AllowAnonymous] public async Task<WxMiniAppIndentityInfo> GetLifePayWxIndentity(string code) { return await _accountService.GetLifePayWxIndentity(code); } /// <summary> /// life pay手机验è¯ç 登录 /// </summary> /// <param name="input"></param> /// <returns></returns> /// <exception cref="UserFriendlyException"></exception> [HttpPost] [AllowAnonymous] [ChannelFilter] public async Task<LifePayPhoneMesssageCodeLoginOutput> LifePayPhoneMesssageCodeLogin(LifePayPhoneMesssageCodeLoginInput input) { return await _accountService.LifePayPhoneMesssageCodeLogin(input); } /// <summary> /// æ ¹æ®ç”¨æˆ·ID获å–用户是å¦ä¸ºåŽå°ç®¡ç†å‘˜ /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [AllowAnonymous] [ChannelFilter] public async Task<LifePayPhoneMesssageCodeLoginOutput> LifePayUserMesssageByIduser(LifePayUserMesssageByIduserInput input) { return await _accountService.LifePayUserMesssageByIduser(input.Id); } [HttpPost] public OssSTSReponse GetOssSTS() { OssSTSHelper ossSTSHelper = new OssSTSHelper(this.ossSettings); return ossSTSHelper.GetOssSTS(); } [HttpPost] public async Task<IdentityModelTokenCacheItem> GetTokenForWeb(AccessRequestDto accessRequestDto) { var webClientIp = _webClientInfoProvider.ClientIpAddress; return await _accountService.GetTokenForWeb(accessRequestDto, webClientIp); } #endregion } }