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