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 { IsArray, IsString } from 'class-validator';
|
||||||
import { Public } from '@/shared/guards/jwt-auth.guard';
|
import { Public } from '@/shared/guards/jwt-auth.guard';
|
||||||
import { UserAccountRepositoryImpl } from '@/infrastructure/persistence/repositories/user-account.repository.impl';
|
import { UserAccountRepositoryImpl } from '@/infrastructure/persistence/repositories/user-account.repository.impl';
|
||||||
|
import { PrismaService } from '@/infrastructure/persistence/prisma/prisma.service';
|
||||||
import { AccountSequence } from '@/domain/value-objects';
|
import { AccountSequence } from '@/domain/value-objects';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -52,6 +53,7 @@ export class InternalController {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly userRepository: UserAccountRepositoryImpl,
|
private readonly userRepository: UserAccountRepositoryImpl,
|
||||||
|
private readonly prisma: PrismaService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@Public()
|
@Public()
|
||||||
|
|
@ -119,22 +121,24 @@ export class InternalController {
|
||||||
this.logger.debug(`[getUserDetailBySequence] 查询用户详情: ${accountSequence}`);
|
this.logger.debug(`[getUserDetailBySequence] 查询用户详情: ${accountSequence}`);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const sequence = AccountSequence.create(accountSequence);
|
// 直接使用 Prisma 查询以获取所有字段(包括 email、realName 等领域模型中未暴露的字段)
|
||||||
const user = await this.userRepository.findByAccountSequence(sequence);
|
const user = await this.prisma.userAccount.findUnique({
|
||||||
|
where: { accountSequence },
|
||||||
|
});
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
userId: user.userId.value.toString(),
|
userId: user.userId.toString(),
|
||||||
accountSequence: user.accountSequence.value,
|
accountSequence: user.accountSequence,
|
||||||
nickname: user.nickname,
|
nickname: user.nickname,
|
||||||
avatarUrl: user.avatarUrl || undefined,
|
avatarUrl: user.avatarUrl || undefined,
|
||||||
phoneNumber: user.phoneNumber?.value || undefined,
|
phoneNumber: user.phoneNumber || undefined,
|
||||||
email: user.email || undefined,
|
email: user.email || undefined,
|
||||||
registeredAt: user.registeredAt.toISOString(),
|
registeredAt: user.registeredAt.toISOString(),
|
||||||
inviterSequence: user.inviterSequence?.value || undefined,
|
inviterSequence: user.inviterSequence || undefined,
|
||||||
kycStatus: user.kycStatus,
|
kycStatus: user.kycStatus,
|
||||||
realName: user.realName || undefined,
|
realName: user.realName || undefined,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue