From 18325eda17439bdd76f3b7e3f39cfae312738b2b Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期一, 31 三月 2025 06:59:13 +0800
Subject: [PATCH] fix:提交

---
 LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml    |   40 ++++++++-
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs            |   55 +++++++++++++
 LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs                  |   22 ++++
 LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs |    2 
 LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs                     |    5 +
 LifePayment/LifePayment.Domain/LifePay/LifePayExpensesReceipts.cs             |    2 
 LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs   |    2 
 LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs         |   45 ++++++++++-
 LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml                   |    2 
 LifePayment/LifePayment.Application/LifePay/StatisticsService.cs              |   33 +++++---
 LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs            |    4 
 LifePayment/LifePayment.Domain/Common/ChannelFilter.cs                        |   14 +--
 12 files changed, 184 insertions(+), 42 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs
index b902588..a30eaec 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs
@@ -17,4 +17,6 @@
     Task<LifePayExpensesReceiptsPageOutput<LifePayExpensesReceiptsListOutput>> GetLifePayExpensesReceiptsPage(LifePayExpensesReceiptsPageInput input);
 
     Task AddLifePayExpensesReceipts(AddLifePayExpensesReceiptsInput input);
+
+    Task GetAllLifePayExpensesReceipts();
 }
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs
index 2ba6f51..3aaec90 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/IStatisticsService.cs
@@ -10,6 +10,6 @@
 
 public interface IStatisticsService : IApplicationService
 {
-    Task<TopStatisticsOutput> GetTopStatistics();
+    Task<TopStatisticsOutput> GetTopStatistics(string channleId = "");
 
 }
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
index 26f29d0..6a84270 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
@@ -102,6 +102,11 @@
     /// 瀹㈡埛韬唤璇佸悗6浣嶏紝鍗楃綉蹇呬紶銆�
     /// </summary>
     public string SixID { get; set; }
+
+    /// <summary>
+    /// 鎴蜂富濮撳悕
+    /// </summary>
+    public string Name { get; set; }
 }
 public class LifeGasData
 {
@@ -664,16 +669,12 @@
     /// <summary>
     /// 鏀舵敮绫诲瀷
     /// </summary>
-    public ExpensesReceiptsTypeEnum ExpensesReceiptsType { get; set; }
+    public ExpensesReceiptsTypeEnum? ExpensesReceiptsType { get; set; }
 
     /// <summary>
     /// 浜ゆ槗閲戦
     /// </summary>
     public decimal Amount { get; set; }
-    /// <summary>
-    /// 鎷撳睍灞炴��
-    /// </summary>
-    public string ExtraProperties { get; set; }
 }
 public class LifePayExpensesReceiptsPageInput : ChannelsBaseInput
 {
@@ -701,4 +702,38 @@
     /// 浜ゆ槗缁撴潫鏃堕棿
     /// </summary>
     public DateTime? TimeEnd { get; set; }
+}
+public class LifePayExpensesReceiptsTemp
+{
+    /// <summary>
+    /// 骞冲彴璁㈠崟鍙�
+    /// </summary>
+    public string OrderNo { get; set; }
+
+    /// <summary>
+    /// 閫�娆捐鍗曠紪鍙�
+    /// </summary>
+    public string RefundOrderNo { get; set; }
+
+    /// <summary>
+    /// 娓犻亾娴佹按鍙�
+    /// </summary>
+    public string OutOrderNo { get; set; }
+
+    /// <summary>
+    /// 鏀粯娓犻亾
+    /// </summary>
+    public LifePayTypeEnum LifePayType { get; set; }
+
+    /// <summary>
+    /// 鏀舵敮绫诲瀷
+    /// </summary>
+    public ExpensesReceiptsTypeEnum? ExpensesReceiptsType { get; set; }
+
+    /// <summary>
+    /// 浜ゆ槗閲戦
+    /// </summary>
+    public decimal Amount { get; set; }
+
+    public string ExpensesReceiptsOrder { get; set; }
 }
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index f199443..16fe3b9 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -21,17 +21,20 @@
     {
         private readonly IRepository<LifePayRechargeReceipts, Guid> _lifePayRechargeReceiptsRepository;
         private readonly IRepository<LifePayExpensesReceipts, Guid> _lifePayExpensesReceiptsRepository;
+        private readonly IRepository<LifePayOrder, Guid> _lifePayOrderRepository;
         private readonly IAliPayApi _aliPayApi;
         private readonly IWxPayApi _wxPayApi;
 
         public LifePayOrderService(
                               IRepository<LifePayRechargeReceipts, Guid> lifePayRechargeReceiptsRepository,
                               IRepository<LifePayExpensesReceipts, Guid> lifePayExpensesReceiptsRepository,
+                              IRepository<LifePayOrder, Guid> lifePayOrderRepository,
                               IAliPayApi aliPayApi,
                               IWxPayApi wxPayApi)
         {
             _lifePayRechargeReceiptsRepository = lifePayRechargeReceiptsRepository;
             _lifePayExpensesReceiptsRepository = lifePayExpensesReceiptsRepository;
+            _lifePayOrderRepository = lifePayOrderRepository;
             _aliPayApi = aliPayApi;
             _wxPayApi = wxPayApi;
         }
@@ -121,7 +124,7 @@
                     OrderNo = x.OrderNo,
                     OutOrderNo = x.OutOrderNo,
                     LifePayType = x.LifePayType,
-                    ExpensesReceiptsType = x.ExpensesReceiptsType,
+                    ExpensesReceiptsType = x.ExpensesReceiptsType.Value,
                     Amount = x.Amount,
                     FinishTime = x.FinishTime
                 })
@@ -198,7 +201,7 @@
                         else
                         {
                             var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OrderNo);
-                            if (query.Code == AlipayResultCode.Success && query.RefundStatus == WxPayRefundStatus.閫�娆炬垚鍔�)
+                            if (query.Status == WxPayRefundStatus.閫�娆炬垚鍔�)
                             {
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SuccessTime);
@@ -210,5 +213,53 @@
                 }
             }
         }
+
+        public async Task GetAllLifePayExpensesReceipts()
+        {
+            var orderlist = await (from a in _lifePayOrderRepository.Where(x => x.PayStatus >= LifePayStatusEnum.宸叉敮浠�)
+                                   join b in _lifePayExpensesReceiptsRepository on a.OrderNo equals b.OrderNo into temp
+                                   from b in temp.DefaultIfEmpty()
+                                   select new LifePayExpensesReceiptsTemp()
+                                   {
+                                       OrderNo = a.OrderNo,
+                                       OutOrderNo = a.OutOrderNo,
+                                       RefundOrderNo = a.RefundOrderNo,
+                                       LifePayType = a.LifePayType.Value,
+                                       Amount = a.PayAmount.Value,
+                                       ExpensesReceiptsType = b.ExpensesReceiptsType
+                                   }).ToListAsync();
+            foreach (var item in orderlist)
+            {
+                if (!item.ExpensesReceiptsType.HasValue)
+                {
+                    /// 鍏ヨ处
+                    AddLifePayExpensesReceiptsInput input = new AddLifePayExpensesReceiptsInput()
+                    {
+                        OrderNo = item.OrderNo,
+                        OutOrderNo = item.OutOrderNo,
+                        LifePayType = item.LifePayType,
+                        Amount = item.Amount,
+                        ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses
+                    };
+
+                    await AddLifePayExpensesReceipts(input);
+
+                    /// 鍑鸿处
+                    if (item.RefundOrderNo.IsNotNullOrEmpty())
+                    {
+                        if (input.LifePayType == LifePayTypeEnum.WxPay)
+                        {
+                            input.OrderNo = item.RefundOrderNo;
+                        }
+
+                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
+                        await AddLifePayExpensesReceipts(input);
+                    }
+                    
+                   
+                }
+            }
+           
+        }
     }
 }
diff --git a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
index f6fec66..8d127f9 100644
--- a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs
@@ -35,30 +35,38 @@
             _dallyStatisticsRepository = dallyStatisticsRepository;
         }
 
-        public async Task<TopStatisticsOutput> GetTopStatistics()
+        public async Task<TopStatisticsOutput> GetTopStatistics(string channleId = "")
         {
             var today = DateTime.Now.Date;
-            var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.Date == today).FirstOrDefaultAsync();
+            var statistics = await _dallyStatisticsRepository.Where(x => x.CreationTime.Date == today)
+                .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.Channel == channleId)
+                .FirstOrDefaultAsync();
             if (statistics == null)
             {
                 /// 绱鏀舵锛氱粺璁″钩鍙拌处鎴蜂笅璁㈠崟鍒涘缓鏃堕棿鍦ㄦ槰澶╁強涔嬪墠鏀跺埌鐨勩�愮敤鎴锋敮浠樻垚鍔熺殑閲戦-閫�娆剧粰鐢ㄦ埛鐨勯噾棰濄�戯紱
-                var accumulatedReceipts = await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus != LifePayStatusEnum.鏈敮浠�).SumAsync(x => x.PayAmount) - await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�).SumAsync(x => (x.RefundPrice ?? 0));
+                var accumulatedReceipts = await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.PayStatus != LifePayStatusEnum.鏈敮浠�)
+                .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.PayAmount) - await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�).SumAsync(x => (x.RefundPrice ?? 0));
                 /// 鏄ㄦ棩鏀舵锛氱粺璁″钩鍙拌处鎴蜂笅璁㈠崟鍒涘缓鏃堕棿鍦ㄦ槰澶╂敹鍒扮殑銆愮敤鎴锋敮浠樻垚鍔熺殑閲戦-閫�娆剧粰鐢ㄦ埛鐨勯噾棰濄�戯紱
-                var receiptsYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.PayStatus == LifePayStatusEnum.宸叉敮浠�).SumAsync(x => x.PayAmount) - await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�).SumAsync(x => (x.RefundPrice ?? 0));
+                var receiptsYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.PayStatus == LifePayStatusEnum.宸叉敮浠�)
+                    .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.PayAmount) - await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�).SumAsync(x => (x.RefundPrice ?? 0));
                 /// 绱鏀跺叆锛氱粺璁″钩鍙拌处鎴蜂笅璁㈠崟鐘舵�佷负鈥滃凡瀹屾垚鈥濅笖璁㈠崟鍒涘缓鏃堕棿鍦ㄦ槰澶╁強涔嬪墠鏀跺埌鐨勩�愮敤鎴峰疄浠橀噾棰�-骞冲彴鎵f閲戦-閮ㄥ垎閫�娆鹃噾棰濄�戯紱
-                var accumulatedIncome = await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�).SumAsync(x => x.PayAmount - (x.PlatformDeductionAmount ?? 0) - (x.RefundPrice ?? 0));
+                var accumulatedIncome = await _lifePayOrderRepository.Where(x => x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�)
+                    .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).SumAsync(x => x.PayAmount - (x.PlatformDeductionAmount ?? 0) - (x.RefundPrice ?? 0));
                 /// 绱涓嬪崟锛氱粺璁″钩鍙颁腑璁㈠崟涓嬪崟鏃堕棿鍦ㄦ槰澶╁強涔嬪墠鏃堕棿鐨勮鍗曡褰曪紱
-                var accumulatedOrders = await _lifePayOrderRepository.Where(x => x.CreationTime < today).CountAsync();
+                var accumulatedOrders = await _lifePayOrderRepository.Where(x => x.CreationTime < today).WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).CountAsync();
                 /// 鏄ㄦ棩涓嬪崟锛氱粺璁″钩鍙颁腑璁㈠崟涓嬪崟鏃堕棿鍦ㄦ槰澶╃殑璁㈠崟璁板綍锛�
-                var ordersNumYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today).CountAsync();
+                var ordersNumYesterday = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today)
+                    .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).CountAsync();
                 /// 鏄ㄦ棩鎴愬姛锛氱粺璁″钩鍙颁腑璁㈠崟鐘舵�佷负鈥滃凡瀹屾垚/閮ㄥ垎鍏呭�兼垚鍔熲�濅笖璁㈠崟涓嬪崟鏃堕棿鍦ㄦ槰澶╃殑璁㈠崟璁板綍锛�
-                var yesterdaySuccess = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�).CountAsync();
+                var yesterdaySuccess = await _lifePayOrderRepository.Where(x => x.CreationTime >= today.AddDays(-1) && x.CreationTime < today && x.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�)
+                    .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).CountAsync();
                 /// 鏄ㄦ棩澶辫触锛氱粺璁″钩鍙颁腑璁㈠崟鐘舵�佷负鈥滃厖鍊煎け璐�/宸查��娆锯�濅笖璁㈠崟涓嬪崟鏃堕棿鍦ㄦ槰澶╃殑璁㈠崟璁板綍锛�
-                var yesterdayFail = 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.宸查��娆�)
+                    .WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.ChannelId == channleId).CountAsync();
                 /// 绱鐢ㄦ埛
-                var accumulatedUsers = await _lifePayUserRepository.CountAsync();
+                var accumulatedUsers = await _lifePayUserRepository.WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.CreationChannleNum == channleId).CountAsync();
                 /// 鏄ㄦ棩娲昏穬鐢ㄦ埛
-                var yesterdayActiveUsers = await _lifePayUserRepository.Where(x => x.LastLoginTime >= today.AddDays(-1)).CountAsync();
+                var yesterdayActiveUsers = await _lifePayUserRepository.WhereIf(string.IsNullOrWhiteSpace(channleId), x => x.CreationChannleNum == channleId).Where(x => x.LastLoginTime >= today.AddDays(-1)).CountAsync();
 
                 var entity = new DallyStatistics()
                 {
@@ -73,7 +81,8 @@
                     YesterdaySuccess = yesterdaySuccess,
                     YesterdayFail = yesterdayFail,
                     AccumulatedUsers = accumulatedUsers,
-                    YesterdayActiveUsers = yesterdayActiveUsers
+                    YesterdayActiveUsers = yesterdayActiveUsers,
+                    Channel = channleId
                 };
                 await _dallyStatisticsRepository.InsertAsync(entity);
 
diff --git a/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs b/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs
index c1266ee..82d0a98 100644
--- a/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs
+++ b/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs
@@ -928,8 +928,8 @@
         public string TradeStateDesc { get; set; }
 
 
-        [JsonProperty("success_time ")]
-        public string SuccessTime { get; set; }
+        [JsonProperty("success_time")]
+        public string? SuccessTime { get; set; }
 
         // <summary>
         /// 閲戦淇℃伅
diff --git a/LifePayment/LifePayment.Domain/Common/ChannelFilter.cs b/LifePayment/LifePayment.Domain/Common/ChannelFilter.cs
index 3f0984f..f734643 100644
--- a/LifePayment/LifePayment.Domain/Common/ChannelFilter.cs
+++ b/LifePayment/LifePayment.Domain/Common/ChannelFilter.cs
@@ -23,11 +23,8 @@
             if (CurrentUser.ClientId == Constant.ClientType.Back && !CurrentUser.IsSystem)
             {
                 var queryUser = UserChannleRepository.Where(r => r.UserId == CurrentUser.Id).Select(s => s.ChannleId).ToList();
-                if (queryUser.Count() > 0)
-                {
-                    var queryResult = query.Where(s => (!string.IsNullOrEmpty(s.ChannelId) && queryUser.Contains(s.ChannelId)) || string.IsNullOrEmpty(s.ChannelId) || queryUser.Count() == 0);
-                    return queryResult;
-                }
+                var queryResult = query.Where(s => (!string.IsNullOrEmpty(s.ChannelId) && queryUser.Contains(s.ChannelId)));
+                return queryResult;
             }
 
             return query;
@@ -38,11 +35,8 @@
             if (CurrentUser.ClientId == Constant.ClientType.Back && !CurrentUser.IsSystem)
             {
                 var queryUser = UserChannleRepository.Where(r => r.UserId == CurrentUser.Id).Select(s => s.ChannleId).ToList();
-                if (queryUser.Count() > 0)
-                {
-                    var queryResult = query.Where(s => (!string.IsNullOrEmpty(s.CreationChannleNum) && queryUser.Contains(s.CreationChannleNum)) || string.IsNullOrEmpty(s.CreationChannleNum));
-                    return queryResult;
-                }
+                var queryResult = query.Where(s => (!string.IsNullOrEmpty(s.CreationChannleNum) && queryUser.Contains(s.CreationChannleNum)));
+                return queryResult;
             }
 
             return query;
diff --git a/LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs b/LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs
index eeb5cbe..5b90509 100644
--- a/LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs
+++ b/LifePayment/LifePayment.Domain/LifePay/DallyStatistics.cs
@@ -62,4 +62,9 @@
     /// 鏄ㄦ棩娲昏穬鐢ㄦ埛
     /// </summary>
     public int YesterdayActiveUsers { get; set; }
+
+    /// <summary>
+    /// 缁熻娓犻亾
+    /// </summary>
+    public string Channel { get; set; }
 }
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Domain/LifePay/LifePayExpensesReceipts.cs b/LifePayment/LifePayment.Domain/LifePay/LifePayExpensesReceipts.cs
index 56cc7be..d2f492b 100644
--- a/LifePayment/LifePayment.Domain/LifePay/LifePayExpensesReceipts.cs
+++ b/LifePayment/LifePayment.Domain/LifePay/LifePayExpensesReceipts.cs
@@ -36,7 +36,7 @@
         /// <summary>
         /// 鏀舵敮绫诲瀷
         /// </summary>
-        public ExpensesReceiptsTypeEnum ExpensesReceiptsType { get; set; }
+        public ExpensesReceiptsTypeEnum? ExpensesReceiptsType { get; set; }
 
         /// <summary>
         /// 浜ゆ槗閲戦
diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
index 9bb9d5f..304c7d8 100644
--- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
@@ -63,7 +63,7 @@
             </summary>
             <returns></returns>
         </member>
-        <member name="M:LifePayment.HttpApi.LifePayController.GetTopStatistics">
+        <member name="M:LifePayment.HttpApi.LifePayController.GetTopStatistics(System.String)">
             <summary>
             鑾峰彇椤堕儴缁熻鏁版嵁
             </summary>
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index e3c5027..5c0289b 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -346,6 +346,11 @@
             瀹㈡埛韬唤璇佸悗6浣嶏紝鍗楃綉蹇呬紶銆�
             </summary>
         </member>
+        <member name="P:LifePayment.Application.Contracts.LifeElectricData.Name">
+            <summary>
+            鎴蜂富濮撳悕
+            </summary>
+        </member>
         <member name="P:LifePayment.Application.Contracts.LifeGasData.ParValue">
             <summary>
             鍏呭�奸潰棰濓紝鍗曚綅涓哄厓銆�
@@ -776,11 +781,6 @@
             浜ゆ槗閲戦
             </summary>
         </member>
-        <member name="P:LifePayment.Application.Contracts.AddLifePayExpensesReceiptsInput.ExtraProperties">
-            <summary>
-            鎷撳睍灞炴��
-            </summary>
-        </member>
         <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsPageInput.KeyWord">
             <summary>
             鏌ヨ鏉′欢
@@ -806,6 +806,36 @@
             浜ゆ槗缁撴潫鏃堕棿
             </summary>
         </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsTemp.OrderNo">
+            <summary>
+            骞冲彴璁㈠崟鍙�
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsTemp.RefundOrderNo">
+            <summary>
+            閫�娆捐鍗曠紪鍙�
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsTemp.OutOrderNo">
+            <summary>
+            娓犻亾娴佹按鍙�
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsTemp.LifePayType">
+            <summary>
+            鏀粯娓犻亾
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsTemp.ExpensesReceiptsType">
+            <summary>
+            鏀舵敮绫诲瀷
+            </summary>
+        </member>
+        <member name="P:LifePayment.Application.Contracts.LifePayExpensesReceiptsTemp.Amount">
+            <summary>
+            浜ゆ槗閲戦
+            </summary>
+        </member>
         <member name="P:LifePayment.Application.Contracts.LifePayIntroInfoInput.LifePayType">
             <summary>
             鐢熸椿缂磋垂绫诲瀷
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index 434d829..bdd5ba4 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -53,9 +53,9 @@
         /// <returns></returns>
         [HttpGet]
         [AllowAnonymous]
-        public async Task<TopStatisticsOutput> GetTopStatistics()
+        public async Task<TopStatisticsOutput> GetTopStatistics(string channleId = "")
         {
-            return await _statisticsService.GetTopStatistics();
+            return await _statisticsService.GetTopStatistics(channleId);
         }
 
         /// <summary>
@@ -495,7 +495,16 @@
         [AllowAnonymous]
         public async Task<WxPayDomesticRefundsQueryReponse> WxPayDomesticRefundsQuery(string outTradeNo)
         {
-            return await _lifePayService.WxPayDomesticRefundsQuery(outTradeNo);
+            var res = await _lifePayService.WxPayDomesticRefundsQuery(outTradeNo);
+            await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
+            {
+                OrderNo = res.OutTradeNo,
+                OutOrderNo = res.TransactionId,
+                LifePayType = LifePayTypeEnum.WxPay,
+                ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
+                Amount = Convert.ToDecimal(res.Amount.Total)
+            });
+            return res;
         }
 
         /// <summary>
@@ -519,6 +528,13 @@
             return res;
         }
 
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task GetAllLifePayExpensesReceipts()
+        {
+            await _lifePayOrderService.GetAllLifePayExpensesReceipts();
+        }
+
         #endregion
 
         #region 鎿嶄綔

--
Gitblit v1.9.1