123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/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
- }
|