From 02560316633da0dd2051014a99bd4153150b2fb5 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期一, 07 四月 2025 10:50:55 +0800
Subject: [PATCH] fix:bug修复
---
LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 81 ++++++++++++++++++++++------------------
1 files changed, 45 insertions(+), 36 deletions(-)
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index cba8a53..5189d7c 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -160,7 +160,7 @@
/// <returns></returns>
public async Task<List<LifePayRateListOutput>> GetRate()
{
- return await _lifePayRateRepository.Where(x => x.IsDeleted == false).Select(x => new LifePayRateListOutput() { Id = x.Id, Rate = x.Rate, RateType = x.RateType })
+ return await _lifePayRateRepository.Select(x => new LifePayRateListOutput() { Id = x.Id, Rate = x.Rate, RateType = x.RateType })
.ToListAsync();
}
@@ -170,7 +170,7 @@
/// <returns></returns>
public async Task<ChannelRateOutput> GetChannelRate(ChannelsBaseInput input)
{
- return _lifePayChannlesRep.Where(x => x.IsDeleted == false && x.ChannlesNum == input.CheckChannelId).Select(x => new ChannelRateOutput() { ChannlesRate = x.ChannlesRate })
+ return _lifePayChannlesRep.Where(x => x.ChannlesNum == input.CheckChannelId).Select(x => new ChannelRateOutput() { ChannlesRate = x.ChannlesRate })
.FirstOrDefault();
}
@@ -180,7 +180,7 @@
/// <returns></returns>
public async Task<List<LifePayPremiumListOutput>> GetPremium()
{
- return await _lifePayPremiumRepository.Where(x => x.IsDeleted == false).Select(x => new LifePayPremiumListOutput() { Id = x.Id, Rate = x.Rate, PremiumType = x.PremiumType })
+ return await _lifePayPremiumRepository.Select(x => new LifePayPremiumListOutput() { Id = x.Id, Rate = x.Rate, PremiumType = x.PremiumType })
.ToListAsync();
}
@@ -190,7 +190,7 @@
/// <returns></returns>
public async Task<List<LifePayIntroInfoOutput>> GetIntroInfo(LifePayOrderTypeEnum lifePayType)
{
- return await _lifePayIntroInfoRepository.Where(x => x.IsDeleted == false && x.LifePayType == lifePayType).OrderBy(x => x.Sequence)
+ return await _lifePayIntroInfoRepository.Where(x => x.LifePayType == lifePayType).OrderBy(x => x.Sequence)
.Select(x => new LifePayIntroInfoOutput() { Type = x.Type, ContentSummary = x.ContentSummary, Content = x.Content, LifePayType = x.LifePayType, Path = x.Path, Sequence = x.Sequence })
.ToListAsync();
}
@@ -202,7 +202,7 @@
/// <returns></returns>
public async Task<PageOutput<UserListOutput>> GetUserPage(QueryUserPageInput input)
{
- return await _channelFilter.GetChannelLifePayUserFilter(_lifePayUserRepository).Where(x => x.IsDeleted == false)
+ return await _channelFilter.GetChannelLifePayUserFilter(_lifePayUserRepository)
.WhereIf(!string.IsNullOrEmpty(input.QueryCondition), x => x.PhoneNumber.Contains(input.QueryCondition) || x.Name.Contains(input.QueryCondition))
.WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin)
.WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd)
@@ -467,7 +467,7 @@
var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
var platformRate = await _lifePayRateRepository.FirstOrDefaultAsync(r => r.RateType == LifePayRateTypeEnum.渚涘簲鍟嗘姌鎵d环);
var channle = await _lifePayChannlesRep.FirstOrDefaultAsync(r => r.ChannlesNum == order.ChannelId);
- var premium = await _lifePayPremiumRepository.Where(x => x.IsDeleted == false && x.PremiumType == order.LifePayType).FirstOrDefaultAsync();
+ var premium = await _lifePayPremiumRepository.Where(x => x.PremiumType == order.LifePayType).FirstOrDefaultAsync();
CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
var user = await _lifePayUserRepository.FirstOrDefaultAsync(x => x.Id == order.UserId);
@@ -607,9 +607,9 @@
return await GetLifePayChannlesListFilter().GetPageResult(input.PageModel);
}
- public async Task<List<CreateEditPayChannelsInput>> GetLifePayChannlesAllList()
+ public async Task<List<CreateEditPayChannelsInput>> GetLifePayChannlesAllList(QueryLifePayChannlesInput input)
{
- return await GetLifePayChannlesListFilter().Where(x => x.Status == LifePayChannelsStatsEnum.鍚敤).ToListAsync();
+ return await GetLifePayChannlesListFilter().WhereIf(input.Status.HasValue,x => x.Status == input.Status).ToListAsync();
}
public async Task<CreateEditPayChannelsInput> GetLifePayChannlesDto(Guid id)
@@ -669,7 +669,7 @@
return new PageOutput<UserAccountOutput>();
}
- var result = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.IsDeleted == false)
+ var result = await _lifePayAccount.Where(x => x.UserId == input.UserId)
.WhereIf(input.LifePayOrderType.HasValue, x => x.LifePayType == input.LifePayOrderType)
.OrderByDescending(x => x.CreationTime)
.Select(x =>
@@ -696,7 +696,7 @@
return new List<UserAccountOutput>();
}
- var result = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.IsDeleted == false)
+ var result = await _lifePayAccount.Where(x => x.UserId == input.UserId)
.WhereIf(input.LifePayOrderType.HasValue, x => x.LifePayType == input.LifePayOrderType)
.OrderByDescending(x => x.CreationTime)
.Select(x =>
@@ -929,10 +929,11 @@
var channle = await GetLifePayChannlesDtoByNum(input.ChannelId);
CheckExtensions.IfTrueThrowUserFriendlyException(channle == null, "娓犻亾涓嶅瓨鍦�");
- var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
+ var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder
+ && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
&& x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑
- && x.OrderParamDetailJsonStr.Contains(input.ProductData.Phone)).ToListAsync();
- CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
+ && x.OrderParamDetailJsonStr.Contains(input.ProductData.Phone)).AnyAsync();
+ CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
//var rate = await GetRate();
//CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
@@ -992,8 +993,8 @@
//CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.ElectricOrder && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
&& x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑 && x.OrderParamDetailJsonStr.Contains(input.ProductData.ElectricType)
- && x.OrderParamDetailJsonStr.Contains(input.ProductData.ElectricAccount)).ToListAsync();
- CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
+ && x.OrderParamDetailJsonStr.Contains(input.ProductData.ElectricAccount)).AnyAsync();
+ CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
var rate = await GetLifePayRate(channle, LifePayRateTypeEnum.榛樿鐢佃垂鎶樻墸);
@@ -1046,8 +1047,8 @@
//CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.GasOrder && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
&& x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑 && x.OrderParamDetailJsonStr.Contains(input.ProductData.GasOrgType)
- && x.OrderParamDetailJsonStr.Contains(input.ProductData.GasAccount)).ToListAsync();
- CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
+ && x.OrderParamDetailJsonStr.Contains(input.ProductData.GasAccount)).AnyAsync();
+ CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
var rate = await GetLifePayRate(channle, LifePayRateTypeEnum.榛樿鐕冩皵鎶樻墸);
@@ -1130,7 +1131,6 @@
CheckExtensions.IfTrueThrowUserFriendlyException(order.ACOOLYStatus != ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�, "璇ヨ鍗曟棤娉曚慨鏀瑰埌璐﹂噾棰�");
order.ActualReceivedAmount = input.ActualReceivedAmount;
-
await _lifePayOrderRepository.UpdateAsync(order);
return Constant.SUCCESS;
@@ -1194,11 +1194,7 @@
OutOrderNo = orderNo
};
var result = await _aCOOLYManager.ConfirmElectricOrder(requestInput);
-#if DEBUG
-
_logger.LogInformation($"CreateACOOLYElectricOrder:{JsonConvert.SerializeObject(result)}");
-
-#endif
CheckExtensions.IfTrueThrowUserFriendlyException(!result.Success || (result.Code != ACOOLYConstant.Code.SUCCESS && result.Code != ACOOLYConstant.Code.PROCESSING),
result.Message);
@@ -1318,6 +1314,7 @@
order.PayStatus = LifePayStatusEnum.宸叉敮浠�;
order.PayTime = DateTime.Now;
order.OutOrderNo = outOrderNo;
+
try
{
var result = (Code: "Fail", RequestNo: "", ACOOLYOrderNo: "");
@@ -1341,14 +1338,21 @@
//SetOrderStatus(order, result.Code);
order.OutRequestNo = result.RequestNo.IsNullOrEmpty() ? null : result.RequestNo;
order.ACOOLYOrderNo = result.ACOOLYOrderNo;
+ order.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑;
+
+ /// 鍒涘缓鐢熸椿缂磋垂娑堣垂璁板綍
+ await _lifePayOrderService.CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, order.OrderNo, order.ACOOLYOrderNo,
+ order.PlatformDeductionAmount ?? 0, order.ChannelId, order.CreationTime, order.FinishTime);
}
catch (Exception ex)
{
_logger.LogError(ex, "澶勭悊鐢熸椿缂磋垂鏀粯鎴愬姛鍥炶皟鏃跺紓甯�");
order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�;
order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�;
+ order.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�煎け璐�;
order.RefundApplyRemark = ex.Message;
}
+
_logger.LogError("鐢熸椿缂磋垂璁㈠崟鐘舵�侊細" + order.LifePayOrderStatus.ToString());
await _lifePayOrderRepository.UpdateAsync(order);
}
@@ -1362,10 +1366,11 @@
{
case LifePayRefundStatusEnum.宸查��娆�:
order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�;
- order.ACOOLYStatus = ACOOLYStatusEnum.宸查��娆�;
+ order.LifePayRefundStatus = LifePayRefundStatusEnum.宸查��娆�;
break;
case LifePayRefundStatusEnum.閫�娆句腑:
order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑;
+ order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑;
break;
default: break;
}
@@ -1411,6 +1416,7 @@
if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�)
{
+ ///缁撶畻娓犻亾浣i噾
/// 姣涘埄
var grossProfit = order.RechargeAmount * (order.ChannleRate - order.PlatformRate) / 100;
/// 娓犻亾浣i噾 锛�(鍏呭�奸潰棰� * 娓犻亾鎶樻墸姣斾緥)-(鍏呭�奸潰棰� * 骞冲彴鎶樻墸姣斾緥)锛�* 浣i噾姣斾緥
@@ -1420,15 +1426,19 @@
LifePayChannlesRake lifePayChannlesRake = new LifePayChannlesRake()
{
OrderNo = order.OrderNo,
- PayAmount = order.PayAmount.Value,
- ChannlesRakeRate = order.ChannlesRakeRate.Value,
- ChannlesRakePrice = channlesRakePrice.Value,
+ PayAmount = order.RechargeAmount ?? 0,
+ ChannlesRakeRate = order.ChannlesRakeRate ?? 0,
+ ChannlesRakePrice = channlesRakePrice ?? 0,
FinishTime = order.FinishTime.Value,
ChannelId = order.ChannelId,
};
await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake);
}
}
+
+ /// 鍒涘缓鐢熸椿缂磋垂娑堣垂璁板綍
+ await _lifePayOrderService.CreatLifePayConsumption(acoolyStatus, order.OrderNo, order.ACOOLYOrderNo,
+ order.PlatformDeductionAmount ?? 0, order.ChannelId, order.CreationTime, order.FinishTime);
}
/// <summary>
@@ -1605,9 +1615,9 @@
var userAccount = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.Id == input.Id)
.FirstOrDefaultAsync();
CheckExtensions.IfTrueThrowUserFriendlyException(userAccount == null, "鎴峰彿涓嶅瓨鍦�");
- var repeatAccountContent = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.LifePayType == input.LifePayType && x.Content == input.Content && x.Id != input.Id && x.IsDeleted == false)
- .FirstOrDefaultAsync();
- CheckExtensions.IfTrueThrowUserFriendlyException(repeatAccountContent != null, "鎴峰彿宸插瓨鍦�");
+ var repeatAccountContent = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.LifePayType == input.LifePayType && x.Content == input.Content && x.Id != input.Id)
+ .AnyAsync();
+ CheckExtensions.IfTrueThrowUserFriendlyException(repeatAccountContent, "鎴峰彿宸插瓨鍦�");
userAccount.LifePayType = input.LifePayType;
userAccount.Content = input.Content;
@@ -1620,8 +1630,8 @@
else
{
var repeatAccountContent = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.LifePayType == input.LifePayType && x.Content == input.Content && x.IsDeleted == false)
- .FirstOrDefaultAsync();
- CheckExtensions.IfTrueThrowUserFriendlyException(repeatAccountContent != null, "鎴峰彿宸插瓨鍦�");
+ .AnyAsync();
+ CheckExtensions.IfTrueThrowUserFriendlyException(repeatAccountContent, "鎴峰彿宸插瓨鍦�");
var userAccount = new LifePayAccount
{
Id = Guid.NewGuid(),
@@ -1663,6 +1673,7 @@
userAccount.DeleterId = userAccount.UserId;
userAccount.DeletionTime = DateTime.Now;
userAccount.IsDeleted = true;
+
return Constant.SUCCESS;
}
@@ -1696,9 +1707,7 @@
await _lifePayOrderRepository.UpdateAsync(order);
#region 璁板綍鏃ュ織
-
- await PublishLifePayOrderHistoryEvent("閫�娆鹃┏鍥�", "閫�娆�", order.Id);
-
+ await LifePayOrderHistory("閫�娆鹃┏鍥�", "閫�娆鹃┏鍥�", order.Id, (int)OperateHistoryTypeEnum.LifePayRefund);
#endregion
}
else
@@ -2214,7 +2223,7 @@
var channlesRakePrice = grossProfit * (channlesRakeRate) / 100;
/// 鍒╂鼎
- var profit = grossProfit - channlesRakePrice - (premiumRate);
+ var profit = grossProfit - channlesRakePrice - premiumPrice;
return new OrderPriceReturn()
{
@@ -2248,7 +2257,7 @@
CheckExtensions.IfTrueThrowUserFriendlyException(order.LifePayType.HasValue, "褰撳墠璁㈠崟宸查�夋嫨鏀粯绫诲瀷");
order.LifePayType = lifePayType;
- var premium = await _lifePayPremiumRepository.Where(x => x.IsDeleted == false && x.PremiumType == order.LifePayType).FirstOrDefaultAsync();
+ var premium = await _lifePayPremiumRepository.Where(x => x.PremiumType == order.LifePayType).FirstOrDefaultAsync();
order.PremiumRate = premium == null ? 0 : premium.Rate;
await _lifePayOrderRepository.UpdateAsync(order);
--
Gitblit v1.9.1