From 4faa732b1bd55335b142d5454833a8d5432675fe Mon Sep 17 00:00:00 2001 From: xuyonghao <898441624@qq.com> Date: 星期四, 26 十二月 2024 18:08:42 +0800 Subject: [PATCH] resources_type表同步 --- app/config/env_conf/resource_type.json | 23 +++++++++++++++++++++++ app/task/fetch_agent.py | 28 ++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/app/config/env_conf/resource_type.json b/app/config/env_conf/resource_type.json new file mode 100644 index 0000000..a58d009 --- /dev/null +++ b/app/config/env_conf/resource_type.json @@ -0,0 +1,23 @@ +[ + { + "id": "0", + "created_at": null, + "updated_at": null, + "name": "鑿滃崟", + "description": "鑿滃崟绫诲瀷浼氭樉绀哄湪绯荤粺棣栭〉宸︿晶鑿滃崟涓�" + }, + { + "id": "1", + "created_at": null, + "updated_at": null, + "name": "鍔熻兘", + "description": "鍔熻兘绫诲瀷涓嶄細鏄剧ず鍦ㄧ郴缁熼椤靛乏渚ц彍鍗曚腑" + }, + { + "id": "3", + "created_at": null, + "updated_at": null, + "name": "鐩綍", + "description": null + } +] \ No newline at end of file diff --git a/app/task/fetch_agent.py b/app/task/fetch_agent.py index da17b10..bbb4da9 100644 --- a/app/task/fetch_agent.py +++ b/app/task/fetch_agent.py @@ -14,7 +14,7 @@ from app.models.user_model import UserAppModel from app.models.agent_model import AgentModel from app.models.base_model import SessionLocal, Base -from app.models.resource_model import ResourceModel +from app.models.resource_model import ResourceModel, ResourceTypeModel from app.service.v2.app_register import AppRegisterDao # 鍒涘缓鏁版嵁搴撳紩鎿庡拰浼氳瘽宸ュ巶 @@ -431,6 +431,18 @@ db.close() +def import_type_table(session: Session, node: dict, parent=None): + resource_type = ResourceTypeModel( + id=node['id'], + name=node['name'], + description=node.get('description') + ) + if parent: + resource_type.parent = parent + session.add(resource_type) + session.commit() + + def import_tree(session: Session, node: dict, parent=None): resource = ResourceModel( id=node['id'], @@ -460,6 +472,18 @@ def sync_resources_from_json(): db = SessionLocal() try: + if db.query(ResourceTypeModel).count() == 0: + with open(os.path.join(ENV_CONF_PATH, "resource_type.json"), 'r', encoding='utf-8') as file: + type_json_data = json.load(file) + + db.query(ResourceTypeModel).delete() + db.commit() + + for node in type_json_data: + import_type_table(db, node) + print("add resourceType record successfully") + else: + print("sync resources 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) @@ -473,7 +497,7 @@ else: print("sync resources successfully") except Exception as e: - print(f"Failed to sync resources: {str(e)}") + print(f"Failed to sync resources or resource type: {str(e)}") finally: db.close() -- Gitblit v1.8.0