using LifePayment.Application;
|
using LifePayment.Application.Contracts;
|
using LifePayment.Domain.Shared;
|
using Microsoft.AspNetCore.Components.Forms;
|
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Options;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using Volo.Abp.Domain.Services;
|
using Volo.Abp.Users;
|
using ZeroD.Util.Fadd;
|
|
namespace LifePayment.Domain;
|
|
public class ACOOLYManager : ACOOLYClient, IACOOLYManager
|
{
|
private readonly ILogger<ACOOLYClient> _logger;
|
private readonly ACOOLYOption _options;
|
|
public ACOOLYManager(ILogger<ACOOLYClient> logger, IOptionsMonitor<ACOOLYOption> optionsMonitor) : base(logger, optionsMonitor)
|
{
|
_logger = logger;
|
_options = optionsMonitor.CurrentValue;
|
}
|
|
#region 燃气
|
|
/// <summary>
|
/// 获取燃气面值
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<GasParValueResponse> GasParValue(GasParValueRequestInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.GasParValue);
|
return await PostAsync<GasParValueRequestInput, GasParValueResponse>(input);
|
}
|
|
/// <summary>
|
/// 提交燃气订单
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<ConfirmGasOrderResponse> ConfirmGasOrder(ConfirmGasOrderRequestInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.ConfirmGasOrder);
|
return await PostAsync<ConfirmGasOrderRequestInput, ConfirmGasOrderResponse>(input);
|
}
|
|
#endregion
|
|
#region 电费
|
|
/// <summary>
|
/// 获取电费面值
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<ElectricParValueResponse> ElectricParValue(ACOOLYRequestBaseInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.ElectricParValue);
|
|
#if DEBUG
|
|
//return new ElectricParValueResponse
|
//{
|
// Code = ACOOLYConstant.Code.SUCCESS,
|
// ElectricParValue = new List<ElectricParValueOutput>()
|
// {
|
// new ElectricParValueOutput()
|
// {
|
// AreaName = "北京",
|
// Comments = "测试数据",
|
// ElectricType = "guowang",
|
// ParValue = "100,200,300",
|
// Rate = 0.93m
|
// },
|
|
// new ElectricParValueOutput()
|
// {
|
// AreaName = "上海",
|
// Comments = "测试数据",
|
// ElectricType = "nanwang",
|
// ParValue = "100,200,300",
|
// Rate = 0.93m
|
// }
|
|
// },
|
// RequestNo = input.RequestNo,
|
// Service = input.Service,
|
// PartnerId = input.PartnerId,
|
// Success = "true",
|
//};
|
|
#endif
|
|
return await PostAsync<ACOOLYRequestBaseInput, ElectricParValueResponse>(input);
|
}
|
|
/// <summary>
|
/// 获取电费充值区域
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<ElectricSupportAreaResponse> GetElectricSupportArea(ACOOLYRequestBaseInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.ElectricSupportArea);
|
|
return await PostAsync<ACOOLYRequestBaseInput, ElectricSupportAreaResponse>(input);
|
}
|
|
/// <summary>
|
/// 提交电费订单
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<ConfirmElectricOrderResponse> ConfirmElectricOrder(ConfirmElectricOrderRequestInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.ConfirmElectricOrder);
|
|
#if DEBUG
|
|
//return new ConfirmElectricOrderResponse
|
//{
|
// Code = ACOOLYConstant.Code.PROCESSING,
|
// ElectricChargeOrder = new ElectricChargeOrderOutput
|
// {
|
// AreaName = input.Province,
|
// ElectricAccount = input.ElectricAccount,
|
// ElectricType = input.ElectricType,
|
// OutOrderNo = input.OutOrderNo,
|
// BusiOrderNo = "Test000000001",
|
// ParValue = input.ParValue,
|
// PayAmount = input.ParValue,
|
// Status = ACOOLYConstant.Code.PROCESSING,
|
// StatusText = "处理中"
|
// },
|
// RequestNo = input.RequestNo,
|
// Service = input.Service,
|
// PartnerId = input.PartnerId,
|
// Success = true,
|
//};
|
|
#endif
|
|
return await PostAsync<ConfirmElectricOrderRequestInput, ConfirmElectricOrderResponse>(input);
|
}
|
|
#endregion
|
|
#region 话费
|
|
/// <summary>
|
/// 获取话费面值
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<PhoneParValueResponse> PhoneParValue(ACOOLYRequestBaseInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.PhoneParValue);
|
|
#if DEBUG
|
|
//return new PhoneParValueResponse
|
//{
|
// Code = ACOOLYConstant.Code.SUCCESS,
|
// PhoneParValue = new List<PhoneParValueOutput>()
|
// {
|
// new PhoneParValueOutput()
|
// {
|
// IspCode="yidong",
|
// IspName="移动",
|
// PhoneSection="",
|
// Comments= "测试数据",
|
// ParValue = "100,200,300",
|
// Rate = 0.93m
|
// },
|
|
// new PhoneParValueOutput()
|
// {
|
// IspCode="dianxin",
|
// IspName="电信",
|
// PhoneSection="",
|
// Comments= "测试数据",
|
// ParValue = "100,200,300",
|
// Rate = 0.93m
|
// },
|
|
// new PhoneParValueOutput()
|
// {
|
// IspCode="liantong",
|
// IspName="联通",
|
// PhoneSection="",
|
// Comments= "测试数据",
|
// ParValue = "100,200,300",
|
// Rate = 0.93m
|
// },
|
// },
|
// RequestNo = input.RequestNo,
|
// Service = input.Service,
|
// PartnerId = input.PartnerId,
|
// Success = true,
|
//};
|
|
#endif
|
|
return await PostAsync<ACOOLYRequestBaseInput, PhoneParValueResponse>(input);
|
}
|
|
/// <summary>
|
/// 提交话费订单
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
public async Task<ConfirmPhoneOrderResponse> ConfirmPhoneOrder(ConfirmPhoneOrderRequestInput input)
|
{
|
SetBaseInfo(input, ACOOLYConstant.Sevice.ConfirmPhoneOrder);
|
|
#if DEBUG
|
|
//return new ConfirmPhoneOrderResponse
|
//{
|
// Code = ACOOLYConstant.Code.PROCESSING,
|
// PhoneChargeOrder = new PhoneChargeOrderOutput()
|
// {
|
// OutOrderNo = input.OutOrderNo,
|
// BusiOrderNo = "Test000000001",
|
// ParValue = input.ParValue,
|
// PayAmount = input.ParValue,
|
// Status = ACOOLYConstant.Code.PROCESSING,
|
// StatusText = "处理中",
|
// },
|
// RequestNo = input.RequestNo,
|
// Service = input.Service,
|
// PartnerId = input.PartnerId,
|
// Success = true,
|
//};
|
|
#endif
|
|
return await PostAsync<ConfirmPhoneOrderRequestInput, ConfirmPhoneOrderResponse>(input);
|
}
|
|
#endregion
|
|
#region 私有
|
|
private void SetBaseInfo(ACOOLYRequestBaseInput input, string service)
|
{
|
input.RequestNo = GuidGenerator.Create().ToString();
|
input.Service = service;
|
input.PartnerId = _options.PartnerId;
|
input.NotifyUrl = _options.NotifyUrl + ACOOLYConstant.NotifyUrl;
|
}
|
|
#endregion
|
|
}
|