Jelajahi Sumber

🐛 fix(areas): 修复区域数据父级ID处理逻辑

- 修改AreaEntity中parentId字段为可空类型,默认值设为null
- 调整SQL生成脚本,使用null而非0表示顶级区域的父级ID
- 统一顶级区域父ID的表示方式,解决数据一致性问题
yourname 4 bulan lalu
induk
melakukan
dc0ffee242
2 mengubah file dengan 3 tambahan dan 3 penghapusan
  1. 1 1
      scripts/generate-area-sql.mjs
  2. 2 2
      src/server/modules/areas/area.entity.ts

+ 1 - 1
scripts/generate-area-sql.mjs

@@ -81,7 +81,7 @@ function generateSQLStatements(data) {
     ];
 
     const values = data.map(item =>
-        `    (${item.id}, ${item.parentId === 0 ? 'NULL' : item.parentId}, '${escapeString(item.name)}', ${item.level}, '${item.code}', 0, 0, NOW(), NOW())`
+        `    (${item.id}, ${item.parentId === null ? 'NULL' : item.parentId}, '${escapeString(item.name)}', '${item.level}', '${item.code}', 0, 0, NOW(), NOW())`
     );
 
     statements.push(values.join(',\n'));

+ 2 - 2
src/server/modules/areas/area.entity.ts

@@ -12,8 +12,8 @@ export class AreaEntity {
   @PrimaryGeneratedColumn({ unsigned: true, comment: '区域ID' })
   id!: number;
 
-  @Column({ name: 'parent_id', type: 'int', unsigned: true, default: 0, comment: '父级区域ID,0表示顶级(省/直辖市)' })
-  parentId!: number;
+  @Column({ name: 'parent_id', type: 'int', unsigned: true, nullable: true, default: null, comment: '父级区域ID,null表示顶级(省/直辖市)' })
+  parentId!: number | null;
 
   @Column({ name: 'name', type: 'varchar', length: 100, comment: '区域名称' })
   name!: string;