From d7399b083de823860a56b68c79f8e36603fb4ea3 Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期一, 31 三月 2025 13:37:19 +0800 Subject: [PATCH] fix:获取渠道分佣分页列表 --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 143 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 105 insertions(+), 38 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index f17ba62..fc61849 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs @@ -21,6 +21,7 @@ { private readonly IRepository<LifePayRechargeReceipts, Guid> _lifePayRechargeReceiptsRepository; private readonly IRepository<LifePayExpensesReceipts, Guid> _lifePayExpensesReceiptsRepository; + private readonly IRepository<LifePayChannlesRake, Guid> _lifePayChannlesRakeRepository; private readonly IRepository<LifePayOrder, Guid> _lifePayOrderRepository; private readonly IAliPayApi _aliPayApi; private readonly IWxPayApi _wxPayApi; @@ -28,17 +29,20 @@ public LifePayOrderService( IRepository<LifePayRechargeReceipts, Guid> lifePayRechargeReceiptsRepository, IRepository<LifePayExpensesReceipts, Guid> lifePayExpensesReceiptsRepository, + IRepository<LifePayChannlesRake, Guid> lifePayChannlesRakeRepository, IRepository<LifePayOrder, Guid> lifePayOrderRepository, IAliPayApi aliPayApi, IWxPayApi wxPayApi) { _lifePayRechargeReceiptsRepository = lifePayRechargeReceiptsRepository; _lifePayExpensesReceiptsRepository = lifePayExpensesReceiptsRepository; + _lifePayChannlesRakeRepository = lifePayChannlesRakeRepository; _lifePayOrderRepository = lifePayOrderRepository; _aliPayApi = aliPayApi; _wxPayApi = wxPayApi; } + #region 鏌ヨ /// <summary> /// 鑾峰彇鍏呭�兼祦姘� /// </summary> @@ -66,42 +70,6 @@ objectData.TotalRechargeAmount = total; list.ObjectData = objectData; return list; - } - - - - /// <summary> - /// 缂栬緫鍏呭�兼祦姘� - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - public async Task AddUpdatePayRechargeReceipts(AddUpdatePayRechargeReceiptsInput input) - { - CheckExtensions.IfTrueThrowUserFriendlyException(input.OrderNo == null, "璇疯緭鍏ヤ笟鍔¤鍗曞彿"); - CheckExtensions.IfTrueThrowUserFriendlyException(input.RechargeAmount <= 0, "鍏呭�奸噾棰濆簲澶т簬0"); - CheckExtensions.IfTrueThrowUserFriendlyException(input.Voucher == null, "璇锋彁浜ゅ厖鍊煎嚟璇�"); - var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false && x.OrderNo == input.OrderNo).FirstOrDefaultAsync(); - CheckExtensions.IfTrueThrowUserFriendlyException(repeat != null && repeat.Id != input.Id, "涓氬姟璁㈠崟鍙烽噸澶�"); - if (input.Id.HasValue) - { - var payRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false && x.Id == input.Id.Value).FirstOrDefaultAsync(); - payRechargeReceipts.OrderNo = input.OrderNo; - payRechargeReceipts.RechargeAmount = input.RechargeAmount; - payRechargeReceipts.Remark = input.Remark; - payRechargeReceipts.Voucher = input.Voucher; - } - else - { - LifePayRechargeReceipts payRechargeReceipts = new LifePayRechargeReceipts() - { - Id = Guid.NewGuid(), - OrderNo = input.OrderNo, - RechargeAmount = input.RechargeAmount, - Remark = input.Remark, - Voucher = input.Voucher, - }; - await _lifePayRechargeReceiptsRepository.InsertAsync(payRechargeReceipts); - } } /// <summary> @@ -141,6 +109,82 @@ return list; } + /// <summary> + /// 鑾峰彇娓犻亾鍒嗕剑 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<PageOutput<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakePage(LifePayChannlesRakePageInput input) + { + var list = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false) + .WhereIf(input.ChannelId != null, x => x.ChannelId == input.ChannelId) + .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin) + .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd) + .WhereIf(input.FinishTimeBegin.HasValue, x => x.FinishTime >= input.FinishTimeBegin) + .WhereIf(input.FinishTimeEnd.HasValue, x => x.FinishTime <= input.FinishTimeEnd) + + .Select(x => new LifePayChannlesRakeListOutput() + { + Id = x.Id, + OrderNo = x.OrderNo, + PayAmount = x.PayAmount, + ChannlesRakeRate = x.ChannlesRakeRate, + ChannlesRakePrice = x.ChannlesRakePrice, + ChannelId = x.ChannelId, + FinishTime = x.FinishTime, + CreationTime = x.CreationTime, + }) + .GetPageResult(input.PageModel); + + var totalRakePrice = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false).SumAsync(x => x.ChannlesRakePrice); + + LifePayLifePayChannlesRakeStatistics objectData = new LifePayLifePayChannlesRakeStatistics(); + objectData.TotalRakePrice = totalRakePrice; + list.ObjectData = objectData; + return list; + } + + #endregion + + + + + + /// <summary> + /// 缂栬緫鍏呭�兼祦姘� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task AddUpdatePayRechargeReceipts(AddUpdatePayRechargeReceiptsInput input) + { + CheckExtensions.IfTrueThrowUserFriendlyException(input.OrderNo == null, "璇疯緭鍏ヤ笟鍔¤鍗曞彿"); + CheckExtensions.IfTrueThrowUserFriendlyException(input.RechargeAmount <= 0, "鍏呭�奸噾棰濆簲澶т簬0"); + CheckExtensions.IfTrueThrowUserFriendlyException(input.Voucher == null, "璇锋彁浜ゅ厖鍊煎嚟璇�"); + var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false && x.OrderNo == input.OrderNo).FirstOrDefaultAsync(); + CheckExtensions.IfTrueThrowUserFriendlyException(repeat != null && repeat.Id != input.Id, "涓氬姟璁㈠崟鍙烽噸澶�"); + if (input.Id.HasValue) + { + var payRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false && x.Id == input.Id.Value).FirstOrDefaultAsync(); + payRechargeReceipts.OrderNo = input.OrderNo; + payRechargeReceipts.RechargeAmount = input.RechargeAmount; + payRechargeReceipts.Remark = input.Remark; + payRechargeReceipts.Voucher = input.Voucher; + } + else + { + LifePayRechargeReceipts payRechargeReceipts = new LifePayRechargeReceipts() + { + Id = Guid.NewGuid(), + OrderNo = input.OrderNo, + RechargeAmount = input.RechargeAmount, + Remark = input.Remark, + Voucher = input.Voucher, + }; + await _lifePayRechargeReceiptsRepository.InsertAsync(payRechargeReceipts); + } + } + + /// <summary> /// 鎻掑叆鏀舵敮娴佹按 /// </summary> @@ -256,10 +300,33 @@ await AddLifePayExpensesReceipts(input); } - } } - + } + + public async Task GetAllChannlesRake() + { + var orderlist = await _lifePayOrderRepository.Where(x => x.IsDeleted == false && x.PayStatus == LifePayStatusEnum.宸叉敮浠� && x.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�).ToListAsync(); + foreach (var item in orderlist) + { + /// 姣涘埄 + var grossProfit = item.RechargeAmount * (item.ChannleRate - item.PlatformRate) / 100; + /// 娓犻亾浣i噾 锛�(鍏呭�奸潰棰� * 娓犻亾鎶樻墸姣斾緥)-(鍏呭�奸潰棰� * 骞冲彴鎶樻墸姣斾緥)锛�* 浣i噾姣斾緥 + var channlesRakePrice = grossProfit * (item.ChannlesRakeRate) / 100; + if (channlesRakePrice.HasValue) + { + LifePayChannlesRake lifePayChannlesRake = new LifePayChannlesRake() + { + OrderNo = item.OrderNo, + PayAmount = item.PayAmount.Value, + ChannlesRakeRate = item.ChannlesRakeRate.Value, + ChannlesRakePrice = channlesRakePrice.Value, + FinishTime = item.FinishTime.Value, + ChannelId = item.ChannelId, + }; + await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake); + } + } } } } -- Gitblit v1.9.1