__init__.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends,Query, HTTPException, status,BackgroundTasks
  4. from common.security import valid_access_token
  5. from fastapi.responses import JSONResponse
  6. from utils.riskManagement_uitl import *
  7. from utils.ry_system_util import *
  8. from sqlalchemy.orm import Session
  9. from sqlalchemy import and_, or_
  10. from pydantic import BaseModel
  11. from datetime import datetime
  12. from database import get_db
  13. from typing import List
  14. from models import *
  15. from utils import *
  16. import traceback
  17. import json
  18. router = APIRouter()
  19. @router.get("/list")
  20. async def get_pattern_list(
  21. parentid: str = Query(None, description='上级ID'),
  22. leveltype: str = Query(None, description='级别'),
  23. db: Session = Depends(get_db),
  24. user_id = Depends(valid_access_token)
  25. ):
  26. try:
  27. query = db.query(GovdataCity)
  28. query = query.filter(GovdataCity.status == '1')
  29. if parentid:
  30. query = query.filter(GovdataCity.parentid==parentid)
  31. if leveltype:
  32. query = query.filter(GovdataCity.leveltype==leveltype)
  33. if parentid is None and leveltype is None:
  34. return {"code": 200, "msg": "查询成功",
  35. "data": [{"id": info.id, "name": info.name, "parentid": info.parentid} for info in []],
  36. "total": 0
  37. }
  38. total_items = query.count()
  39. # 排序
  40. query = query.order_by(GovdataCity.id)
  41. # 执行分页查询
  42. infos = query.all()
  43. return {"code": 200, "msg": "查询成功", "data": [{"id": info.id, "name": info.name, "parentid": info.parentid} for info in infos],
  44. "total": total_items
  45. }
  46. except Exception as e:
  47. traceback.print_exc()
  48. raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")