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