using GFramework.Core.Abstractions.cqrs.query;
using GFramework.Core.Abstractions.query;
using GFramework.Core.rule;
namespace GFramework.Core.query;
///
/// 抽象查询类,提供查询操作的基础实现
///
/// 查询输入参数的类型,必须实现IQueryInput接口
/// 查询结果的类型
public abstract class AbstractQuery(TInput input) : ContextAwareBase, IQuery
where TInput : IQueryInput
{
///
/// 执行查询操作
///
/// 查询结果,类型为TResult
public TResult Do()
{
return OnDo(input);
}
///
/// 抽象方法,用于实现具体的查询逻辑
///
/// 查询输入参数
/// 查询结果,类型为TResult
protected abstract TResult OnDo(TInput input);
}