forked from wangziqi/gongxue-base
feat: auto-populate department_id on create + seed default campus with backfill
This commit is contained in:
23
apps/server/src/departments/seed.ts
Normal file
23
apps/server/src/departments/seed.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
export async function seedDefaultCampus(dataSource: DataSource) {
|
||||
const deptRepo = dataSource.getRepository('departments');
|
||||
const userDeptRepo = dataSource.getRepository('user_departments');
|
||||
|
||||
const existing = await deptRepo.count();
|
||||
if (existing > 0) { console.log('Departments exist, skip seed'); return; }
|
||||
|
||||
const campus = await deptRepo.save({ name: '主校区', type: 'campus', sortOrder: 0 });
|
||||
|
||||
const tables = ['students','rooms','classrooms','class_schedules','attendance_records','room_expenses','personal_expenses','occupancies','bills','deposits','deposit_installments','classroom_rentals'];
|
||||
for (const table of tables) {
|
||||
await dataSource.query(`UPDATE ${table} SET department_id = ? WHERE department_id IS NULL`, [campus.id]);
|
||||
}
|
||||
|
||||
const users = await dataSource.query('SELECT id FROM users');
|
||||
for (const user of users) {
|
||||
await userDeptRepo.save({ userId: user.id, departmentId: campus.id, isDefault: true });
|
||||
}
|
||||
|
||||
console.log('Seed: default campus created, data backfilled');
|
||||
}
|
||||
Reference in New Issue
Block a user