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