This commit is contained in:
Kyaru
2026-06-30 23:12:21 +08:00

43
db.js
View File

@@ -244,25 +244,25 @@ async function initDB() {
// ============ 2.4 种子数据 ============
await seedDepartmentsAndPermissions()
await seedDefaultUsers()
await seedBusinessData()
// await seedBusinessData()
// ============ 2.5 数据库迁移(兼容已有数据的旧库) ============
// 为财务部补上 product:read 权限
try {
const [financeDept] = await pool.query("SELECT id FROM departments WHERE name = 'finance' LIMIT 1")
if (financeDept.length > 0) {
const [prodPerm] = await pool.query("SELECT id FROM permissions WHERE name = 'product:read' LIMIT 1")
if (prodPerm.length > 0) {
await pool.query(
'INSERT IGNORE INTO department_permissions (department_id, permission_id) VALUES (?, ?)',
[financeDept[0].id, prodPerm[0].id]
)
console.log('[migrate] 财务部已补上 product:read 权限')
}
}
} catch (e) {
console.log('[migrate] 财务部权限迁移跳过:', e.message)
}
// // ============ 2.5 数据库迁移(兼容已有数据的旧库) ============
// // 为财务部补上 product:read 权限
// try {
// const [financeDept] = await pool.query("SELECT id FROM departments WHERE name = 'finance' LIMIT 1")
// if (financeDept.length > 0) {
// const [prodPerm] = await pool.query("SELECT id FROM permissions WHERE name = 'product:read' LIMIT 1")
// if (prodPerm.length > 0) {
// await pool.query(
// 'INSERT IGNORE INTO department_permissions (department_id, permission_id) VALUES (?, ?)',
// [financeDept[0].id, prodPerm[0].id]
// )
// console.log('[migrate] 财务部已补上 product:read 权限')
// }
// }
// } catch (e) {
// console.log('[migrate] 财务部权限迁移跳过:', e.message)
// }
}
// ============ 3. 种子数据:部门与权限 ============
@@ -374,7 +374,7 @@ async function seedDepartmentsAndPermissions() {
console.log('[init] 已初始化部门-权限映射')
}
// ============ 4. 种子数据:默认用户 ============
// ============ 4. 种子数据:默认用户(仅保留总经理账号) ============
async function seedDefaultUsers() {
const hash = await bcrypt.hash('123456', 10)
@@ -415,15 +415,12 @@ async function seedDefaultUsers() {
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)`,
[emp.name, emp.gender, emp.age, emp.education, emp.department, emp.entry_date, emp.position, emp.salary, emp.phone, emp.email]
)
const empId = empResult.insertId
// 再插入 users关联 employee 和 department
await pool.query(
`INSERT INTO users (username, password, is_active, department_id, employee_id, role_level)
VALUES (?, ?, 1, ?, ?, ?)`,
[usr.username, hash, deptIdMap[usr.deptName], empId, usr.role_level]
)
console.log(`[init] 已创建用户 ${usr.username} (${emp.name} - ${emp.department})`)
console.log(`[init] 已创建用户 ${usr.username} (${emp.name})`)
}
}