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