Files
DjangoAdmin_Flask_EleVue/application/views/operation_log.py
T
DjangoAdmin DevandClaude 15f2a5e097 chore: 基线提交(重构前代码快照)
- git 初始化 + .gitignore 补全(根 .env / logs / instance / __pycache__ 等)
- 修复 utils/.gitignore 误将整个 utils/ 源码层忽略的问题,补入全部工具源码(含 ip2region.xdb)
- 含后端全部代码:application / extensions / utils / config / migrations
- 含前端 ui/(后续整体迁走)
- 不含根 .env(含密钥,本地保留)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-07 12:12:06 +08:00

126 lines
3.6 KiB
Python

"""
操作日志管理控制器模块
=============================================================
提供操作日志(OperationLog)相关的API接口,包括:
- 操作日志分页查询
- 操作日志详情查询
- 操作日志删除(支持批量)
- 操作日志清空
- 操作日志统计
- 操作日志类型列表
所属包: application.views
依赖模块: application.services.operation_log - 操作日志业务逻辑层
application.middleware.check_permission - 权限校验中间件
"""
from flask import Blueprint
from application.middleware.check_demo import check_demo
from application.middleware.check_permission import check_permission
from application.services import operation_log
from utils.request import parse_batch_ids
operation_log_blue = Blueprint('operation_log', __name__, url_prefix='/oper/log')
from utils import R
# ============================================================
# 操作日志分页查询
# ============================================================
@operation_log_blue.route('/page', methods=["GET"])
@check_permission("sys:operation_log:page")
def page():
"""
查询操作日志分页数据
功能说明:
获取操作日志列表的分页数据,支持按标题、操作类型、来源、
状态、时间范围等条件筛选。
Query Parameters:
pageNo: 当前页码(可选,默认1)
pageSize: 每页记录数(可选,默认PAGE_SIZE)
title: 请求标题(可选,模糊查询)
type: 请求类型(可选,精确查询)
source: 请求来源(可选,0-后台,1-前台)
status: 请求状态(可选,0-正常,1-异常)
startTime: 开始时间(可选)
endTime: 结束时间(可选)
Returns:
JSON: 操作日志分页数据,包含 records(数据列表)、total(总记录数)等
"""
result = operation_log.get_operation_log_page()
return result
# ============================================================
# 操作日志详情查询
# ============================================================
@operation_log_blue.route('/detail/<int:id>', methods=["GET"])
@check_permission("sys:operation_log:detail")
def detail(id):
"""
查询操作日志详情
Args:
id: 操作日志ID
Returns:
JSON: 操作日志详细信息
"""
data = operation_log.get_operation_log_detail(id)
if data:
return R.ok(data=data)
return R.failed("日志不存在")
# ============================================================
# 操作日志删除
# ============================================================
@operation_log_blue.route('/delete/<string:id>', methods=["DELETE"])
@check_permission("sys:operation_log:delete")
@check_demo
def delete(id):
"""
删除操作日志
Args:
id: 操作日志ID(支持逗号分隔的多个ID)
Returns:
JSON: 操作结果
"""
result = operation_log.delete_operation_logs(id)
return result
# ============================================================
# 操作日志批量删除
# ============================================================
@operation_log_blue.route('/batchDelete', methods=["DELETE"])
@check_permission("sys:operation_log:batch_delete")
@check_demo
def batch_delete():
"""
批量删除操作日志
功能说明:
批量删除操作日志记录,支持传入ID数组。
Request Body:
[1, 2, 3] # 操作日志ID数组
Returns:
JSON: 操作结果
"""
id_str, err = parse_batch_ids()
if err:
return err
return operation_log.delete_operation_logs(id_str)