From b2a5cf3f47b86ec6b69053dfb2a12d02e3980720 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 31 十二月 2024 14:42:14 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/rag-gateway --- app/task/delete_execl_file.py | 21 ++++++++++ app/task/fetch_agent.py | 2 app/service/user.py | 19 ++++----- main.py | 2 + app/service/role.py | 3 + app/utils/excelmerge/conformity.py | 15 +++---- 6 files changed, 42 insertions(+), 20 deletions(-) diff --git a/app/service/role.py b/app/service/role.py index c7da9b6..ecc8c4a 100644 --- a/app/service/role.py +++ b/app/service/role.py @@ -1,6 +1,7 @@ import uuid from Log import logger +from app.config.const import DEPT_STATUS_ON from app.models import OrganizationModel from app.models.resource_model import ResourceModel from app.models.role_model import RoleModel @@ -16,7 +17,7 @@ total = query.count() roles = query.order_by(RoleModel.created_at.desc()).limit(page_size).offset( (page_index - 1) * page_size).all() - return {"total": total, "rows": [role.to_json() for role in roles]} + return {"total": total, "rows": [role.to_json() for role in roles if role.status == DEPT_STATUS_ON]} async def create_role(db, role_name: str, description: str, role_key, data_scope, user_id): diff --git a/app/service/user.py b/app/service/user.py index 015d404..00162c0 100644 --- a/app/service/user.py +++ b/app/service/user.py @@ -332,8 +332,8 @@ knowledge_dict = {} user = db.query(UserModel).filter_by(id=user_id).first() parent_id = "" - # print(111111111111111) - async def role_resource(role_set, permissions, roles): + + async def role_resource_type(role_set, permissions, roles, type): nonlocal parent_id for role in roles: if role.id not in role_set: @@ -341,20 +341,19 @@ for r in role.resources: if r.resource_type_id != "1": - # if not r.resource_id: - # parent_id = r.id - # continue - permissions[r.id] = r.to_router_dict() + permission_dict = r.to_router_dict() + permission_dict["type"] = type + permissions[r.id] = permission_dict - await role_resource(role_set, permissions, user.roles) + await role_resource_type(role_set, permissions, user.roles, "user") for ogt in user.organizations: if ogt.roles: - await role_resource(role_set, permissions, ogt.roles) + await role_resource_type(role_set, permissions, ogt.roles, "org") parent_ogt = ogt.parent while parent_ogt: if parent_ogt.id not in dept_set: - await role_resource(role_set, permissions, parent_ogt.roles) + await role_resource_type(role_set, permissions, parent_ogt.roles, "org") dept_set.add(parent_ogt.id) parent_ogt = parent_ogt.parent @@ -385,7 +384,7 @@ async def get_user_dept(db, user_id): res = {} user = db.query(UserModel).filter_by(id=user_id).first() - res["rows"] = [i.to_dict() for i in user.organizations] + res["rows"] = [i.to_dict() for i in user.organizations if i.status == DEPT_STATUS_ON] return res diff --git a/app/task/delete_execl_file.py b/app/task/delete_execl_file.py new file mode 100644 index 0000000..0ba45ea --- /dev/null +++ b/app/task/delete_execl_file.py @@ -0,0 +1,21 @@ +import os.path +from datetime import datetime, timedelta + + +def delete_file_after_delay(): + path = "data/output" + data_dir = os.path.dirname(path) + if not os.path.exists(data_dir): + return + if not os.path.exists(path): + return + now = datetime.now() + five_minutes_ago = now - timedelta(minutes=5) + for filename in os.listdir(path): + file_path = os.path.join(path, filename) + if os.path.isfile(file_path): + creation_time = os.path.getctime(file_path) + file_creation_datetime = datetime.fromtimestamp(creation_time) + if file_creation_datetime < five_minutes_ago: + os.remove(file_path) + print(f"瀹氭椂鍒犻櫎鏂囦欢: {file_path}") diff --git a/app/task/fetch_agent.py b/app/task/fetch_agent.py index bbb4da9..8cb7e5a 100644 --- a/app/task/fetch_agent.py +++ b/app/task/fetch_agent.py @@ -483,7 +483,7 @@ import_type_table(db, node) print("add resourceType record successfully") else: - print("sync resources successfully") + print("sync resourcesType successfully") if db.query(ResourceModel).count() == 0: with open(os.path.join(ENV_CONF_PATH, "resource.json"), 'r', encoding='utf-8') as file: json_data = json.load(file) diff --git a/app/utils/excelmerge/conformity.py b/app/utils/excelmerge/conformity.py index 3df2e86..fed5e19 100644 --- a/app/utils/excelmerge/conformity.py +++ b/app/utils/excelmerge/conformity.py @@ -2,8 +2,8 @@ import random import shutil import string -from datetime import datetime +from datetime import datetime from openpyxl import load_workbook @@ -65,17 +65,16 @@ template_excel.save(output_path) template_excel.close() - # 鍚堝苟瀹屾垚鍚庡垹闄ゆ棤鐢ㄦ枃浠� - for filename in os.listdir(file_path): - file_path_full = os.path.join(file_path, filename) - try: + try: + for filename in os.listdir(file_path): + file_path_full = os.path.join(file_path, filename) if os.path.isfile(file_path_full) or os.path.islink(file_path_full): os.unlink(file_path_full) elif os.path.isdir(file_path_full): shutil.rmtree(file_path_full) - os.rmdir(file_path) - except Exception as e: - print(f"鍒犻櫎鏂囦欢鏃跺彂鐢熼敊璇�: {e}") + os.rmdir(file_path) + except Exception as e: + print(f"鍒犻櫎鏂囦欢鏃跺彂鐢熼敊璇�: {e}") return file_name except Exception as e: diff --git a/main.py b/main.py index fc2f567..6b28b99 100644 --- a/main.py +++ b/main.py @@ -23,6 +23,7 @@ from app.api.group import group_router from app.api.role import role_router from app.models.base_model import init_db +from app.task.delete_execl_file import delete_file_after_delay # from app.models.base_model import init_db from app.task.fetch_agent import sync_agents, initialize_agents, sync_agents_v2, sync_knowledge, \ sync_resources_from_json @@ -66,6 +67,7 @@ # 鍒涘缓璋冨害鍣� scheduler = BackgroundScheduler() scheduler.add_job(sync_agents_v2, 'interval', minutes=60, id="sync_resource_data") +scheduler.add_job(delete_file_after_delay, 'interval', minutes=10, id="delete_file_after_delay") scheduler.start() app.include_router(auth_router, prefix='/api/auth', tags=["auth"]) -- Gitblit v1.8.0