""" 操作日志模型 """ from datetime import datetime from config.database import db import json class OperationLog(db.Model): __tablename__ = 'operation_logs' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer) user_type = db.Column(db.Integer) # 1-普通用户 2-管理员 action = db.Column(db.String(100), nullable=False) resource_type = db.Column(db.String(50)) resource_id = db.Column(db.Integer) ip_address = db.Column(db.String(45)) user_agent = db.Column(db.Text) request_data = db.Column(db.JSON) created_at = db.Column(db.DateTime, default=datetime.utcnow) @classmethod def create_log(cls, user_id=None, user_type=1, action='', resource_type=None, resource_id=None, ip_address=None, user_agent=None, request_data=None): """创建操作日志""" log = cls( user_id=user_id, user_type=user_type, action=action, resource_type=resource_type, resource_id=resource_id, ip_address=ip_address, user_agent=user_agent, request_data=request_data ) db.session.add(log) db.session.commit() return log def to_dict(self): """转换为字典""" return { 'id': self.id, 'user_id': self.user_id, 'user_type': self.user_type, 'action': self.action, 'resource_type': self.resource_type, 'resource_id': self.resource_id, 'ip_address': self.ip_address, 'user_agent': self.user_agent, 'request_data': self.request_data, 'created_at': self.created_at.isoformat() if self.created_at else None } def __repr__(self): return f''