""" 登录日志管理控制器模块 ============================================================= 提供登录日志(LoginLog)相关的API接口,包括: - 登录日志分页查询 - 登录日志详情查询 - 登录日志删除(支持批量) - 登录日志清空 - 登录日志统计 - 登录趋势分析 所属包: application.views 依赖模块: application.services.login_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 login_log from utils.request import parse_batch_ids login_log_blue = Blueprint('login_log', __name__, url_prefix='/login/log') from utils import R # ============================================================ # 登录日志分页查询 # ============================================================ @login_log_blue.route('/page', methods=["GET"]) @check_permission("sys:login_log:page") def page(): """ 查询登录日志分页数据 功能说明: 获取登录日志列表的分页数据,支持按账号、日志类型、来源、 状态、时间范围等条件筛选。 Query Parameters: pageNo: 当前页码(可选,默认1) pageSize: 每页记录数(可选,默认PAGE_SIZE) username: 登录账号(可选,模糊查询) logType: 日志类型(可选,1-登录,2-退出) source: 登录来源(可选,0-后台,1-前台) status: 操作状态(可选,0-正常,1-异常) startTime: 开始时间(可选) endTime: 结束时间(可选) Returns: JSON: 登录日志分页数据,包含 records(数据列表)、total(总记录数)等 """ result = login_log.get_login_log_page() return result # ============================================================ # 登录日志详情查询 # ============================================================ @login_log_blue.route('/detail/', methods=["GET"]) @check_permission("sys:login_log:detail") def detail(id): """ 查询登录日志详情 Args: id: 登录日志ID Returns: JSON: 登录日志详细信息 """ data = login_log.get_login_log_detail(id) if data: return R.ok(data=data) return R.failed("日志不存在") # ============================================================ # 登录日志删除 # ============================================================ @login_log_blue.route('/delete/', methods=["DELETE"]) @check_permission("sys:login_log:delete") @check_demo def delete(id): """ 删除登录日志 Args: id: 登录日志ID(支持逗号分隔的多个ID) Returns: JSON: 操作结果 """ result = login_log.delete_login_logs(id) return result # ============================================================ # 登录日志批量删除 # ============================================================ @login_log_blue.route('/batchDelete', methods=["DELETE"]) @check_permission("sys:login_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 login_log.delete_login_logs(id_str)