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