72 lines
1.6 KiB
C#
72 lines
1.6 KiB
C#
using MiAssessment.Model.Entities;
|
||
|
||
namespace MiAssessment.Core.Interfaces;
|
||
|
||
/// <summary>
|
||
/// 支付奖励处理器接口
|
||
/// 用于处理支付成功后的奖励发放逻辑
|
||
/// </summary>
|
||
public interface IPaymentRewardHandler
|
||
{
|
||
/// <summary>
|
||
/// 处理的订单类型
|
||
/// </summary>
|
||
string OrderType { get; }
|
||
|
||
/// <summary>
|
||
/// 处理奖励发放
|
||
/// </summary>
|
||
/// <param name="order">支付订单</param>
|
||
/// <returns>奖励处理结果</returns>
|
||
Task<RewardResult> ProcessRewardAsync(PaymentOrder order);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 奖励处理结果
|
||
/// </summary>
|
||
public class RewardResult
|
||
{
|
||
/// <summary>
|
||
/// 是否成功
|
||
/// </summary>
|
||
public bool Success { get; set; }
|
||
|
||
/// <summary>
|
||
/// 消息(成功时为空,失败时为错误原因)
|
||
/// </summary>
|
||
public string? Message { get; set; }
|
||
|
||
/// <summary>
|
||
/// 奖励数据(JSON格式)
|
||
/// </summary>
|
||
public string? RewardData { get; set; }
|
||
|
||
/// <summary>
|
||
/// 创建成功结果
|
||
/// </summary>
|
||
/// <param name="rewardData">奖励数据</param>
|
||
/// <returns>成功结果</returns>
|
||
public static RewardResult Ok(string? rewardData = null)
|
||
{
|
||
return new RewardResult
|
||
{
|
||
Success = true,
|
||
RewardData = rewardData
|
||
};
|
||
}
|
||
|
||
/// <summary>
|
||
/// 创建失败结果
|
||
/// </summary>
|
||
/// <param name="message">错误消息</param>
|
||
/// <returns>失败结果</returns>
|
||
public static RewardResult Fail(string message)
|
||
{
|
||
return new RewardResult
|
||
{
|
||
Success = false,
|
||
Message = message
|
||
};
|
||
}
|
||
}
|