|
@@ -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:
|