在后端管理界面点击"公司认证管理"的"认证"按钮无法进行认证状态编辑和调整,表现为认证操作失败。
经过分析,发现问题的根本原因是:
UpdateCompanyDto定义不完整:当前的UpdateCompanyDto是通过CreateCompanyDto.partial()生成的,这意味着它只包含创建时的字段,而缺少认证相关的字段如isCertified。
认证状态字段缺失:在更新DTO中没有明确定义isCertified字段,导致前端无法只更新认证状态。
文件:src/server/modules/silver-jobs/company.entity.ts
修改前:
export const UpdateCompanyDto = CreateCompanyDto.partial();
修改后:
export const UpdateCompanyDto = CreateCompanyDto.partial().extend({
isCertified: z.coerce.number().int().min(0).max(1).optional().openapi({
description: '是否认证 0:未认证 1:已认证',
example: 1
})
});
前端调用方式看起来是正确的,使用PUT请求更新认证状态:
const response = await companyCertificationClient[':id'].$put({
param: { id: id.toString() },
json: {
isCertified: certify ? 1 : 0,
},
});
修复后需要进行以下测试:
company.entity.ts文件中的UpdateCompanyDto定义is_certified字段