From 30ff0afd5d76a3a5aa48058210ae411253574ada Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期四, 13 三月 2025 14:55:30 +0800 Subject: [PATCH] 增加文件多轮问答 --- app/service/resource.py | 61 ++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 5 deletions(-) diff --git a/app/service/resource.py b/app/service/resource.py index 9d93cef..869910b 100644 --- a/app/service/resource.py +++ b/app/service/resource.py @@ -1,6 +1,7 @@ import uuid from Log import logger +from app.config.const import RESOURCE_STATUS_ON, RESOURCE_STATUS_OFF, RESOURCE_STATUS_DELETE from app.models import ResourceModel @@ -17,14 +18,28 @@ async def delete_resource_info(db, menu_id): + delete_list = [] + dept_list = [] + next_dept_list = [] + base_dept = db.query(ResourceModel).filter(ResourceModel.id.__eq__(menu_id)).first() + dept_list.append(base_dept) + while dept_list: + for dept in dept_list: + delete_list.append(dept.id) + for child_dept in dept.children: + next_dept_list.append(child_dept) + + dept_list = next_dept_list + next_dept_list = [] + try: - db.query(ResourceModel).filter(ResourceModel.id.__eq__(menu_id)).delete() + db.query(ResourceModel).filter(ResourceModel.id.in_(delete_list)).update({"status": RESOURCE_STATUS_DELETE}) db.commit() except Exception as e: logger.error(e) db.rollback() - return False - return True + return '鏈嶅姟寮傚父 锛�' + return "" async def create_menu(db, menu_name, component, path, order_num, perms, menu_type, description, parent_id, status, icon): @@ -49,7 +64,7 @@ dept_model.url = component dept_model.path = path dept_model.perms = perms - dept_model.status = status + # dept_model.status = status dept_model.icon = icon dept_model.seq = order_num dept_model.description = description @@ -62,4 +77,40 @@ logger.error(e) db.rollback() return False - return True \ No newline at end of file + return True + + +async def edit_resource_status(db, menu_id, status): + delete_list = [] + dept_list = [] + next_dept_list = [] + base_dept = db.query(ResourceModel).filter(ResourceModel.id.__eq__(menu_id)).first() + if status == RESOURCE_STATUS_ON: + if base_dept.parent and base_dept.parent.status != RESOURCE_STATUS_ON: + return '涓婄骇鑺傜偣鐘舵�佸紓甯革紒' + try: + base_dept.status = status + db.commit() + except Exception as e: + logger.error(e) + db.rollback() + return '鏈嶅姟寮傚父 锛�' + else: + dept_list.append(base_dept) + while dept_list: + for dept in dept_list: + delete_list.append(dept.id) + for child_dept in dept.children: + next_dept_list.append(child_dept) + + dept_list = next_dept_list + next_dept_list = [] + try: + db.query(ResourceModel).filter(ResourceModel.id.in_(delete_list)).update( + {"status": RESOURCE_STATUS_OFF}) + db.commit() + except Exception as e: + logger.error(e) + db.rollback() + return '鏈嶅姟寮傚父 锛�' + return "" \ No newline at end of file -- Gitblit v1.8.0