zhengyuxuan
2025-03-24 72591fd519053b115102250843f52d2212e4b20c
LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -303,8 +303,8 @@
        var result = await (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
        .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)
                                            .WhereIf(input.BeginRefundTime.HasValue, x => x.RefundTime >= input.BeginRefundTime)
                                            .WhereIf(input.EndRefundTime.HasValue, x => x.RefundTime <= input.EndRefundTime)
                                            .WhereIf(input.BeginRefundApplyTime.HasValue, x => x.RefundApplyTime >= input.BeginRefundApplyTime)
                                            .WhereIf(input.LifePayType.HasValue, x => x.LifePayType == input.LifePayType)
                                            .WhereIf(input.EndRefundApplyTime.HasValue, x => x.RefundApplyTime <= input.EndRefundApplyTime)
@@ -397,7 +397,6 @@
        var channle = await _lifePayChannlesRep.FirstOrDefaultAsync(r => r.ChannlesNum == order.ChannelId);
         CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "订单不存在");
        var user = await _lifePayUserRepository.FirstOrDefaultAsync(x => x.Id == order.UserId);
        var channlesRakePrice = (order.PayAmount - (order.PlatformDeductionAmount == null ? 0 : order.PlatformDeductionAmount)) * channle.ChannlesRakeRate / 100;
        var result = new LifePayOrderOutput()
                {
@@ -850,8 +849,10 @@
            RechargeAmount = amount.RechargeAmount,
            ChannelId = channle.ChannlesNum,
            PlatformRate = platformRate.Rate,
            PlatformDeductionAmount = amount.RechargeAmount * platformRate.Rate /100,
            ChannleRate = channle.ChannlesRate,
            ChannlesRakeRate = channle.ChannlesRakeRate,
            //ChannlesRakePrice = amount.RechargeAmount * (channle.ChannlesRate - platformRate.Rate) / 100 * channle.ChannlesRakeRate / 100
        };
        await CreateLifePayOrder(orderInput);
@@ -1264,6 +1265,24 @@
        await _lifePayOrderRepository.UpdateAsync(order);
    }
    public async Task WxPayDomesticRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus)
    {
        var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
        CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "订单不存在");
        order.LifePayRefundStatus = refundStatus;
        switch (refundStatus)
        {
            case LifePayRefundStatusEnum.已退款:
                order.LifePayOrderStatus = LifePayOrderStatusEnum.已退款;
                order.ACOOLYStatus = ACOOLYStatusEnum.已退款;
                break;
            case LifePayRefundStatusEnum.退款中:
                order.LifePayOrderStatus = LifePayOrderStatusEnum.退款中;
                break;
            default:break;
        }
    }
    /// <summary>
    /// ACOOLYO订单通知处理
    /// </summary>
@@ -1285,6 +1304,7 @@
        {
            order.ACOOLYOrderNo = acoolyOrderNo;
        }
        if (refundApplyRemark.IsNotNullOrEmpty())
        {
            order.RefundApplyRemark = refundApplyRemark;
@@ -1292,7 +1312,7 @@
        order.LifePayOrderStatus = status;
        order.ACOOLYStatus = acoolyStatus;
        order.FinishTime = DateTime.Now;
        await _lifePayOrderRepository.UpdateAsync(order);
    }
@@ -1353,6 +1373,7 @@
                    order.LifePayOrderStatus = LifePayOrderStatusEnum.待退款;
                    order.LifePayRefundStatus = LifePayRefundStatusEnum.待退款;
                }
                break;
            case LifePayTypeEnum.AliPay:
                var aliRefundResult = await AliTradeRefund(new AlipayTradeRefundRequest() { OutTradeNo = order.OrderNo, RefundAmount = Convert.ToInt32(input.RefundPrice * 100).ToString() });
@@ -1360,7 +1381,9 @@
                {
                    throw new UserFriendlyException("退款失败");
                }
                order.LifePayOrderStatus = LifePayOrderStatusEnum.已退款;
                order.LifePayRefundStatus = LifePayRefundStatusEnum.已退款;
                break;
            default: throw new UserFriendlyException("退款失败");
        }
@@ -1985,8 +2008,8 @@
        var result = (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
     .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)
                                         .WhereIf(input.BeginRefundTime.HasValue, x => x.RefundTime >= input.BeginRefundTime)
                                         .WhereIf(input.EndRefundTime.HasValue, x => x.RefundTime <= input.EndRefundTime)
                                         .WhereIf(input.BeginRefundApplyTime.HasValue, x => x.RefundApplyTime >= input.BeginRefundApplyTime)
                                         .WhereIf(input.LifePayType.HasValue, x => x.LifePayType == input.LifePayType)
                                         .WhereIf(input.EndRefundApplyTime.HasValue, x => x.RefundApplyTime <= input.EndRefundApplyTime)