refactor(backend): 将ApiUser模型重命名为Admin并更新相关引用

This commit is contained in:
ylweng
2025-09-19 00:42:14 +08:00
parent 2ada0cb9bc
commit 2d77e83fad
14 changed files with 855 additions and 93 deletions

119
backend/create_admin.js Normal file
View File

@@ -0,0 +1,119 @@
const { Sequelize, DataTypes } = require('sequelize');
const bcrypt = require('bcryptjs');
require('dotenv').config();
// 数据库配置
const sequelize = new Sequelize(
process.env.DB_NAME || 'niumall',
process.env.DB_USERNAME || 'root',
process.env.DB_PASSWORD || 'aiotAiot123!',
{
host: process.env.DB_HOST || '129.211.213.226',
port: process.env.DB_PORT || 9527,
dialect: 'mysql',
logging: false,
dialectOptions: {
connectTimeout: 60000
}
}
);
// 定义User模型根据实际表结构
const User = sequelize.define('User', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
openid: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: ''
},
nickname: {
type: DataTypes.STRING,
allowNull: false
},
avatar: {
type: DataTypes.STRING,
allowNull: true
},
gender: {
type: DataTypes.ENUM('male', 'female', 'other'),
allowNull: true
},
birthday: {
type: DataTypes.DATE,
allowNull: true
},
phone: {
type: DataTypes.STRING,
allowNull: true
},
email: {
type: DataTypes.STRING,
allowNull: true
},
uuid: {
type: DataTypes.STRING,
allowNull: true
},
created_at: {
type: DataTypes.DATE,
allowNull: false
},
updated_at: {
type: DataTypes.DATE,
allowNull: false
}
}, {
tableName: 'users',
timestamps: true,
createdAt: 'created_at',
updatedAt: 'updated_at'
});
async function createAdminUser() {
try {
console.log('Testing database connection...');
await sequelize.authenticate();
console.log('Database connection successful!');
// 检查是否已存在管理员用户
const existingAdmin = await User.findOne({
where: {
nickname: 'admin'
}
});
if (existingAdmin) {
console.log('Admin user already exists:', existingAdmin.id, existingAdmin.nickname);
console.log('Admin user password cannot be updated with this script because the table structure does not have a password field');
return;
}
// 创建管理员用户
console.log('Creating admin user...');
const adminUser = await User.create({
openid: 'admin_openid',
nickname: 'admin',
email: 'admin@example.com',
phone: '13800138000',
uuid: 'admin-uuid-' + Date.now(),
created_at: new Date(),
updated_at: new Date()
});
console.log('Admin user created successfully:', adminUser.id, adminUser.nickname);
} catch (error) {
console.error('Error creating admin user:', error.message);
if (error.original) {
console.error('Original error:', error.original.message);
}
} finally {
await sequelize.close();
}
}
createAdminUser();