Jelajahi Sumber

Merge branch 'master' of https://gogs.tjp.com.cn/maoming/python-fastapi-mm-zhcs-yj-api

libushang 2 bulan lalu
induk
melakukan
9c426fdf52

+ 8 - 7
routers/api/Knowledge/__init__.py

@@ -1,6 +1,7 @@
 from fastapi import APIRouter, Request, Depends, HTTPException, Query,Response
 from sqlalchemy.exc import IntegrityError
 
+from common.security import valid_access_token
 from fastapi.responses import JSONResponse
 from database import get_db
 from sqlalchemy.orm import Session
@@ -20,7 +21,7 @@ router = APIRouter()
 
 
 @router.post('/create')
-async def create_knowledge(request: Request, db: Session = Depends(get_db)):
+async def create_knowledge(request: Request, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     body = await request.json()
     required_fields = ['reportName', 'subject', 'eventType', 'publishingUnit', 'publishDate', 'summary', 'fileNames']
     if not all(field in body for field in required_fields):
@@ -108,7 +109,7 @@ async def select_knowledge(
     pageSize: int = Query(10, gt=0, le=100, description="每页大小"),
     eventType: str = Query(None, description="事件类型"),
     publishDateRange: str = Query(None, description="发布日期范围"),
-    query: str = Query(None, description="查询关键字")
+    query: str = Query(None, description="查询关键字", user_id=Depends(valid_access_token))
 ):
     data_query = db.query(KnowledgeBase)
     data_query = data_query.filter(KnowledgeBase.del_flag != '2')
@@ -176,7 +177,7 @@ async def select_knowledge(
 
 
 @router.get('/detail')
-async def get_knowledge_detail(db: Session = Depends(get_db), reportID: Optional[str] = Query(None, description="报告ID")):
+async def get_knowledge_detail(db: Session = Depends(get_db), reportID: Optional[str] = Query(None, description="报告ID"), user_id=Depends(valid_access_token)):
     if not reportID:
         raise HTTPException(status_code=400, detail="Missing required parameter 'reportID'")
 
@@ -230,7 +231,7 @@ async def get_knowledge_detail(db: Session = Depends(get_db), reportID: Optional
 
 
 @router.post  ('/delete')
-async def delete_knowledge(request: Request, db: Session = Depends(get_db)):
+async def delete_knowledge(request: Request, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # 从请求的 JSON 数据中获取 reportID
     body = await request.json()
     report_id_to_use = body.get('reportID')
@@ -274,7 +275,7 @@ async def delete_knowledge(request: Request, db: Session = Depends(get_db)):
 
 
 @router.delete('/delete/list')
-async def delete_knowledge_list(request: Request, db: Session = Depends(get_db)):
+async def delete_knowledge_list(request: Request, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # 从请求的 JSON 数据中获取 reportID
     body = await request.json()
     report_id_to_use = body.get('reportID')
@@ -341,7 +342,7 @@ def delete_file_fun(knowledge_base_code,db: Session):
 
 
 @router.post('/update')
-async def update_knowledge(request: Request, db: Session = Depends(get_db)):
+async def update_knowledge(request: Request, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     body = await request.json()
     report_id_to_use = body.get('reportId')
     if not report_id_to_use:
@@ -407,7 +408,7 @@ async def update_knowledge(request: Request, db: Session = Depends(get_db)):
 
 
 @router.put('/update/list')
-async def update_knowledge_list(request: Request, db: Session = Depends(get_db)):
+async def update_knowledge_list(request: Request, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     body = await request.json()
     update_items = body.get('updateItems')
     if not update_items or not isinstance(update_items, list):

+ 3 - 0
routers/api/resourceProvison/MaterialReserveManagement/dispatch.py

@@ -177,6 +177,7 @@ async def update_dispatch(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -236,6 +237,7 @@ async def get_pattern_info(
 @router.get("/list")
 async def get_pattern_list(
     # dispatch_details: str = Query(None, description='名称'),
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)
@@ -327,6 +329,7 @@ async def create_pattern(
 
 @router.get("/review/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)

+ 2 - 0
routers/api/resourceProvison/MaterialReserveManagement/m_count.py

@@ -26,6 +26,7 @@ router = APIRouter()
 
 @router.get("/data")
 async def get_count_info(
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -41,6 +42,7 @@ async def get_count_info(
         raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
 @router.get("/count_room_material")
 async def get_count_info(
+    user_id=Depends(valid_access_token),
     warehouseId:str = Query(None),
     db: Session = Depends(get_db)
 ):

+ 4 - 0
routers/api/resourceProvison/MaterialReserveManagement/material.py

@@ -187,6 +187,7 @@ async def update_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -260,6 +261,7 @@ async def get_pattern_info(
 
 @router.get("/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     material_id: str = Query(None, description='名称'),
     material_name: str = Query(None, description='名称'),
     warehouse_id: str = Query(None, description='名称'),
@@ -358,6 +360,7 @@ async def get_pattern_list(
 @router.delete("/delete/{id}")
 async def delete_pattern(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -380,6 +383,7 @@ async def delete_pattern(
 
 @router.get("/barcode/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     name: str = Query(None, description='名称'),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),

+ 3 - 0
routers/api/resourceProvison/MaterialReserveManagement/material_type.py

@@ -76,6 +76,7 @@ async def update_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -98,6 +99,7 @@ async def get_pattern_info(
 
 @router.get("/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     name: str = Query(None, description='名称'),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),
@@ -136,6 +138,7 @@ async def get_pattern_list(
 @router.delete("/delete/{id}")
 async def delete_pattern(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:

+ 3 - 0
routers/api/resourceProvison/MaterialReserveManagement/procurement.py

@@ -142,6 +142,7 @@ async def update_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -202,6 +203,7 @@ async def get_pattern_info(
 @router.get("/list")
 async def get_pattern_list(
     # declaration_details: str = Query(None, description='名称'),
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)
@@ -294,6 +296,7 @@ async def create_pattern(
 
 @router.get("/review/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)

+ 3 - 0
routers/api/resourceProvison/MaterialReserveManagement/warehouse.py

@@ -95,6 +95,7 @@ async def update_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -128,6 +129,7 @@ async def get_pattern_info(
 @router.get("/list")
 async def get_pattern_list(
     # name: str = Query(None, description='名称'),
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(None, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)
@@ -177,6 +179,7 @@ async def get_pattern_list(
 @router.delete("/delete/{id}")
 async def delete_pattern(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:

+ 2 - 0
routers/api/resourceProvison/MaterialReserveManagement/warehouse_inbound.py

@@ -111,6 +111,7 @@ async def create_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -161,6 +162,7 @@ async def get_pattern_info(
 @router.get("/list")
 async def get_pattern_list(
     # warehouse_id: str = Query(None, description='名称'),
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(100, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)

+ 1 - 0
routers/api/resourceProvison/MaterialReserveManagement/warehouse_movement.py

@@ -26,6 +26,7 @@ router = APIRouter()
 
 @router.get("/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     material_id: str = Query(None, description='物资id'),
     io_number: str = Query(None, description='出入库单号'),
     io_flag: str = Query(None, description='出入库标识'),

+ 2 - 0
routers/api/resourceProvison/MaterialReserveManagement/warehouse_outbound.py

@@ -109,6 +109,7 @@ async def create_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -157,6 +158,7 @@ async def get_pattern_info(
 @router.get("/list")
 async def get_pattern_list(
     # warehouse_id: str = Query(None, description='名称'),
+    user_id=Depends(valid_access_token),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(100, gt=0, description='每页条目数量'),
     db: Session = Depends(get_db)

+ 3 - 0
routers/api/resourceProvison/MaterialReserveManagement/warehouse_root.py

@@ -88,6 +88,7 @@ async def update_pattern(
 @router.get("/info/{id}")
 async def get_pattern_info(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:
@@ -123,6 +124,7 @@ async def get_pattern_info(
 
 @router.get("/list")
 async def get_pattern_list(
+    user_id=Depends(valid_access_token),
     warehouse_id: str = Query(None, description='名称'),
     page: int = Query(1, gt=0, description='页码'),
     pageSize: int = Query(100, gt=0, description='每页条目数量'),
@@ -173,6 +175,7 @@ async def get_pattern_list(
 @router.delete("/delete/{id}")
 async def delete_pattern(
     id: str,
+    user_id=Depends(valid_access_token),
     db: Session = Depends(get_db)
 ):
     try:

+ 25 - 22
routers/api/resourceProvison/emergency_resources.py

@@ -50,7 +50,7 @@ class WaterResourceProjectListSchema(BaseModel):
         orm_mode = True
 #插入数据
 @router.post("/projects/")
-def create_projects(project_list_data: WaterResourceProjectListSchema, db: Session = Depends(get_db)):
+def create_projects(project_list_data: WaterResourceProjectListSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     projects = project_list_data.projects
     if not projects:  # 确保列表不为空
         raise HTTPException(status_code=400, detail="项目列表不能为空")
@@ -173,7 +173,8 @@ class UnitListSchema(BaseModel):
         orm_mode = True
 #创建
 @router.post("/rescue_units/")
-def create_units(unit_list_data: UnitListSchema, db: Session = Depends(get_db)):
+def create_units(unit_list_data: UnitListSchema,
+    user_id=Depends(valid_access_token), db: Session = Depends(get_db)):
     units = unit_list_data.units
     if not units:  # 确保列表不为空
         raise HTTPException(status_code=400, detail="单位列表不能为空")
@@ -297,7 +298,8 @@ class RescuePersonnelListSchema(BaseModel):
         orm_mode = True
 #创建
 @router.post("/rescue_personnel/")
-def create_rescue_personnel(personnel_list_data: RescuePersonnelListSchema, db: Session = Depends(get_db)):
+def create_rescue_personnel(personnel_list_data: RescuePersonnelListSchema,
+    user_id=Depends(valid_access_token), db: Session = Depends(get_db)):
     personnel_list = personnel_list_data.personnel_list
     if not personnel_list:  # 确保列表不为空
         raise HTTPException(status_code=400, detail="人员列表不能为空")
@@ -316,7 +318,8 @@ def create_rescue_personnel(personnel_list_data: RescuePersonnelListSchema, db:
 
 #删除
 @router.delete("/rescue_personnel/{personnel_id}/")
-def delete_rescue_personnel(personnel_id: int, db: Session = Depends(get_db)):
+def delete_rescue_personnel(personnel_id: int,
+    user_id=Depends(valid_access_token),db: Session = Depends(get_db)):
     personnel = db.query(RescuePersonnel).get(personnel_id)
     if not personnel:
         raise HTTPException(status_code=404, detail="救灾人员不存在")
@@ -328,7 +331,7 @@ def delete_rescue_personnel(personnel_id: int, db: Session = Depends(get_db)):
 # 查询列表
 @router.get("/rescue_personnel/")
 def get_rescue_personnel(page: int = Query(default=1, gt=0),
-                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db)):
+                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # 应用过滤条件,仅查询未被删除的人员
     data_query = db.query(RescuePersonnel).filter(RescuePersonnel.is_delete == 0)
 
@@ -369,7 +372,7 @@ def get_rescue_personnel(page: int = Query(default=1, gt=0),
 
 #查询详情
 @router.get("/rescue_personnel/{personnel_id}/")
-def get_rescue_personnel_by_id(personnel_id: int, db: Session = Depends(get_db)):
+def get_rescue_personnel_by_id(personnel_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # unit = db.query(Unit).filter_by(id=unit_id, is_delete=0).first()
     personnel = db.query(RescuePersonnel).filter_by(id = personnel_id, is_delete = 0).first()
 
@@ -403,7 +406,7 @@ def get_rescue_personnel_by_id(personnel_id: int, db: Session = Depends(get_db))
 
 #修改
 @router.put("/rescue_personnel/{personnel_id}/")
-def update_rescue_personnel(personnel_id: int, update_data: RescuePersonnelSchema, db: Session = Depends(get_db)):
+def update_rescue_personnel(personnel_id: int, update_data: RescuePersonnelSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     personnel = db.query(RescuePersonnel).filter_by(id=personnel_id, is_delete=0).first()
     if not personnel:
         raise HTTPException(status_code=404, detail="救灾人员不存在或已被标记为删除")
@@ -461,7 +464,7 @@ class RescueStationListSchema(BaseModel):
 
 #救助站管理
 @router.post("/rescue_stations/")
-def create_rescue_stations(rescue_station_list_data: RescueStationListSchema, db: Session = Depends(get_db)):
+def create_rescue_stations(rescue_station_list_data: RescueStationListSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     stations = rescue_station_list_data.stations
     if not stations:  # 确保列表不为空
         raise HTTPException(status_code=400, detail="救助站列表不能为空")
@@ -482,7 +485,7 @@ def create_rescue_stations(rescue_station_list_data: RescueStationListSchema, db
 
 
 @router.delete("/rescue_stations/{station_id}/")
-def delete_rescue_station(station_id: int, db: Session = Depends(get_db)):
+def delete_rescue_station(station_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     station = db.query(RescueStation).filter_by(id=station_id, is_delete=0).first()
     if not station:
         raise HTTPException(status_code=404, detail="救助站不存在")
@@ -501,7 +504,7 @@ def delete_rescue_station(station_id: int, db: Session = Depends(get_db)):
 
 @router.get("/rescue_stations/")
 def get_rescue_stations(page: int = Query(default=1, gt=0),
-                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db)):
+                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # 应用过滤条件,仅查询未被删除的救助站
     data_query = db.query(RescueStation).filter(RescueStation.is_delete == 0)
 
@@ -528,7 +531,7 @@ def get_rescue_stations(page: int = Query(default=1, gt=0),
     return result
 
 @router.get("/rescue_stations/{station_id}/")
-def get_rescue_station_by_id(station_id: int, db: Session = Depends(get_db)):
+def get_rescue_station_by_id(station_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     station = db.query(RescueStation).filter_by(id=station_id, is_delete=0).first()
 
     if not station:
@@ -536,7 +539,7 @@ def get_rescue_station_by_id(station_id: int, db: Session = Depends(get_db)):
     return {"code": 200, "msg": "查询成功", "station": station.to_dict()}
 
 @router.put("/rescue_stations/{station_id}/")
-def update_rescue_station(station_id: int, update_data: RescueStationSchema, db: Session = Depends(get_db)):
+def update_rescue_station(station_id: int, update_data: RescueStationSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     station = db.query(RescueStation).filter_by(id=station_id, is_delete=0).first()
     if not station:
         raise HTTPException(status_code=404, detail="救助站不存在或已被标记为删除")
@@ -604,7 +607,7 @@ class DefenseProjectListSchema(BaseModel):
 
 # 创建
 @router.post("/defense_projects/")
-def create_defense_projects(defense_project_list_data: DefenseProjectListSchema, db: Session = Depends(get_db)):
+def create_defense_projects(defense_project_list_data: DefenseProjectListSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     projects = defense_project_list_data.projects
     if not projects:  # 确保列表不为空
         raise HTTPException(status_code=400, detail="项目列表不能为空")
@@ -623,7 +626,7 @@ def create_defense_projects(defense_project_list_data: DefenseProjectListSchema,
 
 # 删除
 @router.delete("/defense_projects/{project_id}/")
-def delete_defense_project(project_id: int, db: Session = Depends(get_db)):
+def delete_defense_project(project_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # project = db.query(DefenseProject).get(project_id)
     project = db.query(DefenseProject).filter_by(id=project_id, is_delete=0).first()
 
@@ -647,7 +650,7 @@ class DefenseProjectListQueryParams(BaseModel):
     # page_size: int = Query(10, gt=0, description='pageSize'),
 @router.get("/defense_projects/")
 def get_defense_projects(page: int = Query(default=1, gt=0),
-                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db)):
+                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # 应用过滤条件,仅查询未被删除的项目
     data_query = db.query(DefenseProject).filter(DefenseProject.is_delete == False)
 
@@ -675,7 +678,7 @@ def get_defense_projects(page: int = Query(default=1, gt=0),
 
 # 查询详情
 @router.get("/defense_projects/{project_id}/")
-def get_defense_project_by_id(project_id: int, db: Session = Depends(get_db)):
+def get_defense_project_by_id(project_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     # project = db.query(DefenseProject).filter_by(id=project_id, is_delete=0).first()
     project = db.query(DefenseProject).filter_by(id=project_id, is_delete=0).first()
 
@@ -685,7 +688,7 @@ def get_defense_project_by_id(project_id: int, db: Session = Depends(get_db)):
 
 # 修改
 @router.put("/defense_projects/{project_id}/")
-def update_defense_project(project_id: int, update_data: DefenseProjectSchema, db: Session = Depends(get_db)):
+def update_defense_project(project_id: int, update_data: DefenseProjectSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     project = db.query(DefenseProject).filter_by(id=project_id, is_delete=False).first()
     if not project:
         raise HTTPException(status_code=404, detail="项目不存在或已被标记为删除")
@@ -733,7 +736,7 @@ class ShelterListSchema(BaseModel):
 
 # 创建
 @router.post("/shelters/")
-def create_shelters(shelter_list_data: ShelterListSchema, db: Session = Depends(get_db)):
+def create_shelters(shelter_list_data: ShelterListSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     shelters = shelter_list_data.shelters
     if not shelters:
         raise HTTPException(status_code=400, detail="避难场所列表不能为空")
@@ -752,7 +755,7 @@ def create_shelters(shelter_list_data: ShelterListSchema, db: Session = Depends(
 
 # 删除
 @router.delete("/shelters/{shelter_id}/")
-def delete_shelter(shelter_id: int, db: Session = Depends(get_db)):
+def delete_shelter(shelter_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     shelter = db.query(Shelter).filter_by(id=shelter_id, is_delete=0).first()
     if not shelter:
         raise HTTPException(status_code=404, detail="避难场所不存在")
@@ -769,7 +772,7 @@ def delete_shelter(shelter_id: int, db: Session = Depends(get_db)):
 
 @router.get("/shelters/")
 def get_shelters(page: int = Query(default=1, gt=0),
-                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db)):
+                 pageSize: int = Query(default=10, gt=0), db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     data_query = db.query(Shelter).filter(Shelter.is_delete == False)
     total_count = data_query.count()
     offset = (page - 1) * pageSize
@@ -788,7 +791,7 @@ def get_shelters(page: int = Query(default=1, gt=0),
 
 # 查询详情
 @router.get("/shelters/{shelter_id}/")
-def get_shelter_by_id(shelter_id: int, db: Session = Depends(get_db)):
+def get_shelter_by_id(shelter_id: int, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     shelter = db.query(Shelter).filter_by(id=shelter_id, is_delete=0).first()
     if not shelter:
         raise HTTPException(status_code=404, detail="避难场所不存在或已被标记为删除")
@@ -796,7 +799,7 @@ def get_shelter_by_id(shelter_id: int, db: Session = Depends(get_db)):
 
 # 修改
 @router.put("/shelters/{shelter_id}/")
-def update_shelter(shelter_id: int, update_data: ShelterSchema, db: Session = Depends(get_db)):
+def update_shelter(shelter_id: int, update_data: ShelterSchema, db: Session = Depends(get_db), user_id=Depends(valid_access_token)):
     shelter = db.query(Shelter).filter_by(id=shelter_id, is_delete=False).first()
     if not shelter:
         raise HTTPException(status_code=404, detail="避难场所不存在或已被标记为删除")