zhengyuxuan
2025-04-03 06f7ccdea12e211d05f6eef75e6e2fb4b493377c
LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -232,8 +232,8 @@
            CheckExtensions.IfTrueThrowUserFriendlyException(input.OrderNo == null, "请输入业务订单号");
            CheckExtensions.IfTrueThrowUserFriendlyException(input.RechargeAmount <= 0, "充值金额应大于0");
            CheckExtensions.IfTrueThrowUserFriendlyException(input.Voucher == null, "请提交充值凭证");
            var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.OrderNo == input.OrderNo).FirstOrDefaultAsync();
            CheckExtensions.IfTrueThrowUserFriendlyException(repeat != null && repeat.Id != input.Id, "业务订单号重复");
            var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.OrderNo == input.OrderNo && x.Id != input.Id).AnyAsync();
            CheckExtensions.IfTrueThrowUserFriendlyException(repeat, "业务订单号重复");
            if (input.Id.HasValue)
            {
                var payRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.Id == input.Id.Value).FirstOrDefaultAsync();
@@ -264,8 +264,8 @@
        public async Task AddLifePayExpensesReceipts(AddLifePayExpensesReceiptsInput input)
        {
            var repeat = await _lifePayExpensesReceiptsRepository.Where(x => x.ExpensesReceiptsType == input.ExpensesReceiptsType
            && x.OrderNo == input.OrderNo).FirstOrDefaultAsync();
            if (repeat == null)
            && x.OrderNo == input.OrderNo).AnyAsync();
            if (repeat)
            {
                var data = new LifePayExpensesReceipts()
                {
@@ -415,15 +415,19 @@
                    await AddLifePayExpensesReceipts(input);
                    /// 出账
                    AddLifePayExpensesReceiptsInput receipts = new AddLifePayExpensesReceiptsInput()
                    {
                        OrderNo = item.OrderNo,
                        OutOrderNo = item.OutOrderNo,
                        LifePayType = item.LifePayType,
                        Amount = item.Amount,
                        ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses
                    };
                    if (item.RefundOrderNo.IsNotNullOrEmpty())
                    {
                        input.OutRefundNo = item.OrderNo;
                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                        await AddLifePayExpensesReceipts(input);
                        input.OutRefundNo = item.RefundOrderNo;
                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                        await AddLifePayExpensesReceipts(input);
                        receipts.OutRefundNo = item.RefundOrderNo;
                        receipts.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                        await AddLifePayExpensesReceipts(receipts);
                    }
                }
            }
@@ -454,8 +458,8 @@
                        FinishTime = item.FinishTime.Value,
                        ChannelId = item.ChannelId,
                    };
                    var repeat = _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).FirstOrDefaultAsync();
                    if (repeat != null)
                    var repeat = await _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).AnyAsync();
                    if (repeat)
                    {
                        await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake);
                    }
@@ -475,7 +479,6 @@
                Amount = platformDeductionAmount,
                ChannelId = channelId,
            };
            LifePayConsumption repeat = new LifePayConsumption();
            switch (status)
            {
                case ACOOLYStatusEnum.充值中:
@@ -485,30 +488,18 @@
                    lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged;
                    lifePayConsumption.DeductionAmount = 0;
                    lifePayConsumption.FrozenAmount = lifePayConsumption.Amount;
                    repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
                    && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync();
                    if (repeat == null)
                    {
                        await _lifePayConsumption.InsertAsync(lifePayConsumption);
                    }
                    break;
                case ACOOLYStatusEnum.已完成:
                    lifePayConsumption.FinishTime = orderFinishTime.Value;
                    if (orderFinishTime.HasValue)
                    {
                        lifePayConsumption.FinishTime = orderFinishTime.Value;
                    }
                    lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.已完成;
                    lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw;
                    lifePayConsumption.Flow = ConsumptionFlowEnum.Out;
                    lifePayConsumption.DeductionAmount = lifePayConsumption.Amount;
                    lifePayConsumption.FrozenAmount = 0;
                    repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
                    && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync();
                    if (repeat == null)
                    {
                        await _lifePayConsumption.InsertAsync(lifePayConsumption);
                    }
                    break;
                case ACOOLYStatusEnum.充值失败:
                    lifePayConsumption.FinishTime = orderCreationTime;
@@ -517,32 +508,19 @@
                    lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged;
                    lifePayConsumption.DeductionAmount = 0;
                    lifePayConsumption.FrozenAmount = lifePayConsumption.Amount;
                    repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
                    && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync();
                    if (repeat == null)
                    {
                        await _lifePayConsumption.InsertAsync(lifePayConsumption);
                    }
                    break;
                case ACOOLYStatusEnum.已退款:
                    lifePayConsumption.FinishTime = orderFinishTime.Value;
                    if (orderFinishTime.HasValue)
                    {
                        lifePayConsumption.FinishTime = orderFinishTime.Value;
                    }
                    lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.已退款;
                    lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw;
                    lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged;
                    lifePayConsumption.DeductionAmount = 0;
                    lifePayConsumption.FrozenAmount = 0;
                    repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
                    && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync();
                    if (repeat == null)
                    {
                        await _lifePayConsumption.InsertAsync(lifePayConsumption);
                    }
                    break;
                //case ACOOLYStatusEnum.部分充值成功:
                //    lifePayConsumption.FinishTime = orderCreationTime;
                //    lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.部分充值成功;
@@ -561,6 +539,13 @@
                //    break;
                default: break;
            }
            var repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
                   && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).AnyAsync();
            if (repeat)
            {
                await _lifePayConsumption.InsertAsync(lifePayConsumption);
            }
        }
        private async Task<IQueryable<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakeListFilter(LifePayChannlesRakePageInput input)