123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from fastapi import APIRouter, Request, Depends,Query,HTTPException
- from database import get_db
- from sqlalchemy.orm import Session
- from fastapi.responses import JSONResponse
- from models import *
- from utils import *
- from utils.ry_system_util import *
- from common.security import valid_access_token
- import traceback
- router = APIRouter()
- @router.get("/tree/{parent_id}")
- def read_all_areas(parent_id:int = 1,db: Session = Depends(get_db)):
- def parent_id_get_area_info(parent_id):
- query = db.query(GovdataArea)
- query = query.filter(GovdataArea.parent_id == parent_id)
- return query.all()
- def id_get_area_info(id):
- query = db.query(GovdataArea)
- query = query.filter(GovdataArea.id == id)
- return query.first()
- try:
- area_info = id_get_area_info(parent_id)
- area_list = parent_id_get_area_info(parent_id)
- data = []
- if parent_id>1:
- data.append({'id': area_info.id,
- 'label': f"{area_info.area_name}本级",
- 'personSum': 0,
- 'isShowSelect': True,
- 'parentLabel': area_info.area_name
- })
- for info in area_list:
- isShowSelect = True
- if parent_id_get_area_info(info.id):
- isShowSelect=False
- data.append({'id': info.id,
- 'label': info.area_name,
- 'personSum': 0,
- 'isShowSelect': isShowSelect,
- 'parentLabel': area_info.area_name})
- return {
- "code": 200,
- "msg": "成功",
- "data": data
- }
- except Exception as e:
- traceback.print_exc()
- raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
- @router.get("/tree2/{parent_id}")
- def read_all_areas(parent_id:int = 1,db: Session = Depends(get_db)):
- def parent_id_get_area_info(parent_id):
- query = db.query(GovdataArea)
- query = query.filter(GovdataArea.parent_id == parent_id)
- return query.all()
- def id_get_area_info(id):
- query = db.query(GovdataArea)
- query = query.filter(GovdataArea.id == id)
- return query.first()
- try:
- area_info = id_get_area_info(parent_id)
- parentLabel=''
- if area_info:
- parentLabel = area_info.area_name
- area_list = parent_id_get_area_info(parent_id)
- data = []
- for info in area_list:
- isShowSelect = True
- if parent_id_get_area_info(info.id):
- isShowSelect=False
- data.append({'id': info.id,
- 'label': info.area_name,
- 'personSum': 0,
- 'isShowSelect': isShowSelect,
- 'parentLabel': parentLabel})
- return {
- "code": 200,
- "msg": "成功",
- "data": data
- }
- except Exception as e:
- traceback.print_exc()
- raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
- @router.get("/allTree")
- def read_all_areas(db: Session = Depends(get_db)):
- filename = '/home/python3/xh_twapi01/routers/api/riskManagement/area_tree.json'
- # 打开文件并读取内容
- with open(filename, 'r', encoding='utf-8') as file:
- # 加载JSON内容到一个字典
- data = json.load(file)
- return {
- "code": 200,
- "msg": "成功",
- "data": data
- }
|