Преглед изворни кода

修正/sava/metadata的receiver的错误

wangxq пре 1 месец
родитељ
комит
128175ecc2
1 измењених фајлова са 17 додато и 3 уклоњено
  1. 17 3
      app/api/data_resource/routes.py

+ 17 - 3
app/api/data_resource/routes.py

@@ -457,6 +457,20 @@ def id_data_save():
             
         # 处理元数据保存
         with neo4j_driver.get_session() as session:
+            # 获取数据资源名称
+            resource_query = """
+            MATCH (n:data_resource) 
+            WHERE id(n) = $resource_id
+            RETURN n.name as resource_name
+            """
+            resource_result = session.run(resource_query, resource_id=int(resource_id))
+            resource_record = resource_result.single()
+            
+            if not resource_record:
+                return jsonify(failed(f"未找到ID为{resource_id}的数据资源"))
+                
+            resource_name = resource_record["resource_name"]
+            
             # 先删除现有关系
             cypher_delete = """
             MATCH (n:data_resource)-[r:contain]->()
@@ -501,13 +515,13 @@ def id_data_save():
                 
                 rel_result = session.run(
                     rel_cypher,
-                    r_name=receiver['name'],
+                    r_name=resource_name,
                     m_name=meta["name"]
                 )
                 
                 # 检查关系是否创建成功
                 if rel_result.single():
-                    logger.info(f"成功创建关系: {receiver['name']} -> {meta['name']}")
+                    logger.info(f"成功创建关系: {resource_name} -> {meta['name']}")
                 else:
                     logger.warning(f"关系创建结果为空")
 
@@ -519,7 +533,7 @@ def id_data_save():
                 
                 verify_result = session.run(
                     verify_cypher,
-                    r_name=receiver['name'],
+                    r_name=resource_name,
                     m_name=meta["name"]
                 )