From a22995ea9ded904780c27319510a82275a972cab Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期五, 21 三月 2025 17:55:17 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/LifePaymentApi --- LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 132 ++++++++++--------------------------------- 1 files changed, 32 insertions(+), 100 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index 577dd86..f7d0078 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -61,7 +61,6 @@ IRepository<LifePayUser, Guid> lifePayUserRepository, IRepository<LifePayPremium, Guid> lifePayPremiumRepository, IRepository<LifePayIntroInfo, Guid> lifePayIntroInfoRepository, - IRepository<DallyStatistics, Guid> dallyStatisticsRepository, IRepository<OperateHistory, Guid> operateHistory, IAliPayApi aliPayApi, IAlipayInterfaceManager aliPayInterfaceManager, @@ -79,7 +78,6 @@ _lifePayUserRepository = lifePayUserRepository; _lifePayPremiumRepository = lifePayPremiumRepository; _lifePayIntroInfoRepository = lifePayIntroInfoRepository; - _dallyStatisticsRepository = dallyStatisticsRepository; _aliPayApi = aliPayApi; _alipayInterfaceManager = aliPayInterfaceManager; _wxPayApi = wxPayApi; @@ -94,65 +92,6 @@ #region 鏌ヨ - public async Task<TopStatisticsOutput> GetTopStatistics() - { - var today = DateTime.Now.Date; - var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.Date == today).FirstOrDefaultAsync(); - if (statistics == null) - { - var accumulatedReceipts = await _lifePayOrderRepository.Where(x => x.CreationTime < today).SumAsync(x => x.PayAmount); - var receiptsYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today).SumAsync(x => x.PayAmount); - var accumulatedOrders = await _lifePayOrderRepository.Where(x => x.CreationTime < today).CountAsync(); - 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 accumulatedUsers = await _lifePayUserRepository.CountAsync(); - - var entity = new DallyStatistics() - { - Id = GuidGenerator.Create(), - CreationTime = DateTime.Now, - Amount = 0, - AccumulatedReceipts = accumulatedReceipts, - ReceiptsYesterday = receiptsYesterday, - AccumulatedOrders = accumulatedOrders, - OrdersNumYesterday = ordersNumYesterday, - YesterdaySuccess = yesterdaySuccess, - YesterdayFail = yesterdayFail, - AccumulatedUsers = accumulatedUsers, - }; - await _dallyStatisticsRepository.InsertAsync(entity); - - TopStatisticsOutput topStatisticsOutput = new TopStatisticsOutput() - { - Amount = entity.Amount, - AccumulatedReceipts = entity.AccumulatedReceipts, - ReceiptsYesterday = entity.ReceiptsYesterday, - AccumulatedOrders = entity.AccumulatedOrders, - OrdersNumYesterday = entity.OrdersNumYesterday, - YesterdaySuccess = entity.YesterdaySuccess, - YesterdayFail = entity.YesterdayFail, - AccumulatedUsers = entity.AccumulatedUsers, - }; - return topStatisticsOutput; - } - else - { - TopStatisticsOutput topStatisticsOutput = new TopStatisticsOutput() - { - Amount = statistics.Amount, - AccumulatedReceipts = statistics.AccumulatedReceipts, - ReceiptsYesterday = statistics.ReceiptsYesterday, - AccumulatedOrders = statistics.AccumulatedOrders, - OrdersNumYesterday = statistics.OrdersNumYesterday, - YesterdaySuccess = statistics.YesterdaySuccess, - YesterdayFail = statistics.YesterdayFail, - AccumulatedUsers = statistics.AccumulatedUsers, - }; - return topStatisticsOutput; - } - } /// <summary> /// 鑾峰彇鐢佃垂闈㈠�� @@ -351,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) @@ -443,8 +381,8 @@ ChannlesRakeRate = channle.ChannlesRakeRate, ChannlesRakePrice = channlesRakePrice.HasValue ? 0 : Math.Round(channlesRakePrice.Value, 2), PremiumRate = order.PremiumRate, - PremiumPrice = Math.Round(order.PayAmount * order.PremiumRate, 2), - Profit = (order.PayAmount - order.PlatformDeductionAmount) * (1.00m - channle.ChannlesRakeRate / 100) - Math.Round(order.PayAmount * order.PremiumRate, 2) + PremiumPrice = Math.Round(order.PayAmount * (order.PremiumRate.HasValue ? order.PremiumRate.Value:0), 2), + Profit = (order.PayAmount - order.PlatformDeductionAmount) * (1.00m - channle.ChannlesRakeRate / 100) - Math.Round(order.PayAmount * (order.PremiumRate.HasValue ? order.PremiumRate.Value : 0), 2) }; return result; @@ -538,6 +476,8 @@ RefundApplyRemark = x.RefundApplyRemark, RefundTime = x.RefundTime, ACOOLYOrderNo = x.ACOOLYOrderNo, + LifePayRefundStatus = x.LifePayRefundStatus, + ACOOLYStatus = x.ACOOLYStatus, }) .GetPageResult(input.PageModel); } @@ -838,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), @@ -887,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), @@ -936,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), @@ -1249,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; @@ -1257,7 +1197,7 @@ catch (Exception ex) { _logger.LogError(ex, "澶勭悊鐢熸椿缂磋垂鏀粯鎴愬姛鍥炶皟鏃跺紓甯�"); - order.LifePayOrderStatus = LifePayOrderStatusEnum.宸插け璐�; + order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�; order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�; } _logger.LogError("鐢熸椿缂磋垂璁㈠崟鐘舵�侊細" + order.LifePayOrderStatus.ToString()); @@ -1275,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()) @@ -1286,15 +1226,6 @@ order.ACOOLYOrderNo = acoolyOrderNo; } - if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�) - { - order.FinishTime = DateTime.Now; - } - - if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插け璐� && order.PayStatus != LifePayStatusEnum.宸查��娆�) - { - order.PayStatus = LifePayStatusEnum.寰呴��娆�; - } order.LifePayOrderStatus = status; order.ACOOLYStatus = acoolyStatus; @@ -1313,7 +1244,7 @@ var order = await _lifePayOrderRepository.FirstOrDefaultAsync(x => x.Id == input.Id); CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�"); - if (order.PayStatus == LifePayStatusEnum.宸查��娆�) + if (order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�) { return; } @@ -1328,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("褰撳墠璁㈠崟鐘舵�佹棤娉曢��娆�"); } @@ -1341,20 +1272,17 @@ var wxRefundResult = await WxPayDomesticRefunds(order.OrderNo, outRefundNo,order.RefundApplyRemark, Convert.ToInt32(input.RefundPrice * 100), Convert.ToInt32(order.PayAmount * 100)); if (wxRefundResult.Status == "SUCCESS") { - order.PayStatus = LifePayStatusEnum.宸查��娆�; order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�; order.LifePayRefundStatus = LifePayRefundStatusEnum.宸查��娆�; } else if (wxRefundResult.Status == "PROCESSING") { - order.PayStatus = LifePayStatusEnum.閫�娆句腑; order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑; order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑; } else { - order.PayStatus = LifePayStatusEnum.寰呴��娆�; - order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆惧け璐�; + order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�; order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�; } @@ -1365,8 +1293,6 @@ { throw new UserFriendlyException("閫�娆惧け璐�"); } - - order.PayStatus = LifePayStatusEnum.宸查��娆�; order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�; break; default: throw new UserFriendlyException("閫�娆惧け璐�"); @@ -1403,18 +1329,17 @@ throw new UserFriendlyException("闈炵敤鎴锋湰浜洪��娆�"); } - if (order.PayStatus == LifePayStatusEnum.宸查��娆�) + if (order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�) { 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; @@ -1537,15 +1462,22 @@ var order = await _lifePayOrderRepository.FirstOrDefaultAsync(x => x.Id == input.Id); CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�"); - if (order.PayStatus == LifePayStatusEnum.宸查��娆�) + if(order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�) { 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; @@ -1744,7 +1676,7 @@ order.FinishTime = DateTime.Now; break; case ACOOLYConstant.Code.PROCESSING: - order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呯‘璁�; + order.LifePayOrderStatus = LifePayOrderStatusEnum.鍏呭�间腑; break; default: break; -- Gitblit v1.9.1