using LifePayment.Application.Contracts;
using LifePayment.Domain.Shared;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.WebClientInfo;
using ZeroD.Util;
namespace LifePayment.HttpApi
{
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize]
public class LifePayController : AbpController
{
private readonly ILifePayService _lifePayService;
private readonly IWebClientInfoProvider _webClientInfoProvider;
public LifePayController(
ILifePayService lifePayService,
IWebClientInfoProvider webClientInfoProvider
)
{
_lifePayService = lifePayService;
_webClientInfoProvider = webClientInfoProvider;
}
#region 查询
///
/// 获取电费面值
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetElectricParValue(ChannelsBaseInput input)
{
return await _lifePayService.GetElectricParValue();
}
///
/// 获取电费充值区域
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetElectricSupportArea(ChannelsBaseInput input)
{
var aresResult = await _lifePayService.GetElectricSupportArea();
var parValues = await _lifePayService.GetElectricParValue();
foreach (var item in aresResult.ElectricAreaList)
{
var paritem = parValues.ElectricParValue.Where(r => r.AreaName == item.CityName).FirstOrDefault();
if (paritem != null)
{
item.ElectricType = paritem.ElectricType;
item.ParValue = paritem.ParValue;
item.Rate = paritem.Rate;
}
}
return aresResult;
}
///
/// 获取话费面值
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetPhoneParValue(ChannelsBaseInput input)
{
return await _lifePayService.GetPhoneParValue();
}
///
/// 获取燃气面值
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetGasParValue(ChannelsBaseInput input)
{
return await _lifePayService.GetGasParValue();
}
///
/// 获取燃气支持商户
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetGasOrgType(ChannelsBaseInput input)
{
return await _lifePayService.GetGasOrgType();
}
///
/// 获取折扣
///
///
[HttpGet]
[AllowAnonymous]
public async Task> GetRate()
{
return await _lifePayService.GetRate();
}
///
/// 获取用户分页数据
///
///
///
[HttpPost]
public async Task> GetUserPage(PageInput input)
{
return await _lifePayService.GetUserPage(input);
}
///
/// 获取订单分页数据
///
///
///
[HttpPost]
public async Task> GetLifePayOrderPage(QueryLifePayOrderListInput input)
{
return await _lifePayService.GetLifePayOrderPage(input);
}
///
/// 获取我的订单分页数据
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task> GetUserLifePayOrderPage(QueryLifePayOrderListInput input)
{
return await _lifePayService.GetUserLifePayOrderPage(input);
}
///
/// 获取我的订单详情
///
///
///
[HttpGet]
[AllowAnonymous]
public async Task GetUserLifePayOrderDetail(string orderNo)
{
return await _lifePayService.GetUserLifePayOrderDetail(orderNo);
}
///
/// 根据订单号获取支付状态
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetPayStatusByOrderNo(GetPayStatusByOrderNoInput input)
{
return await _lifePayService.GetPayStatusByOrderNo(input.OrderNo);
}
///
/// 获取缴费渠道列表
///
///
///
[HttpPost]
public async Task> GetLifePayChannlesPage(PageInput input)
{
return await _lifePayService.GetLifePayChannlesPage(input);
}
///
/// 获取渠道详情
///
///
///
[HttpGet]
public async Task GetLifePayChannlesDto(Guid id)
{
return await _lifePayService.GetLifePayChannlesDto(id);
}
///
/// 用户查看生活缴费退款失败详情
///
///
///
///
[HttpGet]
[AllowAnonymous]
public async Task GetUserLifePayOrderRefund(Guid id)
{
return await _lifePayService.GetUserLifePayOrderRefund(id);
}
///
/// 获取用户户号分页数据
///
///
///
[HttpPost]
public async Task> GetAccountPage(QueryUserAccountListInput input)
{
return await _lifePayService.GetAccountPage(input);
}
///
/// 获取我的户号列表
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task> GetUserAccountList(QueryUserAccountListInput input)
{
return await _lifePayService.GetUserAccountList(input);
}
///
/// 获取我的全部户号列表
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task> GetUserAccountAllList(QueryUserAccountAllListInput input)
{
return await _lifePayService.GetUserAccountAllList(input);
}
///
/// 获取我的户号详情
///
///
///
[HttpGet]
[AllowAnonymous]
public async Task GetUserAccountDetail(Guid id)
{
return await _lifePayService.GetUserAccountDetail(id);
}
///
/// 导出订单Excel
///
///
///
[HttpPost]
public async Task GetLifePayOrderPageExport(QueryLifePayOrderListInput input)
{
var data = await _lifePayService.GetLifePayOrderPageExport(input);
if (data.Any())
{
var bytes = ExcelHelper.ListToByteForExcel(data, "xlsx");
return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "订单管理" + ".xlsx");
}
return Json(default);
}
#endregion
#region 操作
///
/// 创建生活缴费话费订单
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task CreateLifePayPhoneOrder(CreateLifePayOrderInput input)
{
return await _lifePayService.CreateLifePayPhoneOrder(input);
}
///
/// 创建生活缴费电费订单
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task CreateLifePayElectricOrder(CreateLifePayOrderInput input)
{
return await _lifePayService.CreateLifePayElectricOrder(input);
}
///
/// 创建生活缴费燃气订单
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task CreateLifePayGasOrder(CreateLifePayOrderInput input)
{
return await _lifePayService.CreateLifePayGasOrder(input);
}
///
/// 退款生活缴费订单
///
///
///
///
[HttpPost]
public async Task RefundLifePayOrder(RefundLifePayOrderInput input)
{
await _lifePayService.RefundLifePayOrder(input);
return Constant.SUCCESS;
}
///
/// 用户发起生活缴费退款
///
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task RefundUserLifePayOrder(RefundUserLifePayOrderInput input)
{
await _lifePayService.RefundUserLifePayOrder(input);
return Constant.SUCCESS;
}
///
/// 添加或修改我的户号
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task AddUpdateUserAccount(AddUpdateUserAccountInput input)
{
await _lifePayService.AddUpdateUserAccount(input);
return Constant.SUCCESS;
}
///
/// 删除我的户号
///
///
///
[HttpPost]
[AllowAnonymous]
public async Task DeleteUserAccount(Guid id)
{
await _lifePayService.DeleteUserAccount(id);
return Constant.SUCCESS;
}
///
/// 退款驳回
///
///
///
[HttpPost]
public async Task RejectRefundLifePayOrder(RefundLifePayOrderInput input)
{
await _lifePayService.RejectRefundLifePayOrder(input);
return Constant.SUCCESS;
}
///
/// 渠道管理
///
///
///
[HttpPost]
public async Task CreateEditPayChannels(CreateEditPayChannelsInput input)
{
await _lifePayService.CreateEditPayChannels(input);
return Constant.SUCCESS;
}
///
/// 设置渠道启用状态
///
///
///
///
[HttpGet]
public async Task SetLifePayChannelsStatus(Guid id, LifePayChannelsStatsEnum status)
{
await _lifePayService.SetLifePayChannelsStatus(id, status);
return Constant.SUCCESS;
}
///
/// 折扣配置
///
///
///
[HttpPost]
public async Task CreateEditLifePayRate(List input)
{
await _lifePayService.CreateEditLifePayRate(input);
return Constant.SUCCESS;
}
///
/// 设置生活缴费支付类型
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task SetLifePayOrderPayType(SetLifePayOrderPayTypeInput input)
{
return await _lifePayService.SetLifePayOrderPayType(input, _webClientInfoProvider.ClientIpAddress);
}
///
/// 获取微信支付的JSAPI
///
///
///
[HttpPost]
[AllowAnonymous]
[ChannelFilter]
public async Task GetPayOrderForJsAPI(GetPayOrderForJsAPIInput input)
{
return await _lifePayService.GetPayOrderForJsAPI(input, _webClientInfoProvider.ClientIpAddress);
}
#endregion
}
}