feat: 完成租户个人中心 API 首版实现

This commit is contained in:
2026-02-09 20:01:11 +08:00
parent f61554fc08
commit 2711893474
53 changed files with 2547 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Tenants.Entities;
/// <summary>
/// 租户账单/配额可见角色规则。
/// </summary>
public sealed class TenantVisibilityRoleRule : MultiTenantEntityBase
{
/// <summary>
/// 配额可见角色编码集合。
/// </summary>
public string[] QuotaVisibleRoleCodes { get; set; } = [];
/// <summary>
/// 账单可见角色编码集合。
/// </summary>
public string[] BillingVisibleRoleCodes { get; set; } = [];
}

View File

@@ -7,6 +7,26 @@ namespace TakeoutSaaS.Domain.Tenants.Repositories;
/// </summary>
public interface IOperationLogRepository
{
/// <summary>
/// 分页查询指定操作人的操作日志。
/// </summary>
/// <param name="tenantId">租户 ID。</param>
/// <param name="operatorId">操作人标识。</param>
/// <param name="from">开始时间UTC。</param>
/// <param name="to">结束时间UTC。</param>
/// <param name="page">页码(从 1 开始)。</param>
/// <param name="pageSize">每页条数。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>分页结果(数据与总数)。</returns>
Task<(IReadOnlyList<OperationLog> Items, int Total)> SearchByOperatorPagedAsync(
long tenantId,
string operatorId,
DateTime from,
DateTime to,
int page,
int pageSize,
CancellationToken cancellationToken = default);
/// <summary>
/// 新增操作日志。
/// </summary>

View File

@@ -7,6 +7,24 @@ namespace TakeoutSaaS.Domain.Tenants.Repositories;
/// </summary>
public interface ITenantPaymentRepository
{
/// <summary>
/// 分页查询支付记录。
/// </summary>
/// <param name="tenantId">租户 ID。</param>
/// <param name="from">开始时间UTC。</param>
/// <param name="to">结束时间UTC。</param>
/// <param name="page">页码(从 1 开始)。</param>
/// <param name="pageSize">每页条数。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>分页结果(数据与总数)。</returns>
Task<(IReadOnlyList<TenantPayment> Items, int Total)> SearchPagedAsync(
long tenantId,
DateTime from,
DateTime to,
int page,
int pageSize,
CancellationToken cancellationToken = default);
/// <summary>
/// 查询指定账单的支付记录列表。
/// </summary>

View File

@@ -0,0 +1,40 @@
using TakeoutSaaS.Domain.Tenants.Entities;
namespace TakeoutSaaS.Domain.Tenants.Repositories;
/// <summary>
/// 租户可见角色规则仓储。
/// </summary>
public interface ITenantVisibilityRoleRuleRepository
{
/// <summary>
/// 按租户获取规则。
/// </summary>
/// <param name="tenantId">租户 ID。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>规则实体,未配置时返回 null。</returns>
Task<TenantVisibilityRoleRule?> FindByTenantIdAsync(long tenantId, CancellationToken cancellationToken = default);
/// <summary>
/// 新增规则。
/// </summary>
/// <param name="rule">规则实体。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>异步任务。</returns>
Task AddAsync(TenantVisibilityRoleRule rule, CancellationToken cancellationToken = default);
/// <summary>
/// 更新规则。
/// </summary>
/// <param name="rule">规则实体。</param>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>异步任务。</returns>
Task UpdateAsync(TenantVisibilityRoleRule rule, CancellationToken cancellationToken = default);
/// <summary>
/// 保存变更。
/// </summary>
/// <param name="cancellationToken">取消标记。</param>
/// <returns>异步任务。</returns>
Task SaveChangesAsync(CancellationToken cancellationToken = default);
}