Selaa lähdekoodia

♻️ refactor(user): 优化用户实体关系定义

- 将UserEntity中avatarFile的ManyToOne关系改为字符串引用形式,避免循环依赖

✨ feat(user): 支持查询用户头像文件信息

- 在用户CRUD路由中添加avatarFile关联查询

✅ test(user): 增强用户路由测试调试能力

- 为用户列表API测试添加错误响应调试日志输出
yourname 1 kuukausi sitten
vanhempi
sitoutus
b8e51a91c6

+ 1 - 1
packages/user-module/src/entities/user.entity.ts

@@ -29,7 +29,7 @@ export class UserEntity {
   @Column({ name: 'avatar_file_id', type: 'int', unsigned: true, nullable: true, comment: '头像文件ID' })
   avatarFileId!: number | null;
 
-  @ManyToOne(() => File, { nullable: true })
+  @ManyToOne('File', { nullable: true })
   @JoinColumn({ name: 'avatar_file_id', referencedColumnName: 'id' })
   avatarFile!: File | null;
 

+ 1 - 1
packages/user-module/src/routes/user.routes.ts

@@ -13,7 +13,7 @@ const userCrudRoutes = createCrudRoutes({
   getSchema: UserSchema,
   listSchema: UserSchema,
   searchFields: ['username', 'nickname', 'phone', 'email'],
-  relations: ['roles'],
+  relations: ['roles', 'avatarFile'],
   middleware: [authMiddleware],
   readOnly: true // 创建/更新/删除使用自定义路由
 });

+ 4 - 0
packages/user-module/tests/integration/user.routes.integration.test.ts

@@ -200,6 +200,10 @@ describe('用户路由API集成测试 (使用hono/testing)', () => {
         }
       });
 
+      if (response.status !== 200) {
+        const errorData = await response.json();
+        console.debug('获取用户列表失败:', errorData);
+      }
       expect(response.status).toBe(200);
       if (response.status === 200) {
         const responseData = await response.json();