feat: 实现租户管理及套餐流程
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using TakeoutSaaS.Application.App.Tenants.Dto;
|
||||
using TakeoutSaaS.Domain.Tenants.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Application.App.Tenants;
|
||||
|
||||
/// <summary>
|
||||
/// 租户 DTO 映射助手。
|
||||
/// </summary>
|
||||
internal static class TenantMapping
|
||||
{
|
||||
public static TenantDto ToDto(Tenant tenant, TenantSubscription? subscription, TenantVerificationProfile? verification)
|
||||
=> new()
|
||||
{
|
||||
Id = tenant.Id,
|
||||
Code = tenant.Code,
|
||||
Name = tenant.Name,
|
||||
ShortName = tenant.ShortName,
|
||||
ContactName = tenant.ContactName,
|
||||
ContactPhone = tenant.ContactPhone,
|
||||
ContactEmail = tenant.ContactEmail,
|
||||
Status = tenant.Status,
|
||||
VerificationStatus = verification?.Status ?? Domain.Tenants.Enums.TenantVerificationStatus.Draft,
|
||||
CurrentPackageId = subscription?.TenantPackageId,
|
||||
EffectiveFrom = subscription?.EffectiveFrom ?? tenant.EffectiveFrom,
|
||||
EffectiveTo = subscription?.EffectiveTo ?? tenant.EffectiveTo,
|
||||
AutoRenew = subscription?.AutoRenew ?? false
|
||||
};
|
||||
|
||||
public static TenantVerificationDto? ToVerificationDto(this TenantVerificationProfile? profile)
|
||||
=> profile == null
|
||||
? null
|
||||
: new TenantVerificationDto
|
||||
{
|
||||
Id = profile.Id,
|
||||
TenantId = profile.TenantId,
|
||||
Status = profile.Status,
|
||||
BusinessLicenseNumber = profile.BusinessLicenseNumber,
|
||||
BusinessLicenseUrl = profile.BusinessLicenseUrl,
|
||||
LegalPersonName = profile.LegalPersonName,
|
||||
LegalPersonIdNumber = profile.LegalPersonIdNumber,
|
||||
BankAccountNumber = profile.BankAccountNumber,
|
||||
BankName = profile.BankName,
|
||||
ReviewRemarks = profile.ReviewRemarks,
|
||||
ReviewedByName = profile.ReviewedByName,
|
||||
ReviewedAt = profile.ReviewedAt
|
||||
};
|
||||
|
||||
public static TenantSubscriptionDto? ToSubscriptionDto(this TenantSubscription? subscription)
|
||||
=> subscription == null
|
||||
? null
|
||||
: new TenantSubscriptionDto
|
||||
{
|
||||
Id = subscription.Id,
|
||||
TenantId = subscription.TenantId,
|
||||
TenantPackageId = subscription.TenantPackageId,
|
||||
Status = subscription.Status,
|
||||
EffectiveFrom = subscription.EffectiveFrom,
|
||||
EffectiveTo = subscription.EffectiveTo,
|
||||
NextBillingDate = subscription.NextBillingDate,
|
||||
AutoRenew = subscription.AutoRenew
|
||||
};
|
||||
|
||||
public static TenantAuditLogDto ToDto(this TenantAuditLog log)
|
||||
=> new()
|
||||
{
|
||||
Id = log.Id,
|
||||
TenantId = log.TenantId,
|
||||
Action = log.Action,
|
||||
Title = log.Title,
|
||||
Description = log.Description,
|
||||
OperatorName = log.OperatorName,
|
||||
PreviousStatus = log.PreviousStatus,
|
||||
CurrentStatus = log.CurrentStatus,
|
||||
CreatedAt = log.CreatedAt
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user