From 0991d5d484c661e27cdb2483c0316edd20c9bfa3 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 4 Jan 2026 02:52:43 -0800 Subject: [PATCH] fix(authorization): allow querying REVOKED records despite deletedAt being set MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 撤销授权时会同时设置 status=REVOKED 和 deletedAt(软删除), 导致 findByStatus(REVOKED) 因为 deletedAt IS NULL 条件永远返回空。 修改为查询 REVOKED 状态时不过滤 deletedAt。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../repositories/authorization-role.repository.impl.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/services/authorization-service/src/infrastructure/persistence/repositories/authorization-role.repository.impl.ts b/backend/services/authorization-service/src/infrastructure/persistence/repositories/authorization-role.repository.impl.ts index f3c1c954..9ae901f2 100644 --- a/backend/services/authorization-service/src/infrastructure/persistence/repositories/authorization-role.repository.impl.ts +++ b/backend/services/authorization-service/src/infrastructure/persistence/repositories/authorization-role.repository.impl.ts @@ -183,8 +183,12 @@ export class AuthorizationRoleRepositoryImpl implements IAuthorizationRoleReposi } async findByStatus(status: AuthorizationStatus): Promise { + // 查询 REVOKED 状态时不过滤 deletedAt,因为撤销操作会同时设置 deletedAt + const whereClause = status === AuthorizationStatus.REVOKED + ? { status } + : { status, ...this.notDeleted } const records = await this.prisma.authorizationRole.findMany({ - where: { status, ...this.notDeleted }, + where: whereClause, }) return records.map((record) => this.toDomain(record)) }