chore: add documentation comments and stylecop rules
This commit is contained in:
@@ -20,21 +20,20 @@ public sealed class ReviewMerchantCommandHandler(
|
||||
ICurrentUserAccessor currentUserAccessor)
|
||||
: IRequestHandler<ReviewMerchantCommand, MerchantDto>
|
||||
{
|
||||
private readonly IMerchantRepository _merchantRepository = merchantRepository;
|
||||
private readonly ITenantProvider _tenantProvider = tenantProvider;
|
||||
private readonly ICurrentUserAccessor _currentUserAccessor = currentUserAccessor;
|
||||
|
||||
public async Task<MerchantDto> Handle(ReviewMerchantCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
var tenantId = _tenantProvider.GetCurrentTenantId();
|
||||
var merchant = await _merchantRepository.FindByIdAsync(request.MerchantId, tenantId, cancellationToken)
|
||||
// 1. 读取商户
|
||||
var tenantId = tenantProvider.GetCurrentTenantId();
|
||||
var merchant = await merchantRepository.FindByIdAsync(request.MerchantId, tenantId, cancellationToken)
|
||||
?? throw new BusinessException(ErrorCodes.NotFound, "商户不存在");
|
||||
|
||||
// 2. 已审核通过则直接返回
|
||||
if (request.Approve && merchant.Status == MerchantStatus.Approved)
|
||||
{
|
||||
return MerchantMapping.ToDto(merchant);
|
||||
}
|
||||
|
||||
// 3. 更新审核状态
|
||||
var previousStatus = merchant.Status;
|
||||
merchant.Status = request.Approve ? MerchantStatus.Approved : MerchantStatus.Rejected;
|
||||
merchant.ReviewRemarks = request.Remarks;
|
||||
@@ -44,8 +43,9 @@ public sealed class ReviewMerchantCommandHandler(
|
||||
merchant.JoinedAt = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
await _merchantRepository.UpdateMerchantAsync(merchant, cancellationToken);
|
||||
await _merchantRepository.AddAuditLogAsync(new MerchantAuditLog
|
||||
// 4. 持久化与审计
|
||||
await merchantRepository.UpdateMerchantAsync(merchant, cancellationToken);
|
||||
await merchantRepository.AddAuditLogAsync(new MerchantAuditLog
|
||||
{
|
||||
TenantId = tenantId,
|
||||
MerchantId = merchant.Id,
|
||||
@@ -55,20 +55,21 @@ public sealed class ReviewMerchantCommandHandler(
|
||||
OperatorId = ResolveOperatorId(),
|
||||
OperatorName = ResolveOperatorName()
|
||||
}, cancellationToken);
|
||||
await _merchantRepository.SaveChangesAsync(cancellationToken);
|
||||
await merchantRepository.SaveChangesAsync(cancellationToken);
|
||||
|
||||
// 5. 返回 DTO
|
||||
return MerchantMapping.ToDto(merchant);
|
||||
}
|
||||
|
||||
private long? ResolveOperatorId()
|
||||
{
|
||||
var id = _currentUserAccessor.UserId;
|
||||
var id = currentUserAccessor.UserId;
|
||||
return id == 0 ? null : id;
|
||||
}
|
||||
|
||||
private string ResolveOperatorName()
|
||||
{
|
||||
var id = _currentUserAccessor.UserId;
|
||||
var id = currentUserAccessor.UserId;
|
||||
return id == 0 ? "system" : $"user:{id}";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user