Browse Source

删除无效bug处理

master
si@aidatagov.com 3 days ago
parent
commit
1641b5ac3a
  1. 48
      vue-fastapi-backend/module_admin/dao/data_ast_content_dao.py

48
vue-fastapi-backend/module_admin/dao/data_ast_content_dao.py

@ -260,17 +260,19 @@ class DataCatalogDAO:
await db.execute(stmt)
@classmethod
async def edit_catalog_child_dao(cls, db: AsyncSession, catalog: dict):
"""
编辑目录数据库操作
编辑目录数据库操作子节点先删除再新增
:param db: orm对象
:param catalog: 需要更新的目录字典
:return:
:param catalog: 需要更新的目录字典包含 children 列表
"""
content_onum = catalog['content_onum']
# ---------- 更新主目录 ----------
stmt = (
update(DataAstContent)
.where(DataAstContent.content_onum == content_onum)
@ -283,35 +285,25 @@ class DataCatalogDAO:
leaf_node_flag=catalog['leaf_node_flag'],
upd_prsn=catalog['upd_prsn'],
upd_time=datetime.now()
) )
)
)
await db.execute(stmt)
# 处理子关系
for child in catalog.get('children', []):
rela_onum = child.get('rela_onum')
if rela_onum:
st = (
update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == rela_onum)
.values(
content_onum=child.get('content_onum'),
ast_onum=child.get('ast_onum'),
rela_type=child.get('rela_type'),
rela_eff_begn_date=child.get('rela_eff_begn_date'),
rela_eff_end_date=child.get('rela_eff_end_date'),
upd_prsn=child.get('upd_prsn'))
)
# ---------- 删除原有子关系 ----------
delete_stmt = (
delete(DataAstContentRela)
.where(DataAstContentRela.content_onum == content_onum)
)
await db.execute(delete_stmt)
await db.execute(st)
await cls.update_leaf_node_flag(db)
else:
child['content_onum'] = content_onum
db_child = DataAstContentRela(**child)
db.add(db_child)
await db.flush()
await cls.update_leaf_node_flag(db)
# ---------- 新增子关系 ----------
for child in catalog.get('children', []):
child['content_onum'] = content_onum
db_child = DataAstContentRela(**child)
db.add(db_child)
# 更新叶子节点状态
await cls.update_leaf_node_flag(db)

Loading…
Cancel
Save