Files
yunrui_asset/backend/models/OperationLog.js
T
zhang1106 a911d02999 feat: 实现用户认证与权限管理系统
- 添加用户、角色、权限等数据模型
- 实现JWT认证中间件和密码加密
- 添加用户注册、登录、个人信息管理接口
- 实现前端认证上下文和受保护路由
- 添加登录历史记录和操作日志功能
- 提供管理员初始化脚本和修复工具
- 实现完整的登录页面和用户管理界面
2025-12-25 10:48:35 +08:00

83 lines
1.6 KiB
JavaScript

const { DataTypes } = require('sequelize');
const { sequelize } = require('../db');
const OperationLog = sequelize.define('OperationLog', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
userId: {
type: DataTypes.STRING,
allowNull: false,
comment: '操作人ID'
},
username: {
type: DataTypes.STRING,
allowNull: false,
comment: '操作人用户名'
},
realName: {
type: DataTypes.STRING,
allowNull: true,
comment: '操作人真实姓名'
},
action: {
type: DataTypes.STRING,
allowNull: false,
comment: '操作类型'
},
module: {
type: DataTypes.STRING,
allowNull: true,
comment: '操作模块'
},
description: {
type: DataTypes.TEXT,
allowNull: true,
comment: '操作描述'
},
targetId: {
type: DataTypes.STRING,
allowNull: true,
comment: '目标对象ID'
},
targetName: {
type: DataTypes.STRING,
allowNull: true,
comment: '目标对象名称'
},
oldValue: {
type: DataTypes.TEXT,
allowNull: true,
comment: '旧值'
},
newValue: {
type: DataTypes.TEXT,
allowNull: true,
comment: '新值'
},
ip: {
type: DataTypes.STRING,
allowNull: true,
comment: '操作IP'
},
status: {
type: DataTypes.ENUM('success', 'failed'),
defaultValue: 'success',
comment: '操作状态'
},
errorMessage: {
type: DataTypes.TEXT,
allowNull: true,
comment: '错误信息'
}
}, {
tableName: 'operation_logs',
timestamps: true,
createdAt: 'operateTime',
updatedAt: false
});
module.exports = OperationLog;