136 lines
5.3 KiB
Python
136 lines
5.3 KiB
Python
|
# _*_ coding : UTF-8 _*_
|
||
|
# @Time : 2025/01/27 21:41
|
||
|
# @UpdateTime : 2025/01/27 21:41
|
||
|
# @Author : sonder
|
||
|
# @File : log.py
|
||
|
# @Software : PyCharm
|
||
|
# @Comment : 本程序
|
||
|
|
||
|
from pydantic import BaseModel, Field
|
||
|
|
||
|
from schemas.common import BaseResponse, ListQueryResult
|
||
|
|
||
|
|
||
|
class LoginLogInfo(BaseModel):
|
||
|
"""
|
||
|
登录日志信息
|
||
|
"""
|
||
|
id: str = Field(default="", description="登录日志ID")
|
||
|
user_id: str = Field(default="", description="用户ID")
|
||
|
username: str = Field(default="", description="用户名")
|
||
|
user_nickname: str = Field(default="", description="用户昵称")
|
||
|
department_id: str = Field(default="", description="部门ID")
|
||
|
department_name: str = Field(default="", description="部门名称")
|
||
|
login_ip: str = Field(default="", description="登录IP")
|
||
|
login_location: str = Field(default="", description="登录地点")
|
||
|
browser: str = Field(default="", description="登录浏览器")
|
||
|
os: str = Field(default="", description="登录操作系统")
|
||
|
status: int = Field(default="", description="登录状态")
|
||
|
login_time: str = Field(default="", description="登录时间")
|
||
|
session_id: str = Field(default="", description="会话ID")
|
||
|
online: bool = Field(default=False, description="是否在线")
|
||
|
create_time: str = Field(default="", description="创建时间")
|
||
|
update_time: str = Field(default="", description="更新时间")
|
||
|
|
||
|
class Config:
|
||
|
json_schema_extra = {
|
||
|
"example": {
|
||
|
"id": "1",
|
||
|
"user_id": "1",
|
||
|
"username": "admin",
|
||
|
"user_nickname": "管理员",
|
||
|
"department_id": "1",
|
||
|
"department_name": "超级管理员",
|
||
|
"login_ip": "127.0.0.1",
|
||
|
"login_location": "中国",
|
||
|
"browser": "Chrome",
|
||
|
"os": "Windows",
|
||
|
"status": 1,
|
||
|
"login_time": "2025-01-27 21:41:00",
|
||
|
"session_id": "1",
|
||
|
"online": True,
|
||
|
"create_time": "2025-01-27 21:41:00",
|
||
|
"update_time": "2025-01-27 21:41:00"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
class LoginLogResult(ListQueryResult):
|
||
|
"""
|
||
|
登录日志查询结果
|
||
|
"""
|
||
|
result: list[LoginLogInfo] = Field(default=[], description="登录日志列表")
|
||
|
|
||
|
|
||
|
class GetLoginLogResponse(BaseResponse):
|
||
|
"""
|
||
|
获取登录日志响应
|
||
|
"""
|
||
|
data: LoginLogResult = Field(default=[], description="登录日志查询结果")
|
||
|
|
||
|
|
||
|
class OperationLogInfo(BaseModel):
|
||
|
"""
|
||
|
操作日志信息
|
||
|
"""
|
||
|
id: str = Field(default="", description="操作日志ID")
|
||
|
operation_name: str = Field(default="", description="操作名称")
|
||
|
operation_type: int = Field(default=1, description="操作类型")
|
||
|
request_path: str = Field(default="", description="请求路径")
|
||
|
request_method: str = Field(default="", description="请求方法")
|
||
|
request_params: str = Field(default="", description="请求参数")
|
||
|
request_result: str = Field(default="", description="请求结果")
|
||
|
host: str = Field(default="", description="请求主机")
|
||
|
location: str = Field(default="", description="请求地址")
|
||
|
browser: str = Field(default="", description="请求浏览器")
|
||
|
os: str = Field(default="", description="请求操作系统")
|
||
|
user_agent: str = Field(default="", description="请求头")
|
||
|
operator_id: str = Field(default="", description="操作人员ID")
|
||
|
operator_name: str = Field(default="", description="操作人员名称")
|
||
|
operator_nickname: str = Field(default="", description="操作人员昵称")
|
||
|
department_id: str = Field(default="", description="操作人员部门ID")
|
||
|
department_name: str = Field(default="", description="操作人员部门名称")
|
||
|
operation_time: str = Field(default="", description="操作时间")
|
||
|
cost_time: float = Field(default=0.0, description="操作耗时")
|
||
|
status: int = Field(default="", description="操作状态")
|
||
|
|
||
|
class Config:
|
||
|
json_schema_extra = {
|
||
|
"example": {
|
||
|
"id": "1",
|
||
|
"operation_name": "登录",
|
||
|
"operation_type": 1,
|
||
|
"request_path": "/login",
|
||
|
"request_method": "POST",
|
||
|
"request_params": "{\"username\": \"admin\", \"password\": \"123456\"}",
|
||
|
"request_result": "{\"code\": 200, \"data\": {\"token\":\"eyJ0eXAiOiJKV1Qi}",
|
||
|
"host": "127.0.0.1",
|
||
|
"location": "中国",
|
||
|
"browser": "Chrome",
|
||
|
"os": "Windows",
|
||
|
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
|
||
|
"operator_id": "1",
|
||
|
"operator_name": "admin",
|
||
|
"operator_nickname": "管理员",
|
||
|
"department_id": "1",
|
||
|
"department_name": "超级管理员",
|
||
|
"operation_time": "2025-01-27 21:41:00",
|
||
|
"cost_time": 0.123,
|
||
|
"status": 1
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
class OperationLogResult(ListQueryResult):
|
||
|
"""
|
||
|
操作日志查询结果
|
||
|
"""
|
||
|
result: list[OperationLogInfo] = Field(default=[], description="操作日志列表")
|
||
|
|
||
|
|
||
|
class GetOperationLogResponse(BaseResponse):
|
||
|
"""
|
||
|
获取操作日志响应
|
||
|
"""
|
||
|
data: OperationLogResult = Field(default=[], description="操作日志查询结果")
|