From b4288a88cb00793368c8e9244a7b3181daeadb96 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期五, 28 三月 2025 16:11:11 +0800
Subject: [PATCH] fix:条件编译更新

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 112 insertions(+), 7 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index b50bf47..2655d8e 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -11,17 +11,29 @@
 using Volo.Abp.Domain.Repositories;
 using Microsoft.EntityFrameworkCore;
 using ZeroD.Util;
+using LifePayment.Domain;
+using static LifePayment.Domain.Shared.LifePaymentConstant;
+using Newtonsoft.Json;
 
 namespace LifePayment.Application.LifePay
 {
     public class LifePayOrderService : ApplicationService, ILifePayOrderService
     {
         private readonly IRepository<LifePayRechargeReceipts, Guid> _lifePayRechargeReceiptsRepository;
+        private readonly IRepository<LifePayExpensesReceipts, Guid> _lifePayExpensesReceiptsRepository;
+        private readonly IAliPayApi _aliPayApi;
+        private readonly IWxPayApi _wxPayApi;
 
         public LifePayOrderService(
-                              IRepository<LifePayRechargeReceipts, Guid> lifePayRechargeReceiptsRepository)
+                              IRepository<LifePayRechargeReceipts, Guid> lifePayRechargeReceiptsRepository,
+                              IRepository<LifePayExpensesReceipts, Guid> lifePayExpensesReceiptsRepository,
+                              IAliPayApi aliPayApi,
+                              IWxPayApi wxPayApi)
         {
             _lifePayRechargeReceiptsRepository = lifePayRechargeReceiptsRepository;
+            _lifePayExpensesReceiptsRepository = lifePayExpensesReceiptsRepository;
+            _aliPayApi = aliPayApi;
+            _wxPayApi = wxPayApi;
         }
 
         /// <summary>
@@ -32,7 +44,7 @@
         public async Task<LifePayRechargeReceiptsPageOutput<LifePayRechargeReceiptsListOutput>> GetLifePayRechargeReceiptsPage(LifePayRechargeReceiptsPageInput input)
         {
             var list = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false)
-                .WhereIf(input.OrderNo.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.OrderNo))
+                .WhereIf(input.KeyWord.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.KeyWord))
                 .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin)
                 .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd)
                 .Select(x => new LifePayRechargeReceiptsListOutput()
@@ -53,11 +65,7 @@
             return result;
         }
 
-        //public async Task<decimal> GetTotalLifePayRechargeReceipts()
-        //{
-        //    var result = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false).SumAsync(x => x.RechargeAmount);
-        //    return result;
-        //}
+
 
         /// <summary>
         /// 缂栬緫鍏呭�兼祦姘�
@@ -92,5 +100,102 @@
                 await _lifePayRechargeReceiptsRepository.InsertAsync(payRechargeReceipts);
             }
         }
+
+
+        public async Task<LifePayExpensesReceiptsPageOutput<LifePayExpensesReceiptsListOutput>> GetLifePayExpensesReceiptsPage(LifePayExpensesReceiptsPageInput input)
+        {
+            var list = await _lifePayExpensesReceiptsRepository.Where(x => x.IsDeleted == false)
+                .WhereIf(input.KeyWord.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.KeyWord))
+                .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin)
+                .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd)
+                .Select(x => new LifePayRechargeReceiptsListOutput()
+                {
+                    Id = x.Id,
+                    OrderNo = x.OrderNo,
+                    RechargeAmount = x.RechargeAmount,
+                    Remark = x.Remark,
+                    Voucher = x.Voucher.GetOssPath(),
+                    CreationTime = x.CreationTime,
+                })
+                .GetPageResult(input.PageModel);
+
+            var total = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false).SumAsync(x => x.RechargeAmount);
+            LifePayRechargeReceiptsPageOutput<LifePayRechargeReceiptsListOutput> result = new LifePayRechargeReceiptsPageOutput<LifePayRechargeReceiptsListOutput>();
+            result.Data = list.Data;
+            result.TotalRechargeAmount = total;
+            return result;
+        }
+
+        /// <summary>
+        /// 鎻掑叆鏀舵敮娴佹按
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task AddLifePayExpensesReceipts(AddLifePayExpensesReceiptsInput input)
+        {
+            var repeat = await _lifePayExpensesReceiptsRepository.Where(x => x.ExpensesReceiptsType == input.ExpensesReceiptsType
+            && x.OrderNo == input.OrderNo).FirstOrDefaultAsync();
+            if (repeat == null)
+            {
+                var data = new LifePayExpensesReceipts()
+                {
+                    Id = Guid.NewGuid(),
+                    OrderNo = input.OrderNo,
+                    OutOrderNo = input.OutOrderNo,
+                    LifePayType = input.LifePayType,
+                    ExpensesReceiptsType = input.ExpensesReceiptsType,
+                    Amount = input.Amount,
+                };
+
+                switch (input.LifePayType)
+                {
+                    case LifePayTypeEnum.AliPay:
+                        if (input.ExpensesReceiptsType == ExpensesReceiptsTypeEnum.Expenses)
+                        {
+                            var query = await _aliPayApi.OrderInQuiry(new OrderInQuiryInput() { OutTradeNo = input.OrderNo });
+                            if (query.Code == AlipayResultCode.Success && query.TradeStatus == AlipayStatus.TRADESUCCESS)
+                            {
+                                data.ExtraProperties = JsonConvert.SerializeObject(query);
+                                data.FinishTime = Convert.ToDateTime(query.SendPayDate);
+                                await _lifePayExpensesReceiptsRepository.InsertAsync(data);
+                            }
+                        }
+                        else
+                        {
+                            var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo });
+                            if (query.Code == AlipayResultCode.Success && query.RefundStatus == AlipayRefundStatus.Success)
+                            {
+                                data.ExtraProperties = JsonConvert.SerializeObject(query);
+                                //data.FinishTime = Convert.ToDateTime(query.SendPayDate);
+                                await _lifePayExpensesReceiptsRepository.InsertAsync(data);
+                            }
+                        }
+                        break;
+                    case LifePayTypeEnum.WxPay:
+                        if (input.ExpensesReceiptsType == ExpensesReceiptsTypeEnum.Expenses)
+                        {
+                            var query = await _wxPayApi.WxPayTradeQuery(input.OrderNo);
+                            if (query.Code == AlipayResultCode.Success && query.Status == WxPayStatus.鏀粯鎴愬姛)
+                            {
+                                data.ExtraProperties = JsonConvert.SerializeObject(query);
+                                data.FinishTime = Convert.ToDateTime(query.SuccessTime);
+                                await _lifePayExpensesReceiptsRepository.InsertAsync(data);
+                            }
+                        }
+                        else
+                        {
+                            var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OrderNo);
+                            if (query.Code == AlipayResultCode.Success && query.RefundStatus == WxPayRefundStatus.閫�娆炬垚鍔�)
+                            {
+                                data.ExtraProperties = JsonConvert.SerializeObject(query);
+                                data.FinishTime = Convert.ToDateTime(query.SuccessTime);
+                                await _lifePayExpensesReceiptsRepository.InsertAsync(data);
+                            }
+                        }
+                        break;
+                    default: break;
+                }
+            }
+        }
     }
 }

--
Gitblit v1.9.1