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 } }