From 1ff7c04fb8bd7801825c7fed3a70b8966f31b2d8 Mon Sep 17 00:00:00 2001 From: Hadoken Date: Wed, 23 Jul 2025 10:07:09 +0000 Subject: [PATCH] =?UTF-8?q?update=20ruoyi-fastapi-backend/utils/template?= =?UTF-8?q?=5Futil.py.=20=E7=94=9F=E6=88=90DO=20=E7=A9=BA=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hadoken --- ruoyi-fastapi-backend/utils/template_util.py | 35 +++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/ruoyi-fastapi-backend/utils/template_util.py b/ruoyi-fastapi-backend/utils/template_util.py index 6765bd0..f2d54a6 100644 --- a/ruoyi-fastapi-backend/utils/template_util.py +++ b/ruoyi-fastapi-backend/utils/template_util.py @@ -49,8 +49,8 @@ class TemplateUtils: """ # 项目路径 - FRONTEND_PROJECT_PATH = 'frontend' - BACKEND_PROJECT_PATH = 'backend' + FRONTEND_PROJECT_PATH = 'ruoyi-fastapi-frontend' + BACKEND_PROJECT_PATH = 'ruoyi-fastapi-backend' DEFAULT_PARENT_MENU_ID = '3' @classmethod @@ -214,9 +214,9 @@ class TemplateUtils: elif 'sql.jinja2' in template: return f'{cls.BACKEND_PROJECT_PATH}/sql/{business_name}_menu.sql' elif 'api.js.jinja2' in template: - return f'{vue_path}/api/{module_name}/{business_name}.js' + return f'{vue_path}/src/api/{module_name}/{business_name}.js' elif 'index.vue.jinja2' in template or 'index-tree.vue.jinja2' in template: - return f'{vue_path}/views/{module_name}/{business_name}/index.vue' + return f'{vue_path}/src/views/{module_name}/{business_name}/index.vue' return '' @classmethod @@ -268,17 +268,21 @@ class TemplateUtils: data_type = cls.get_db_type(column.column_type) if data_type in GenConstant.COLUMNTYPE_GEOMETRY: import_list.add('from geoalchemy2 import Geometry') - import_list.add( - f'from sqlalchemy import {StringUtil.get_mapping_value_by_key_ignore_case(GenConstant.DB_TO_SQLALCHEMY_TYPE_MAPPING, data_type)}' + sqlalchemy_type = StringUtil.get_mapping_value_by_key_ignore_case( + GenConstant.DB_TO_SQLALCHEMY_TYPE_MAPPING, data_type ) + if sqlalchemy_type: + import_list.add(f'from sqlalchemy import {sqlalchemy_type}') if gen_table.sub: import_list.add('from sqlalchemy import ForeignKey') sub_columns = gen_table.sub_table.columns or [] for sub_column in sub_columns: data_type = cls.get_db_type(sub_column.column_type) - import_list.add( - f'from sqlalchemy import {StringUtil.get_mapping_value_by_key_ignore_case(GenConstant.DB_TO_SQLALCHEMY_TYPE_MAPPING, data_type)}' + sqlalchemy_type = StringUtil.get_mapping_value_by_key_ignore_case( + GenConstant.DB_TO_SQLALCHEMY_TYPE_MAPPING, data_type ) + if sqlalchemy_type: + import_list.add(f'from sqlalchemy import {sqlalchemy_type}') return cls.merge_same_imports(list(import_list), 'from sqlalchemy import') @classmethod @@ -303,16 +307,21 @@ class TemplateUtils: :return: 合并后的导入语句列表 """ merged_imports = [] - _imports = [] + _imports = set() for import_stmt in imports: if import_stmt.startswith(import_start): - imported_items = import_stmt.split('import')[1].strip() - _imports.extend(imported_items.split(', ')) + imported_items_str = import_stmt.split('import')[1].strip() + if imported_items_str: + items = [item.strip() for item in imported_items_str.split(',')] + for item in items: + if item: + _imports.add(item) else: merged_imports.append(import_stmt) if _imports: - merged_datetime_import = f'{import_start} {", ".join(_imports)}' + sorted_imports = sorted(list(_imports)) + merged_datetime_import = f'{import_start} {", ".join(sorted_imports)}' merged_imports.append(merged_datetime_import) return merged_imports @@ -448,6 +457,8 @@ class TemplateUtils: :param column_type: 列类型 :return: SQLAlchemy类型 """ + if 'unsigned' in column_type: + column_type = column_type.replace(' unsigned', '') if '(' in column_type: column_type_list = column_type.split('(') if column_type_list[0] in GenConstant.COLUMNTYPE_STR: -- Gitee