/** * 个人中心测试数据种子脚本 * @file seed-personal-center-test-data.js * @description 为个人中心功能添加测试数据 */ const { User, Role } = require('../models'); const bcrypt = require('bcryptjs'); const { sequelize } = require('../config/database'); async function seedPersonalCenterTestData() { try { console.log('=== 开始添加个人中心测试数据 ===\n'); // 1. 确保admin角色存在 console.log('1. 检查admin角色...'); let adminRole = await Role.findOne({ where: { name: 'admin' } }); if (!adminRole) { adminRole = await Role.create({ name: 'admin', display_name: '系统管理员', description: '系统管理员角色', permissions: JSON.stringify(['*']) }); console.log('✅ 创建admin角色成功'); } else { console.log('✅ admin角色已存在'); } // 2. 确保manager角色存在 console.log('2. 检查manager角色...'); let managerRole = await Role.findOne({ where: { name: 'manager' } }); if (!managerRole) { managerRole = await Role.create({ name: 'manager', display_name: '经理', description: '经理角色', permissions: JSON.stringify(['read', 'write', 'approve']) }); console.log('✅ 创建manager角色成功'); } else { console.log('✅ manager角色已存在'); } // 3. 创建测试用户 - 银行经理 console.log('3. 创建测试用户 - 银行经理...'); const managerPassword = await bcrypt.hash('Manager123456', 10); const managerUser = await User.findOrCreate({ where: { username: 'manager001' }, defaults: { username: 'manager001', password: managerPassword, real_name: '李经理', email: 'manager001@bank.com', phone: '15004901368', id_card: '110101198001010001', status: 'active', role_id: managerRole.id, position: '部门经理', department: '风险管理部' } }); if (managerUser[1]) { console.log('✅ 创建银行经理用户成功'); } else { console.log('✅ 银行经理用户已存在'); } // 4. 创建测试用户 - 银行员工 console.log('4. 创建测试用户 - 银行员工...'); const employeePassword = await bcrypt.hash('Employee123456', 10); const employeeUser = await User.findOrCreate({ where: { username: 'employee001' }, defaults: { username: 'employee001', password: employeePassword, real_name: '王员工', email: 'employee001@bank.com', phone: '13800138000', id_card: '110101199001010002', status: 'active', role_id: managerRole.id, position: '业务专员', department: '客户服务部' } }); if (employeeUser[1]) { console.log('✅ 创建银行员工用户成功'); } else { console.log('✅ 银行员工用户已存在'); } // 5. 更新admin用户信息 console.log('5. 更新admin用户信息...'); const adminUser = await User.findOne({ where: { username: 'admin' } }); if (adminUser) { await adminUser.update({ real_name: '系统管理员', phone: '15004901368', position: '系统管理员', department: '信息技术部' }); console.log('✅ 更新admin用户信息成功'); } else { console.log('⚠️ admin用户不存在,请先运行create-admin-user.js'); } // 6. 显示测试用户信息 console.log('\n=== 测试用户信息 ==='); const testUsers = await User.findAll({ where: { username: ['admin', 'manager001', 'employee001'] }, include: [{ model: Role, as: 'role' }] }); testUsers.forEach(user => { console.log(`\n用户名: ${user.username}`); console.log(`姓名: ${user.real_name}`); console.log(`手机: ${user.phone}`); console.log(`邮箱: ${user.email}`); console.log(`角色: ${user.role ? user.role.display_name : '未知'}`); console.log(`部门: ${user.department || '未设置'}`); console.log(`职位: ${user.position || '未设置'}`); console.log(`状态: ${user.status}`); }); console.log('\n=== 测试登录信息 ==='); console.log('管理员账号: admin / Admin123456'); console.log('经理账号: manager001 / Manager123456'); console.log('员工账号: employee001 / Employee123456'); console.log('\n=== 个人中心测试数据添加完成 ==='); } catch (error) { console.error('❌ 添加个人中心测试数据失败:', error); throw error; } finally { await sequelize.close(); } } // 运行脚本 if (require.main === module) { seedPersonalCenterTestData() .then(() => { console.log('✅ 脚本执行完成'); process.exit(0); }) .catch((error) => { console.error('❌ 脚本执行失败:', error); process.exit(1); }); } module.exports = seedPersonalCenterTestData;