zhengyiming
2025-03-21 a22995ea9ded904780c27319510a82275a972cab
Merge branch 'master' of http://120.26.58.240:8888/r/LifePaymentApi
9个文件已修改
158 ■■■■■ 已修改文件
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application/LifePay/LifePayService.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application/LifePay/StatisticsService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain/LifePay/LifePayOrder.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Worker/Worker/GetStaticsWorker.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Worker/appsettings.json 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -50,7 +50,7 @@
    Task LifePaySuccessHandler(string orderNo, string outOrderNo);
    /// <summary>
    /// 支付成功回调处理
    /// 供应商回调处理
    /// </summary>
    /// <param name="orderNo"></param>
    /// <param name="acoolyOrderNo"></param>
LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -290,8 +290,7 @@
    {
        var result = await (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
        .Where(x => x.PayStatus == LifePayStatusEnum.待退款 || x.PayStatus == LifePayStatusEnum.已退款 || x.PayStatus == LifePayStatusEnum.退款中
        || x.LifePayOrderStatus == LifePayOrderStatusEnum.退款待审核 || x.LifePayOrderStatus == LifePayOrderStatusEnum.已退款 || x.LifePayOrderStatus == LifePayOrderStatusEnum.退款失败
        .Where(x => x.LifePayOrderStatus == LifePayOrderStatusEnum.待退款 || x.LifePayOrderStatus == LifePayOrderStatusEnum.已退款 || x.LifePayOrderStatus == LifePayOrderStatusEnum.退款中
        || x.LifePayRefundStatus > LifePayRefundStatusEnum.无需退款)
                                            .WhereIf(input.BeginFinishTime.HasValue, x => x.FinishTime >= input.BeginFinishTime)
                                            .WhereIf(input.EndFinishTime.HasValue, x => x.FinishTime <= input.EndFinishTime)
@@ -779,7 +778,7 @@
        var orderInput = new CreateLifePayOrderInput
        {
            OrderNo = channle.ChannlesNum + CreateOrderNo(),
            LifePayOrderStatus = LifePayOrderStatusEnum.待确认,
            LifePayOrderStatus = LifePayOrderStatusEnum.充值中,
            LifePayOrderType = LifePayOrderTypeEnum.话费订单,
            //LifePayType = input.LifePayType,
            OrderParamDetailJsonStr = JsonConvert.SerializeObject(input.ProductData),
@@ -828,7 +827,7 @@
        var orderInput = new CreateLifePayOrderInput
        {
            OrderNo = channle.ChannlesNum + CreateOrderNo(),
            LifePayOrderStatus = LifePayOrderStatusEnum.待确认,
            LifePayOrderStatus = LifePayOrderStatusEnum.充值中,
            LifePayOrderType = LifePayOrderTypeEnum.电费订单,
            // LifePayType = input.LifePayType,
            OrderParamDetailJsonStr = JsonConvert.SerializeObject(input.ProductData),
@@ -877,7 +876,7 @@
        var orderInput = new CreateLifePayOrderInput
        {
            OrderNo = channle.ChannlesNum + CreateOrderNo(),
            LifePayOrderStatus = LifePayOrderStatusEnum.待确认,
            LifePayOrderStatus = LifePayOrderStatusEnum.充值中,
            LifePayOrderType = LifePayOrderTypeEnum.燃气订单,
            // LifePayType = input.LifePayType,
            OrderParamDetailJsonStr = JsonConvert.SerializeObject(input.ProductData),
@@ -1190,7 +1189,7 @@
            }
            order.LifePayRefundStatus = LifePayRefundStatusEnum.无需退款;
            order.LifePayOrderStatus = LifePayOrderStatusEnum.待确认;
            order.LifePayOrderStatus = LifePayOrderStatusEnum.充值中;
            //SetOrderStatus(order, result.Code);
            order.OutRequestNo = result.RequestNo.IsNullOrEmpty() ? null : result.RequestNo;
            order.ACOOLYOrderNo = result.ACOOLYOrderNo.IsNullOrEmpty() ? null : result.ACOOLYOrderNo;
@@ -1198,7 +1197,7 @@
        catch (Exception ex)
        {
            _logger.LogError(ex, "处理生活缴费支付成功回调时异常");
            order.LifePayOrderStatus = LifePayOrderStatusEnum.已失败;
            order.LifePayOrderStatus = LifePayOrderStatusEnum.待退款;
            order.LifePayRefundStatus = LifePayRefundStatusEnum.待退款;
        }
        _logger.LogError("生活缴费订单状态:" + order.LifePayOrderStatus.ToString());
@@ -1216,10 +1215,10 @@
        var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
        CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "订单不存在");
        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.已完成)
        {
            return;
        }
        //if (order.LifePayOrderStatus == LifePayOrderStatusEnum.已完成)
        //{
        //    return;
        //}
        order.PlatformDeductionAmount = payAmount;
        if (acoolyOrderNo.IsNotNullOrEmpty())
@@ -1227,15 +1226,6 @@
            order.ACOOLYOrderNo = acoolyOrderNo;
        }
        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.已完成)
        {
            order.FinishTime = DateTime.Now;
        }
        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.已失败 && order.LifePayRefundStatus != LifePayRefundStatusEnum.已退款)
        {
            order.LifePayRefundStatus = LifePayRefundStatusEnum.待退款;
        }
        order.LifePayOrderStatus = status;
        order.ACOOLYStatus = acoolyStatus;
@@ -1269,7 +1259,7 @@
            input.RefundPrice = order.PayAmount;
        }
        if (order.LifePayOrderStatus != LifePayOrderStatusEnum.已失败 && order.PayStatus != LifePayStatusEnum.待退款 && order.LifePayOrderStatus != LifePayOrderStatusEnum.退款待审核)
        if (order.LifePayOrderStatus != LifePayOrderStatusEnum.待退款 || order.PayStatus != LifePayStatusEnum.已支付 || order.LifePayRefundStatus != LifePayRefundStatusEnum.待退款)
        {
            throw new UserFriendlyException("当前订单状态无法退款");
        }
@@ -1292,7 +1282,7 @@
                }
                else
                {
                    order.LifePayOrderStatus = LifePayOrderStatusEnum.退款失败;
                    order.LifePayOrderStatus = LifePayOrderStatusEnum.待退款;
                    order.LifePayRefundStatus = LifePayRefundStatusEnum.待退款;
                }
@@ -1344,13 +1334,12 @@
            return;
        }
        if (order.LifePayOrderStatus != LifePayOrderStatusEnum.待确认 && order.LifePayOrderStatus != LifePayOrderStatusEnum.已失败
            && order.PayStatus != LifePayStatusEnum.已支付)
        if (order.PayStatus != LifePayStatusEnum.已支付 || order.LifePayOrderStatus != LifePayOrderStatusEnum.已完成)
        {
            throw new UserFriendlyException("当前订单状态无法申请退款");
        }
        order.LifePayOrderStatus = LifePayOrderStatusEnum.退款待审核;
        order.LifePayOrderStatus = LifePayOrderStatusEnum.待退款;
        order.RefundApplyRemark = input.RefundApplyRemark;
        order.RefundApplyTime = DateTime.Now;
@@ -1478,10 +1467,17 @@
            return;
        }
        if ((order.LifePayOrderStatus == LifePayOrderStatusEnum.已失败 && order.PayStatus == LifePayStatusEnum.待退款) ||
            order.LifePayOrderStatus == LifePayOrderStatusEnum.退款待审核 || order.LifePayOrderStatus == LifePayOrderStatusEnum.待确认)
        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.待退款)
        {
            order.LifePayOrderStatus = LifePayOrderStatusEnum.退款失败;
            if (order.ACOOLYStatus == ACOOLYStatusEnum.已完成 || order.ACOOLYStatus == ACOOLYStatusEnum.部分充值成功)
            {
                order.LifePayOrderStatus = LifePayOrderStatusEnum.已完成;
            }
            else if (order.ACOOLYStatus == ACOOLYStatusEnum.充值失败)
            {
                order.LifePayOrderStatus = LifePayOrderStatusEnum.退款失败;
            }
            order.RefundCheckRemark = input.RefundCheckRemark;
            order.RefundCheckUserId = CurrentUser.Id;
@@ -1680,7 +1676,7 @@
                order.FinishTime = DateTime.Now;
                break;
            case ACOOLYConstant.Code.PROCESSING:
                order.LifePayOrderStatus = LifePayOrderStatusEnum.待确认;
                order.LifePayOrderStatus = LifePayOrderStatusEnum.充值中;
                break;
            default:
                break;
LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
@@ -47,7 +47,7 @@
                var accumulatedIncome = await _lifePayOrderRepository.Where(x => x.CreationTime < today).SumAsync(x => x.ActualRechargeAmount);
                var ordersNumYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today).CountAsync();
                var yesterdaySuccess = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.已完成).CountAsync();
                var yesterdayFail = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.已失败).CountAsync();
                var yesterdayFail = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.退款失败).CountAsync();
                var accumulatedUsers = await _lifePayUserRepository.CountAsync();
                var entity = new DallyStatistics()
LifePayment/LifePayment.Domain.Shared/Enum/LifePay/LifePayEnum.cs
@@ -41,19 +41,44 @@
    退款中 = 50,
}
//public enum LifePayOrderStatusEnum
//{
//    [Description("充值中")]
//    待确认 = 10,
//    [Description("已失败")]
//    已失败 = 20,
//    [Description("已完成")]
//    已完成 = 30,
//    [Description("退款待审核")]
//    退款待审核 = 40,
//    [Description("已退款")]
//    已退款 = 50,
//    [Description("退款失败")]
//    退款失败 = 60,
//    [Description("退款中")]
//    退款中 = 70,
//}
public enum LifePayOrderStatusEnum
{
    [Description("待确认")]
    待确认 = 10,
    [Description("充值中")]
    充值中 = 10,
    [Description("已失败")]
    已失败 = 20,
    //[Description("已失败")]
    //已失败 = 20,
    [Description("已完成")]
    已完成 = 30,
    [Description("退款待审核")]
    退款待审核 = 40,
    [Description("待退款")]
    待退款 = 40,
    [Description("已退款")]
    已退款 = 50,
@@ -64,6 +89,7 @@
    [Description("退款中")]
    退款中 = 70,
}
public enum ACOOLYStatusEnum
LifePayment/LifePayment.Domain/LifePay/LifePayOrder.cs
@@ -81,12 +81,12 @@
        public string ACOOLYOrderNo { get; set; }
        /// <summary>
        /// 订单状态
        /// 平台订单状态
        /// </summary>
        public LifePayOrderStatusEnum LifePayOrderStatus { get; set; }
        /// <summary>
        /// 平台状态
        /// 供应商状态
        /// </summary>
        public ACOOLYStatusEnum? ACOOLYStatus { get; set; }
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -44,7 +44,7 @@
        </member>
        <member name="M:LifePayment.Application.Contracts.ILifePayService.ACOOLYOrderNotifyHandler(System.String,System.String,LifePayment.Domain.Shared.LifePayOrderStatusEnum,LifePayment.Domain.Shared.ACOOLYStatusEnum,System.Decimal)">
            <summary>
            支付成功回调处理
            供应商回调处理
            </summary>
            <param name="orderNo"></param>
            <param name="acoolyOrderNo"></param>
LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs
@@ -52,7 +52,7 @@
            }
            var baseInfo = JsonConvert.DeserializeObject<ACOOLYRequestBaseResponse>(body);
            var orderNo = string.Empty;
            LifePayOrderStatusEnum status = LifePayOrderStatusEnum.已失败;
            LifePayOrderStatusEnum status = LifePayOrderStatusEnum.待退款;
            ACOOLYStatusEnum acoolyStatus = ACOOLYStatusEnum.充值失败;
            var acoolyOrderNo = string.Empty;
            decimal payAmount = 0;
@@ -70,7 +70,7 @@
                    if (!confirmElectricOrderResponse.Success
                    || (confirmElectricOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmElectricOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
@@ -82,13 +82,13 @@
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.充值中)
                    {
                        status = LifePayOrderStatusEnum.待确认;
                        status = LifePayOrderStatusEnum.充值中;
                        acoolyStatus = ACOOLYStatusEnum.充值中;
                    }
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.充值失败)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
@@ -106,7 +106,7 @@
                    else
                    if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.失败关闭)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    break;
@@ -119,7 +119,7 @@
                    if (!confirmPhoneOrderResponse.Success
                     || (confirmPhoneOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmPhoneOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
@@ -133,13 +133,13 @@
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.充值中)
                    {
                        status = LifePayOrderStatusEnum.待确认;
                        status = LifePayOrderStatusEnum.充值中;
                        acoolyStatus = ACOOLYStatusEnum.充值中;
                    }
                    else
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.充值失败)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
@@ -157,7 +157,7 @@
                    else
                     if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.失败关闭)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    break;
@@ -170,7 +170,7 @@
                    if (!confirmGasOrderResponse.Success
                     || (confirmGasOrderResponse.Code != ACOOLYConstant.Code.SUCCESS && confirmGasOrderResponse.Code != ACOOLYConstant.Code.PROCESSING))
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
@@ -184,13 +184,13 @@
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.充值中)
                    {
                        status = LifePayOrderStatusEnum.待确认;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值中;
                    }
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.充值失败)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    else
@@ -208,7 +208,7 @@
                    else
                     if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.失败关闭)
                    {
                        status = LifePayOrderStatusEnum.已失败;
                        status = LifePayOrderStatusEnum.待退款;
                        acoolyStatus = ACOOLYStatusEnum.充值失败;
                    }
                    break;
LifePayment/LifePayment.Worker/Worker/GetStaticsWorker.cs
@@ -16,14 +16,14 @@
{
    public class GetStaticsWorker : AsyncPeriodicBackgroundWorkerBase
    {
        private readonly ILifePayService _lifePayService;
        private readonly IStatisticsService _statisticService;
        private readonly int _doWorkHour = 0;
        private readonly int _doWorkMinute = 30;
        public GetStaticsWorker(AbpAsyncTimer timer, IServiceScopeFactory serviceScopeFactory, ILifePayService lifePayService) : base(timer, serviceScopeFactory)
        public GetStaticsWorker(AbpAsyncTimer timer, IServiceScopeFactory serviceScopeFactory, IStatisticsService statisticService) : base(timer, serviceScopeFactory)
        {
            _lifePayService = lifePayService;
            _statisticService = statisticService;
            timer.Period = PeriodTool.CalcuPeriodFromEveryDayTime(_doWorkHour, _doWorkMinute, 0);
            //timer.Period =5 * 60000;
            //timer.Period =1 * 60000;
        }
        [UnitOfWork]
@@ -31,7 +31,7 @@
        {
            try
            {
                await _lifePayService.GetTopStatistics();
                await _statisticService.GetTopStatistics();
                Logger.LogError($"获取统计信息开始: {DateTime.Now}");
            }
            catch (Exception ex)
LifePayment/LifePayment.Worker/appsettings.json
@@ -21,10 +21,12 @@
    "CorsOrigins": "http://localhost:31804"
  },
  "ElasticSearch": {
    "Url": "http://localhost:9200"
    "Url": "http://106.12.151.86:19200",
    "UserName": "elastic",
    "PassWord": "bole5201314"
  },
  "Redis": {
    "Configuration": "localhost:6379"
    "Configuration": "118.178.252.28:5390,defaultDatabase=5,password=Bole123!"
  },
  "AliYunSMSSetting": {
    "AliYunSmsAccessId": "LTAI4G5qXfYeS14JxEeN9JxF",
@@ -44,6 +46,20 @@
    "CheckPath": false,
    "AppName": "C端客户端"
  },
  "RabbitMQ": {
    "Connections": {
      "Default": {
        "HostName": "118.178.252.28",
        "UserName": "admin",
        "Password": "Bole12345678",
        "Port": "5673"
      }
    },
    "EventBus": {
      "ClientName": "MsDemo_LifePaymentService_Development_Ling1122",
      "ExchangeName": "MsDemo_Development_Ling1122"
    }
  },
  "InitSetting": {
    "SelfSupportingServiceName": "壹贰叁叁叁信息技术",
    "PlatServicePhone": "13005741111",