ソースを参照

隐患标准库

xuguoyang 4 ヶ月 前
コミット
c5220acabd

+ 21 - 16
routers/api/hazardStandards/__init__.py

@@ -84,35 +84,40 @@ async def create_task(
         raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
 
 
+class DeleteFileRequest(BaseModel):
+    file_id: List[str]  # 修改为字符串列表
+
 # 删除文件接口
 @router.delete('/delete')
-async def delete_file(  body=Depends(remove_xss_json),
-        user_id=Depends(valid_access_token),
-                        db: Session = Depends(get_db)                ):
+async def delete_files(request_body: DeleteFileRequest,  # 修改参数为请求体模型
+                       user_id=Depends(valid_access_token),
+                       db: Session = Depends(get_db)):
     try:
+        # 获取文件ID列表
+        file_ids = request_body.file_id
         # 查询要删除的文件
-        file_id = body.get("file_id")
-        hazard_file = db.query(HazardStandardsFile).filter(HazardStandardsFile.file_id == file_id).first()
-
-        # 如果文件不存在,返回404错误
-        if hazard_file is None:
-            raise HTTPException(status_code=404, detail="File not found")
+        hazard_files = db.query(HazardStandardsFile).filter(HazardStandardsFile.file_id.in_(file_ids)).all()
 
-        # 如果文件已经被删除,返回错误信息
-        if hazard_file.del_flag == '2':
-            raise HTTPException(status_code=400, detail="File already deleted")
+        # 如果没有找到任何文件,返回404错误
+        if not hazard_files:
+            raise HTTPException(status_code=404, detail="Files not found")
 
         # 更新删除标识
-        hazard_file.del_flag = '2'
-        hazard_file.update_time = datetime.now()
+        for hazard_file in hazard_files:
+            # 如果文件已经被删除,跳过并记录错误信息
+            if hazard_file.del_flag == '2':
+                print(f"File ID {hazard_file.file_id} already deleted.")
+                continue
+            hazard_file.del_flag = '2'
+            hazard_file.update_time = datetime.now()
 
         # 提交更改到数据库
         db.commit()
 
         return {
             "code": 200,
-            "msg": "File marked as deleted",
-            "data": file_id
+            "msg": "Files marked as deleted",
+            "data": file_ids
         }
 
     except Exception as e:

+ 1 - 0
routers/api/temperaturePrecipitation/__init__.py

@@ -158,6 +158,7 @@ async def mine(request: Request,db: Session = Depends(get_db)):
                     "url":make_url(dt)
                 }
             )
+        urls = urls[::-1]
         return {
             "code": 200,
             "msg": "成功",