#!/usr/bin/env python3 # -*- coding: utf-8 -*- from fastapi import APIRouter, Request, Depends,Query from database import get_db from sqlalchemy.orm import Session from sqlalchemy import case from utils import * from utils.ry_system_util import * from common.security import valid_access_token router = APIRouter() @router.get('/get_video_list_by_user') async def get_video_url_by_id( db: Session = Depends(get_db), body=Depends(remove_xss_json), user_id=Depends(valid_access_token), page: int = Query(1, gt=0, description='页码'), pageSize: int = Query(10, gt=0, description='每页条目数量') ): videoIds = user_id_get_user_videoIds(db, user_id) video_list = [i.video_code_int for i in videoIds] if len(video_list)==0: video_list = [''] query = db.query(TpVideoLog) total_items = query.count() query = query.order_by( case( [(TpVideoLog.video_code_int == video_code_int, 0) for video_code_int in video_list], else_=1 ) ) videos = query.offset((page - 1) * pageSize).limit(pageSize).all() video_list = [{ "name": video.name, "invideoIds":video.video_code_int in video_list, "area": video.area, "ip": video.ip, "status": video.status, "status_lifetime": video.status_lifetime, "record_status": video.record_status, "inspection_datetime": video.inspection_datetime, "video_code_int": video.video_code_int, "video_code": video.video_code } for video in videos] return { "code": 200, "msg": "操作成功", "rows": video_list, "total": total_items, "page": page, "pageSize": pageSize, "totalPages": (total_items + pageSize - 1) // pageSize }