Browse Source

250211-2代码。

baoyubo 3 tháng trước cách đây
mục cha
commit
32522bd1cf
3 tập tin đã thay đổi với 57 bổ sung2 xóa
  1. 2 2
      models/city_base.py
  2. 2 0
      routers/api/__init__.py
  3. 53 0
      routers/api/city/__init__.py

+ 2 - 2
models/city_base.py

@@ -1,4 +1,4 @@
-from sqlalchemy import create_engine, Column, BigInteger, String, Text, DateTime, CHAR,Integer,Float, Enum, TinyInteger
+from sqlalchemy import create_engine, Column, BigInteger, String, Text, DateTime, CHAR,Integer,Float, Enum
 
 from database import Base
 from datetime import datetime
@@ -10,7 +10,7 @@ class GovdataCity(Base):
     name = Column(String(40), comment='省市区名称')
     parentid = Column(Integer, comment='上级ID')
     shortname = Column(String(40), comment='简称')
-    leveltype = Column(TinyInteger, comment='级别:0,中国;1,省分;2,市;3,区、县')
+    leveltype = Column(Integer, comment='级别:0,中国;1,省分;2,市;3,区、县')
     citycode = Column(String(7), comment='城市代码')
     zipcode = Column(String(7), comment='邮编')
     lng = Column(String(20), comment='经度')

+ 2 - 0
routers/api/__init__.py

@@ -33,6 +33,7 @@ from . import yst
 from . import comprehensive_search
 from . import ThreeProofingResponsible
 from . import hazardStandards
+from . import city
 from extensions import logger
 from routers.prod_api import system
 from routers.prod_api import auth
@@ -89,5 +90,6 @@ router.include_router(yst.router, prefix="/yst", tags=["粤商通"])
 
 router.include_router(comprehensive_search.router, prefix="/comprehensive/search", tags=["全局搜索"])
 router.include_router(ThreeProofingResponsible.router, prefix="/ThreeProofingResponsible", tags=["三防责任人管理"])
+router.include_router(city.router, prefix="/city", tags=["区划"])
 
 

+ 53 - 0
routers/api/city/__init__.py

@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from fastapi import APIRouter, Request, Depends,Query, HTTPException, status,BackgroundTasks
+from common.security import valid_access_token
+from fastapi.responses import JSONResponse
+from utils.riskManagement_uitl import *
+from utils.ry_system_util import *
+from sqlalchemy.orm import Session
+from sqlalchemy import and_, or_
+from pydantic import BaseModel
+from datetime import datetime
+from database import get_db
+from typing import List
+from models import *
+from utils import *
+import traceback
+import json
+
+
+router = APIRouter()
+
+@router.get("/list")
+async def get_pattern_list(
+    parentid: str = Query(None, description='上级ID'),
+    leveltype: str = Query(None, description='级别'),
+    db: Session = Depends(get_db)
+):
+    try:
+        query = db.query(GovdataCity)
+        query = query.filter(GovdataCity.status == '1')
+        if parentid:
+            query = query.filter(GovdataCity.parentid==parentid)
+        if leveltype:
+            query = query.filter(GovdataCity.leveltype==leveltype)
+        if parentid is None and leveltype is None:
+            return {"code": 200, "msg": "查询成功",
+                    "data": [{"id": info.id, "name": info.name, "parentid": info.parentid} for info in []],
+                    "total": 0
+                    }
+        total_items = query.count()
+
+        # 排序
+
+        query = query.order_by(GovdataCity.id)
+        # 执行分页查询
+        infos = query.all()
+        return {"code": 200, "msg": "查询成功", "data": [{"id": info.id, "name": info.name, "parentid": info.parentid} for info in infos],
+                "total": total_items
+                }
+    except Exception as e:
+        traceback.print_exc()
+        raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")