refactor: 优化交易状态枚举处理方式
- 为TradeStatusEnum枚举添加Description特性标注 - 重构GetTradeStatusDescription方法,使用反射获取Description特性值 - 简化ParseTradeStatus方法,使用Enum.TryParse替代switch表达式 - 提高代码可维护性,避免硬编码状态描述
This commit is contained in:
@@ -12,6 +12,8 @@ using Yi.Framework.AiHub.Application.Contracts.IServices;
|
||||
using Volo.Abp;
|
||||
using Yi.Framework.AiHub.Domain.Entities.Pay;
|
||||
using Yi.Framework.SqlSugarCore.Abstractions;
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Yi.Framework.AiHub.Application.Services;
|
||||
|
||||
@@ -147,15 +149,9 @@ public class PayService : ApplicationService, IPayService
|
||||
/// <returns>状态描述</returns>
|
||||
private string GetTradeStatusDescription(TradeStatusEnum tradeStatus)
|
||||
{
|
||||
return tradeStatus switch
|
||||
{
|
||||
TradeStatusEnum.WAIT_TRADE => "准备发起",
|
||||
TradeStatusEnum.WAIT_BUYER_PAY => "等待买家付款",
|
||||
TradeStatusEnum.TRADE_SUCCESS => "交易成功",
|
||||
TradeStatusEnum.TRADE_FINISHED => "交易结束",
|
||||
TradeStatusEnum.TRADE_CLOSED => "交易关闭",
|
||||
_ => "未知状态"
|
||||
};
|
||||
var fieldInfo = tradeStatus.GetType().GetField(tradeStatus.ToString());
|
||||
var descriptionAttribute = fieldInfo?.GetCustomAttribute<DescriptionAttribute>();
|
||||
return descriptionAttribute?.Description ?? "未知状态";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -165,13 +161,10 @@ public class PayService : ApplicationService, IPayService
|
||||
/// <returns></returns>
|
||||
private TradeStatusEnum ParseTradeStatus(string tradeStatus)
|
||||
{
|
||||
return tradeStatus switch
|
||||
if (Enum.TryParse<TradeStatusEnum>(tradeStatus, out var result))
|
||||
{
|
||||
"WAIT_BUYER_PAY" => TradeStatusEnum.WAIT_BUYER_PAY,
|
||||
"TRADE_SUCCESS" => TradeStatusEnum.TRADE_SUCCESS,
|
||||
"TRADE_FINISHED" => TradeStatusEnum.TRADE_FINISHED,
|
||||
"TRADE_CLOSED" => TradeStatusEnum.TRADE_CLOSED,
|
||||
_ => TradeStatusEnum.WAIT_TRADE
|
||||
};
|
||||
return result;
|
||||
}
|
||||
return TradeStatusEnum.WAIT_TRADE;
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,36 @@
|
||||
namespace Yi.Framework.AiHub.Domain.Shared.Enums;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Yi.Framework.AiHub.Domain.Shared.Enums;
|
||||
|
||||
public enum TradeStatusEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 准备发起
|
||||
/// </summary>
|
||||
[Description("准备发起")]
|
||||
WAIT_TRADE = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 交易创建
|
||||
/// </summary>
|
||||
[Description("等待买家付款")]
|
||||
WAIT_BUYER_PAY = 10,
|
||||
|
||||
/// <summary>
|
||||
/// 交易关闭
|
||||
/// </summary>
|
||||
[Description("交易关闭")]
|
||||
TRADE_CLOSED = 20,
|
||||
|
||||
/// <summary>
|
||||
/// 交易成功
|
||||
/// </summary>
|
||||
[Description("交易成功")]
|
||||
TRADE_SUCCESS = 100,
|
||||
|
||||
/// <summary>
|
||||
/// 交易结束
|
||||
/// </summary>
|
||||
[Description("交易结束")]
|
||||
TRADE_FINISHED = -10
|
||||
}
|
||||
Reference in New Issue
Block a user