feat: tenants 列表支持名称/联系人/电话/认证状态过滤

This commit is contained in:
2025-12-14 16:12:25 +08:00
parent 456b575596
commit c5a3243bd8
5 changed files with 260 additions and 21 deletions

View File

@@ -28,6 +28,30 @@ public interface ITenantRepository
string? keyword,
CancellationToken cancellationToken = default);
/// <summary>
/// 分页查询租户(支持多条件过滤)。
/// </summary>
/// <param name="status">租户状态,为空不按状态过滤。</param>
/// <param name="verificationStatus">实名认证状态,为空不按认证状态过滤。</param>
/// <param name="name">租户名称,为空不按名称过滤。</param>
/// <param name="contactName">联系人姓名,为空不按联系人过滤。</param>
/// <param name="contactPhone">联系电话,为空不按电话过滤。</param>
/// <param name="keyword">兼容关键词:名称/编码/联系人/电话,为空不按关键字过滤。</param>
/// <param name="page">页码(从 1 开始)。</param>
/// <param name="pageSize">每页大小。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>分页数据与总数。</returns>
Task<(IReadOnlyList<Tenant> Items, int Total)> SearchPagedAsync(
TenantStatus? status,
TenantVerificationStatus? verificationStatus,
string? name,
string? contactName,
string? contactPhone,
string? keyword,
int page,
int pageSize,
CancellationToken cancellationToken = default);
/// <summary>
/// 新增租户。
/// </summary>
@@ -76,6 +100,16 @@ public interface ITenantRepository
/// <returns>实名资料实体,未提交返回 null。</returns>
Task<TenantVerificationProfile?> GetVerificationProfileAsync(long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 批量获取实名资料。
/// </summary>
/// <param name="tenantIds">租户 ID 列表。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>实名资料列表(未提交的不返回)。</returns>
Task<IReadOnlyList<TenantVerificationProfile>> GetVerificationProfilesAsync(
IReadOnlyCollection<long> tenantIds,
CancellationToken cancellationToken = default);
/// <summary>
/// 新增或更新实名资料。
/// </summary>
@@ -92,6 +126,16 @@ public interface ITenantRepository
/// <returns>当前有效订阅,若无则 null。</returns>
Task<TenantSubscription?> GetActiveSubscriptionAsync(long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 批量获取当前订阅。
/// </summary>
/// <param name="tenantIds">租户 ID 列表。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>订阅列表(可能包含同一租户的多条订阅记录)。</returns>
Task<IReadOnlyList<TenantSubscription>> GetSubscriptionsAsync(
IReadOnlyCollection<long> tenantIds,
CancellationToken cancellationToken = default);
/// <summary>
/// 依据订阅 ID 查询。
/// </summary>