zhengyuxuan
2025-03-20 132fb9d381c6d2c431d77deb7b678ceb0a761614
fix:bug修复
2个文件已修改
35 ■■■■ 已修改文件
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application/LifePay/LifePayService.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs
@@ -457,6 +457,14 @@
    public Guid Id { get; set; }
    /// <summary>
    /// 用户账号
    /// </summary>
    public string UserPhoneNumber { get; set; }
    public string UserName { get; set; }
    public string LifePayChannle { get; set; }
    /// <summary>
    /// 生活缴费支付类型
    /// </summary>
    public LifePayTypeEnum? LifePayType { get; set; }
@@ -507,6 +515,11 @@
    public DateTime? FinishTime { get; set; }
    /// <summary>
    /// 外部订单号
    /// </summary>
    public string OutOrderNo { get; set; }
    /// <summary>
    /// 订单详细数据
    /// </summary>
    public string OrderParamDetailJsonStr { get; set; }
LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -271,15 +271,21 @@
    {
        var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
        var platformRate = await _lifePayRateRepository.FirstOrDefaultAsync(r => r.RateType == LifePayRateTypeEnum.供应商折扣价);
        var channleRate = await _lifePayChannlesRep.FirstOrDefaultAsync(r => r.ChannlesNum == order.ChannelId);
        var premiumRate = await _lifePayPremiumRepository.Where(x => x.IsDeleted == false && x.PremiumType == order.LifePayType).FirstOrDefaultAsync();
        var channle = await _lifePayChannlesRep.FirstOrDefaultAsync(r => r.ChannlesNum == order.ChannelId);
        var premium = await _lifePayPremiumRepository.Where(x => x.IsDeleted == false && x.PremiumType == order.LifePayType).FirstOrDefaultAsync();
        CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "订单不存在");
        var channlesRakePrice = (order.PayAmount - (order.PlatformDeductionAmount == null ? 0 : order.PlatformDeductionAmount)) * channleRate.ChannlesRakeRate / 100;
        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()
                {
            UserName = user.Name,
            UserPhoneNumber = user.PhoneNumber,
            DiscountAmount = order.DiscountAmount,
            FinishTime = order.FinishTime,
            Id = order.Id,
            OutOrderNo = order.OutOrderNo,
            LifePayChannle = channle.ChannlesName,
            LifePayOrderStatus = order.LifePayOrderStatus,
            LifePayOrderType = order.LifePayOrderType,
            LifePayType = order.LifePayType,
@@ -300,12 +306,12 @@
            RefundPrice = order.RefundPrice,
            PlatformRate = platformRate.Rate,
            PlatformPrice = order.PlatformDeductionAmount,
            ChannleRate = channleRate.ChannlesRate,
            ChannlesRakeRate = channleRate.ChannlesRakeRate,
            ChannleRate = channle.ChannlesRate,
            ChannlesRakeRate = channle.ChannlesRakeRate,
            ChannlesRakePrice = channlesRakePrice.HasValue ? 0 : Math.Round(channlesRakePrice.Value, 2),
            PremiumRate = premiumRate == null ? 0 : premiumRate.Rate,
            PremiumPrice = premiumRate == null ? 0 : Math.Round(order.PayAmount * premiumRate.Rate, 2),
            Profit = (order.PayAmount - order.PlatformDeductionAmount) * (1.00m - channleRate.ChannlesRakeRate / 100) - (premiumRate == null ? 0 : Math.Round(order.PayAmount * premiumRate.Rate, 2))
            PremiumRate = premium == null ? 0 : premium.Rate,
            PremiumPrice = premium == null ? 0 : Math.Round(order.PayAmount * premium.Rate, 2),
            Profit = (order.PayAmount - order.PlatformDeductionAmount) * (1.00m - channle.ChannlesRakeRate / 100) - (premium == null ? 0 : Math.Round(order.PayAmount * premium.Rate, 2))
        };
        return result;