__init__.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. ):
  25. try:
  26. query = db.query(GovdataCity)
  27. query = query.filter(GovdataCity.status == '1')
  28. if parentid:
  29. query = query.filter(GovdataCity.parentid==parentid)
  30. if leveltype:
  31. query = query.filter(GovdataCity.leveltype==leveltype)
  32. if parentid is None and leveltype is None:
  33. return {"code": 200, "msg": "查询成功",
  34. "data": [{"id": info.id, "name": info.name, "parentid": info.parentid} for info in []],
  35. "total": 0
  36. }
  37. total_items = query.count()
  38. # 排序
  39. query = query.order_by(GovdataCity.id)
  40. # 执行分页查询
  41. infos = query.all()
  42. return {"code": 200, "msg": "查询成功", "data": [{"id": info.id, "name": info.name, "parentid": info.parentid} for info in infos],
  43. "total": total_items
  44. }
  45. except Exception as e:
  46. traceback.print_exc()
  47. raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")