Browse Source

删除无效bug处理

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

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

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

Loading…
Cancel
Save