From 7b1de9565e68debff4b77906f453acbcbf358a55 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期五, 21 三月 2025 16:19:18 +0800
Subject: [PATCH] fix:提交

---
 LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs                |    5 +
 LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs    |    1 
 LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs |   15 +++
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs               |   74 +-----------------
 LifePayment/LifePayment.Application/LifePay/StatisticsService.cs            |   98 ++++++++++++++++++++++++
 5 files changed, 121 insertions(+), 72 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
index 00e1bc6..8fd6eb2 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -10,7 +10,6 @@
 
 public interface ILifePayService : IApplicationService
 {
-    Task<TopStatisticsOutput> GetTopStatistics();
 
     /// <summary>
     /// 鑾峰彇鐢佃垂闈㈠��
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs
new file mode 100644
index 0000000..2ba6f51
--- /dev/null
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs
@@ -0,0 +1,15 @@
+锘縰sing LifePayment.Domain.Shared;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Services;
+using ZeroD.Util;
+
+namespace LifePayment.Application.Contracts;
+
+public interface IStatisticsService : IApplicationService
+{
+    Task<TopStatisticsOutput> GetTopStatistics();
+
+}
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 577dd86..2b08ff7 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>
     /// 鑾峰彇鐢佃垂闈㈠��
@@ -1293,7 +1232,7 @@
 
         if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插け璐� && order.PayStatus != LifePayStatusEnum.宸查��娆�)
         {
-            order.PayStatus = LifePayStatusEnum.寰呴��娆�;
+            order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�;
         }
 
         order.LifePayOrderStatus = status;
@@ -1313,7 +1252,7 @@
         var order = await _lifePayOrderRepository.FirstOrDefaultAsync(x => x.Id == input.Id);
         CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
 
-        if (order.PayStatus == LifePayStatusEnum.宸查��娆�)
+        if (order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�)
         {
             return;
         }
@@ -1341,19 +1280,16 @@
                 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.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�;
                 }
@@ -1365,8 +1301,6 @@
                 {
                     throw new UserFriendlyException("閫�娆惧け璐�");
                 }
-
-                order.PayStatus = LifePayStatusEnum.宸查��娆�;
                 order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�;
                 break;
             default: throw new UserFriendlyException("閫�娆惧け璐�");
@@ -1403,7 +1337,7 @@
             throw new UserFriendlyException("闈炵敤鎴锋湰浜洪��娆�");
         }
 
-        if (order.PayStatus == LifePayStatusEnum.宸查��娆�)
+        if (order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�)
         {
             return;
         }
@@ -1537,7 +1471,7 @@
         var order = await _lifePayOrderRepository.FirstOrDefaultAsync(x => x.Id == input.Id);
         CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
 
-        if (order.PayStatus == LifePayStatusEnum.宸查��娆�)
+        if(order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�)
         {
             return;
         }
diff --git a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
new file mode 100644
index 0000000..d6b7fad
--- /dev/null
+++ b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
@@ -0,0 +1,98 @@
+锘縰sing LifePayment.Application.Contracts;
+using LifePayment.Domain.LifePay;
+using LifePayment.Domain.Models;
+using LifePayment.Domain.Shared;
+using LifePayment.Domain;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Data;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.EventBus.Distributed;
+using static Nest.FileSystemStats;
+using Microsoft.EntityFrameworkCore;
+
+namespace LifePayment.Application.LifePay
+{
+    public class StatisticsService : ApplicationService, IStatisticsService
+    {
+        private readonly IRepository<LifePayOrder, Guid> _lifePayOrderRepository;
+        private readonly IRepository<LifePayUser, Guid> _lifePayUserRepository;
+        private readonly IRepository<DallyStatistics, Guid> _dallyStatisticsRepository;
+
+        public StatisticsService(
+                              IRepository<LifePayOrder, Guid> lifePayOrderRepository,
+                              IRepository<LifePayUser, Guid> lifePayUserRepository,
+                            IRepository<DallyStatistics, Guid> dallyStatisticsRepository)
+        {
+            _lifePayOrderRepository = lifePayOrderRepository;
+            _lifePayUserRepository = lifePayUserRepository;
+            _dallyStatisticsRepository = dallyStatisticsRepository;
+        }
+
+        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;
+            }
+        }
+    }
+}
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index 845b691..a7d2889 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -20,15 +20,18 @@
     public class LifePayController : AbpController
     {
         private readonly ILifePayService _lifePayService;
+        private readonly IStatisticsService _statisticsService;
         private readonly IWebClientInfoProvider _webClientInfoProvider;
         private readonly ILogger<LifePayController> _logger;
         public LifePayController(
               ILifePayService lifePayService,
+              IStatisticsService statisticsService,
               IWebClientInfoProvider webClientInfoProvider
             , ILogger<LifePayController> logger
               )
         {
             _lifePayService = lifePayService;
+            _statisticsService = statisticsService;
             _webClientInfoProvider = webClientInfoProvider;
             _logger = logger;
         }
@@ -43,7 +46,7 @@
         [AllowAnonymous]
         public async Task<TopStatisticsOutput> GetTopStatistics()
         {
-            return await _lifePayService.GetTopStatistics();
+            return await _statisticsService.GetTopStatistics();
         }
 
         /// <summary>

--
Gitblit v1.9.1