feat: 完成多多畅职就业服务平台核心功能开发

主要更新:
-  完成主题配色从暗色到亮蓝白配色的全面转换
-  实现高薪岗位页面及后端API集成
-  完成登录注册页面及认证系统
-  实现预招录确认功能
-  添加数据库管理和维护工具脚本
-  优化错误处理和用户体验

核心功能:
1. 首页 (index.html) - 3D地球、专业分类、过渡岗位
2. 高薪岗位页面 (high.html) - 岗位详情、预招录确认、成功案例
3. 登录注册 (auth.html) - 用户认证、专业分类选择
4. 后端API - RESTful接口,JWT认证,MySQL数据库

技术栈:
- 前端:Three.js, GSAP, 原生JavaScript
- 后端:Node.js, Express, MySQL
- 认证:JWT, bcrypt
- 样式:自定义CSS,响应式设计

数据库工具:
- kill-by-ids.js - 批量终止MySQL进程
- unlock-all-tables.js - 解锁数据库表
- init-db.js - 初始化数据库
- 其他管理脚本

🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
KQL
2025-12-22 15:40:55 +08:00
parent 97e79e0f8c
commit 61698639ef
55 changed files with 13178 additions and 1298 deletions

87
scripts/create-admin.js Normal file
View File

@@ -0,0 +1,87 @@
/**
* 创建默认管理员账号
* 在数据库和表已经创建后运行此脚本
*/
require('dotenv').config();
const mysql = require('mysql2/promise');
const bcrypt = require('bcryptjs');
// 数据库配置
const dbConfig = {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE || 'ddcz_platform'
};
async function createAdminUser() {
let connection;
try {
console.log('🔌 正在连接到MySQL数据库...');
console.log(` 数据库: ${dbConfig.database}`);
connection = await mysql.createConnection(dbConfig);
console.log('✅ 数据库连接成功!\n');
// 生成管理员密码哈希
console.log('🔐 正在生成管理员密码...');
const defaultPassword = 'admin123456';
const passwordHash = await bcrypt.hash(defaultPassword, 10);
console.log('✅ 密码哈希生成成功!\n');
// 插入或更新管理员账号
console.log('👤 正在创建管理员账号...');
const [result] = await connection.query(`
INSERT INTO users (username, password_hash, email, role, status)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
password_hash = VALUES(password_hash),
email = VALUES(email),
updated_at = CURRENT_TIMESTAMP
`, ['admin', passwordHash, 'admin@ddcz.com', 'admin', 'active']);
if (result.affectedRows > 0) {
console.log('✅ 管理员账号创建/更新成功!\n');
console.log('📝 管理员登录信息:');
console.log(' 用户名: admin');
console.log(' 密码: admin123456');
console.log(' ⚠️ 请在首次登录后立即修改密码!\n');
}
// 验证表是否存在
console.log('📊 验证数据库表...');
const [tables] = await connection.query('SHOW TABLES');
console.log(`✅ 数据库中共有 ${tables.length} 个表:`);
tables.forEach(table => {
const tableName = Object.values(table)[0];
console.log(` - ${tableName}`);
});
console.log('\n🎉 管理员账号设置完成!');
} catch (error) {
console.error('\n❌ 操作失败:');
console.error(error.message);
if (error.code === 'ECONNREFUSED') {
console.error('\n💡 无法连接到MySQL服务器');
} else if (error.code === 'ER_ACCESS_DENIED_ERROR') {
console.error('\n💡 用户名或密码错误');
} else if (error.code === 'ER_NO_SUCH_TABLE') {
console.error('\n💡 表不存在请先在Navicat中执行 database-setup.sql');
}
process.exit(1);
} finally {
if (connection) {
await connection.end();
console.log('🔌 数据库连接已关闭');
}
}
}
// 执行
createAdminUser();