mi-assessment/server/MiAssessment/src/MiAssessment.Core/Interfaces/IPaymentRewardHandler.cs
2026-02-03 14:25:01 +08:00

72 lines
1.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
};
}
}