123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from fastapi import APIRouter, Request, Depends, Query, HTTPException, status
- from common.security import valid_access_token
- from pydantic import BaseModel
- from database import get_db
- from sqlalchemy.orm import Session
- from typing import List
- from models import *
- from utils import *
- from utils.ry_system_util import *
- import json
- from sqlalchemy.sql import func
- from common.enc import mpfun, sys_dept_data
- from common.auth_user import *
- from common.db import db_czrz
- import traceback
- router = APIRouter()
- @router.get('/list')
- async def get_list(
- # request: Request,
- operIp: str = Query(None, max_length=100),
- operName:str = Query(None, max_length=100),
- title: str = Query(None, max_length=100),
- params: str = Query(None, max_length=100),
- dateRange: str = Query(None, max_length=100),
- pageNum: int = Query(1, gt=0, description="页码"),
- pageSize: int = Query(10, gt=0, le=100, description="每页大小"),
- db: Session = Depends(get_db),
- user_id = Depends(valid_access_token),
- ):
- print(params)
- query = db.query(CzrzEntity)
- query = query.filter(CzrzEntity.action != '应急一张图')
- if operIp:
- query = query.filter(CzrzEntity.ip.like(f'%{operIp}%'))
- if operName:
- query = query.filter(CzrzEntity.nick_name.like(f'%{operName}%'))
- if title:
- query = query.filter(CzrzEntity.action.like(f'%{title}%'))
- if dateRange:
- start_date, end_date = dateRange.split('-')
- # start_date = datetime.strptime(start_date, "%Y-%m-%d")
- # end_date = datetime.strptime(end_date, "%Y-%m-%d") + timedelta(days=1)
- query = query.filter(CzrzEntity.gxsj.between(start_date, end_date))
- total_count = query.count()
- offset = (pageNum - 1) * pageSize
- query = query.order_by(CzrzEntity.gxsj.desc()).offset(offset).limit(pageSize)
- czrz_list = query.all()
- # 将模型实例转换为字典
- czrz_list_dict = [{
- "operIp": item.ip,
- "operName": item.nick_name,
- "title": item.action,
- "czrz": item.czrz,
- "operTime": item.gxsj.strftime('%Y-%m-%d %H:%M:%S') if item.gxsj else '',
- } for item in czrz_list]
- return {
- "code": 200,
- "msg": "操作成功",
- "rows": czrz_list_dict,
- 'pages': (total_count + pageSize - 1) // pageSize,
- 'total': total_count,
- "currentPage": pageNum,
- "pageSize": pageSize,
- }
- @router.get('/yjdplist')
- async def get_list(
- # request: Request,
- operIp: str = Query(None, max_length=100),
- operName:str = Query(None, max_length=100),
- title: str = Query(None, max_length=100),
- params: str = Query(None, max_length=100),
- dateRange: str = Query(None, max_length=100),
- pageNum: int = Query(1, gt=0, description="页码"),
- pageSize: int = Query(10, gt=0, le=100, description="每页大小"),
- db: Session = Depends(get_db),
- user_id = Depends(valid_access_token),
- ):
- query = db.query(CzrzEntity)
- query = query.filter(CzrzEntity.action == '应急一张图')
- if operIp:
- query = query.filter(CzrzEntity.ip.like(f'%{operIp}%'))
- if operName:
- query = query.filter(CzrzEntity.nick_name.like(f'%{operName}%'))
- if title:
- query = query.filter(CzrzEntity.action.like(f'%{title}%'))
- if dateRange:
- start_date, end_date = dateRange.split('-')
- # start_date = datetime.strptime(start_date, "%Y-%m-%d")
- # end_date = datetime.strptime(end_date, "%Y-%m-%d") + timedelta(days=1)
- query = query.filter(CzrzEntity.gxsj.between(start_date, end_date))
- total_count = query.count()
- offset = (pageNum - 1) * pageSize
- query = query.order_by(CzrzEntity.gxsj.desc()).offset(offset).limit(pageSize)
- czrz_list = query.all()
- # 将模型实例转换为字典
- czrz_list_dict = [{
- "operIp": item.ip,
- "operName": item.nick_name,
- "title": item.action,
- "czrz": item.czrz,
- "operTime": item.gxsj.strftime('%Y-%m-%d %H:%M:%S') if item.gxsj else '',
- } for item in czrz_list]
- return {
- "code": 200,
- "msg": "操作成功",
- "rows": czrz_list_dict,
- 'pages': (total_count + pageSize - 1) // pageSize,
- 'total': total_count,
- "currentPage": pageNum,
- "pageSize": pageSize,
- }
- # 事件指挥日志
- @router.get('/event_log')
- async def get_list(
- # request: Request,
- operIp: str = Query(None, max_length=100),
- operName:str = Query(None, max_length=100),
- title: str = Query(None, max_length=100),
- params: str = Query(None, max_length=100),
- dateRange: str = Query(None, max_length=100),
- pageNum: int = Query(1, gt=0, description="页码"),
- pageSize: int = Query(10, gt=0, le=100, description="每页大小"),
- db: Session = Depends(get_db),
- user_id = Depends(valid_access_token),
- ):
- print(params)
- query = db.query(CzrzEntity)
- query = query.filter(CzrzEntity.action == '应急一张图')
- query = query.filter(CzrzEntity.czrz != '大屏登录成功')
- if operIp:
- query = query.filter(CzrzEntity.ip.like(f'%{operIp}%'))
- if operName:
- query = query.filter(CzrzEntity.nick_name.like(f'%{operName}%'))
- if title:
- query = query.filter(CzrzEntity.action.like(f'%{title}%'))
- if dateRange:
- start_date, end_date = dateRange.split('-')
- # start_date = datetime.strptime(start_date, "%Y-%m-%d")
- # end_date = datetime.strptime(end_date, "%Y-%m-%d") + timedelta(days=1)
- query = query.filter(CzrzEntity.gxsj.between(start_date, end_date))
- total_count = query.count()
- offset = (pageNum - 1) * pageSize
- query = query.order_by(CzrzEntity.gxsj.desc()).offset(offset).limit(pageSize)
- czrz_list = query.all()
- # 将模型实例转换为字典
- czrz_list_dict = [{
- "operIp": item.ip,
- "operName": item.nick_name,
- "title": item.action,
- "czrz": item.czrz,
- "operTime": item.gxsj.strftime('%Y-%m-%d %H:%M:%S') if item.gxsj else '',
- } for item in czrz_list]
- return {
- "code": 200,
- "msg": "操作成功",
- "rows": czrz_list_dict,
- 'pages': (total_count + pageSize - 1) // pageSize,
- 'total': total_count,
- "currentPage": pageNum,
- "pageSize": pageSize,
- }
|