fix(identity): 使用Prisma直接查询用户详情
getUserDetailBySequence 方法改用 Prisma 直接查询数据库, 以获取 email 和 realName 等领域模型中未暴露的字段。 之前的实现通过领域模型 UserAccount 访问这些字段会导致编译错误, 因为领域模型没有直接暴露这些属性。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
93f6a53bdb
commit
e9a64a8163
|
|
@ -3,6 +3,7 @@ import { ApiTags, ApiOperation, ApiResponse, ApiProperty } from '@nestjs/swagger
|
|||
import { IsArray, IsString } from 'class-validator';
|
||||
import { Public } from '@/shared/guards/jwt-auth.guard';
|
||||
import { UserAccountRepositoryImpl } from '@/infrastructure/persistence/repositories/user-account.repository.impl';
|
||||
import { PrismaService } from '@/infrastructure/persistence/prisma/prisma.service';
|
||||
import { AccountSequence } from '@/domain/value-objects';
|
||||
|
||||
/**
|
||||
|
|
@ -52,6 +53,7 @@ export class InternalController {
|
|||
|
||||
constructor(
|
||||
private readonly userRepository: UserAccountRepositoryImpl,
|
||||
private readonly prisma: PrismaService,
|
||||
) {}
|
||||
|
||||
@Public()
|
||||
|
|
@ -119,22 +121,24 @@ export class InternalController {
|
|||
this.logger.debug(`[getUserDetailBySequence] 查询用户详情: ${accountSequence}`);
|
||||
|
||||
try {
|
||||
const sequence = AccountSequence.create(accountSequence);
|
||||
const user = await this.userRepository.findByAccountSequence(sequence);
|
||||
// 直接使用 Prisma 查询以获取所有字段(包括 email、realName 等领域模型中未暴露的字段)
|
||||
const user = await this.prisma.userAccount.findUnique({
|
||||
where: { accountSequence },
|
||||
});
|
||||
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
userId: user.userId.value.toString(),
|
||||
accountSequence: user.accountSequence.value,
|
||||
userId: user.userId.toString(),
|
||||
accountSequence: user.accountSequence,
|
||||
nickname: user.nickname,
|
||||
avatarUrl: user.avatarUrl || undefined,
|
||||
phoneNumber: user.phoneNumber?.value || undefined,
|
||||
phoneNumber: user.phoneNumber || undefined,
|
||||
email: user.email || undefined,
|
||||
registeredAt: user.registeredAt.toISOString(),
|
||||
inviterSequence: user.inviterSequence?.value || undefined,
|
||||
inviterSequence: user.inviterSequence || undefined,
|
||||
kycStatus: user.kycStatus,
|
||||
realName: user.realName || undefined,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue