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<Guid> LifePayPhoneMesssageCodeLogin(LifePayPhoneMesssageCodeLoginInput input)
|
{
|
return await _accountService.LifePayPhoneMesssageCodeLogin(input);
|
}
|
|
[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
|
|
|
}
|
}
|