Bläddra i källkod

250522-1代码。

baoyubo 3 månader sedan
förälder
incheckning
2176700c28
1 ändrade filer med 50 tillägg och 2 borttagningar
  1. 50 2
      routers/api/dataManagement/__init__.py

+ 50 - 2
routers/api/dataManagement/__init__.py

@@ -34,7 +34,7 @@ def get_data_field(table_id: int, db: Session = Depends(get_db)):
     ignore_fields_list = info.technical_field.split(';') if info.technical_field else []
     # 查询表结构字段信息
     columns_query = text("""
-                SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT
+                SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT,COLUMN_KEY,IS_NULLABLE
                 FROM INFORMATION_SCHEMA.COLUMNS
                 WHERE TABLE_SCHEMA = :schema_name
                   AND TABLE_NAME = :table_name
@@ -46,7 +46,7 @@ def get_data_field(table_id: int, db: Session = Depends(get_db)):
         "ignore_fields": tuple(ignore_fields_list)
     }).fetchall()
     columns_info = [
-        {"column_name": row[0], "data_type": row[1], "column_comment": row[2]}
+        {"column_name": row[0], "data_type": row[1], "column_comment": row[2],"column_key":row[3],"is_nullable":row[4]}
         for row in columns_result
     ]
     return {
@@ -160,6 +160,54 @@ async def update_data(table_id: int, data_id: int, body=Depends(remove_xss_json)
         traceback.print_exc()
         return JSONResponse(status_code=500, content={'code': 500, 'msg': f"接口发生错误:{e}"})
 
+
+@router.post("/add_data/{table_id}")
+async def add_data(table_id: int, data: dict, db: Session = Depends(get_db)):
+    try:
+        # 获取表结构
+        table_structure = get_data_field(table_id, db)
+        table_name = table_structure["table_name"]
+        schema_name = table_structure["schema_name"]
+
+        # 构建插入语句
+        columns = ", ".join(data.keys())
+        values = ", ".join([f":{key}" for key in data.keys()])
+        insert_query = text(f"INSERT INTO `{schema_name}`.`{table_name}` ({columns}) VALUES ({values})")
+    except Exception as e:
+        traceback.print_exc()
+        return JSONResponse(status_code=500, content={'code': 500, 'msg': f"接口发生错误:{e}"})
+    try:
+        db.execute(insert_query, data)
+        db.commit()
+        return {"message": "Data added successfully"}
+    except Exception as e:
+        db.rollback()
+        traceback.print_exc()
+        return JSONResponse(status_code=500, content={'code': 500, 'msg': f"接口发生错误:{e}"})
+
+@router.delete('/delete_data/{table_id}/{data_id}')
+async def delete_data(table_id: int, data_id: int, db: Session = Depends(get_db)):
+    try:
+        # 获取表结构
+        table_structure = get_data_field(table_id, db)
+        table_name = table_structure["table_name"]
+        schema_name = table_structure["schema_name"]
+
+        # 构建更新语句
+        # update_clauses = ", ".join([f"`{key}` = :{key}" for key in body.keys()])
+        update_query = text(f"UPDATE `{schema_name}`.`{table_name}` SET del_flag='2' WHERE id = :data_id")
+    except Exception as e:
+        traceback.print_exc()
+        return JSONResponse(status_code=500, content={'code': 500, 'msg': f"接口发生错误:{e}"})
+    try:
+        db.execute(update_query, { "data_id": data_id})
+        db.commit()
+        return {"code": 200, "msg": "操作成功", "data":None}
+    except Exception as e:
+        db.rollback()
+        traceback.print_exc()
+        return JSONResponse(status_code=500, content={'code': 500, 'msg': f"接口发生错误:{e}"})
+
 def get_data_info():
     pass
 def insert_data():