08ea5fbe98
添加用户管理视图、API和状态管理文件
66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
import { Pool } from 'pg';
|
|
|
|
const pool = new Pool({
|
|
host: process.env.DB_HOST || 'localhost',
|
|
port: parseInt(process.env.DB_PORT || '55432'),
|
|
database: process.env.DB_NAME || 'everything_suitable_test',
|
|
user: process.env.DB_USERNAME || 'postgres',
|
|
password: process.env.DB_PASSWORD || 'postgres',
|
|
});
|
|
|
|
async function initTestData() {
|
|
const client = await pool.connect();
|
|
|
|
try {
|
|
await client.query('BEGIN');
|
|
|
|
// 清理测试数据
|
|
console.log('清理测试数据...');
|
|
await client.query('TRUNCATE TABLE test_data.users CASCADE');
|
|
await client.query('TRUNCATE TABLE test_data.roles CASCADE');
|
|
await client.query('TRUNCATE TABLE test_data.menus CASCADE');
|
|
|
|
// 创建测试用户
|
|
console.log('创建测试用户...');
|
|
await client.query(`
|
|
INSERT INTO test_data.users (username, password, email, status) VALUES
|
|
('admin', 'admin123', 'admin@example.com', 'active'),
|
|
('user1', 'user123', 'user1@example.com', 'active'),
|
|
('user2', 'user123', 'user2@example.com', 'active')
|
|
`);
|
|
|
|
// 创建测试角色
|
|
console.log('创建测试角色...');
|
|
await client.query(`
|
|
INSERT INTO test_data.roles (name, code, status) VALUES
|
|
('管理员', 'admin', 1),
|
|
('普通用户', 'user', 1)
|
|
`);
|
|
|
|
// 创建测试菜单
|
|
console.log('创建测试菜单...');
|
|
await client.query(`
|
|
INSERT INTO test_data.menus (name, path, type, status) VALUES
|
|
('用户管理', '/user-management', 1, 0),
|
|
('角色管理', '/role-management', 1, 0),
|
|
('菜单管理', '/menu-management', 1, 0)
|
|
`);
|
|
|
|
await client.query('COMMIT');
|
|
console.log('✅ 测试数据初始化完成');
|
|
} catch (error) {
|
|
await client.query('ROLLBACK');
|
|
console.error('❌ 测试数据初始化失败:', error);
|
|
throw error;
|
|
} finally {
|
|
client.release();
|
|
}
|
|
}
|
|
|
|
initTestData()
|
|
.then(() => process.exit(0))
|
|
.catch((error) => {
|
|
console.error(error);
|
|
process.exit(1);
|
|
});
|