feat(module_gencode): 新增代码生成模块并重构示例模块

重构示例模块为代码生成模块,包括新增模型、服务、控制器等核心组件
更新数据库配置从MySQL切换为PostgreSQL并调整相关参数
优化代码生成模板逻辑,移除无用字段和功能
添加PostgreSQL菜单SQL生成测试用例
更新前端API路径和菜单配置
移除旧的示例模块相关代码
This commit is contained in:
zhangtao
2025-12-03 21:22:23 +08:00
parent 3cc7981008
commit 0305b4b64b
22 changed files with 357 additions and 308 deletions
+65
View File
@@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
"""
测试PostgreSQL菜单SQL生成
"""
import sys
import os
# 添加项目根目录到路径
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from app.api.v1.module_generator.gencode.tools.jinja2_template_util import Jinja2TemplateUtil
from app.api.v1.module_generator.gencode.schema import GenTableOutSchema
def test_postgres_menu_sql_generation():
"""
测试PostgreSQL菜单SQL生成
"""
# 模拟GenTableOutSchema对象
gen_table = GenTableOutSchema(
id=1,
table_name="test_table",
table_comment="测试表",
business_name="test_table",
function_name="测试表",
module_name="test_module",
parent_menu_id=7, # 使用当前默认的目录ID
status="0",
created_time=None,
updated_time=None,
columns=[],
pk_column=None,
sub_table=None,
sub=False
)
# 准备上下文
context = Jinja2TemplateUtil.prepare_context(gen_table)
# 手动设置数据库类型为PostgreSQL
context['db_type'] = 'postgres'
# 获取模板
template = Jinja2TemplateUtil.get_template('sql/sql.sql.j2')
# 渲染模板
postgres_sql = template.render(context)
# 打印生成的SQL
print("=== PostgreSQL菜单SQL ===")
print(postgres_sql)
print("\n" + "="*50 + "\n")
# 验证SQL语法
assert "RETURNING id INTO parent_id;" in postgres_sql, "PostgreSQL SQL中缺少RETURNING子句"
assert "INSERT INTO" in postgres_sql, "PostgreSQL SQL中缺少INSERT语句"
assert "gen_random_uuid()" in postgres_sql, "PostgreSQL SQL中缺少gen_random_uuid()函数"
assert str(gen_table.parent_menu_id) in postgres_sql, f"PostgreSQL SQL中未找到正确的parent_menu_id: {gen_table.parent_menu_id}"
print("PostgreSQL菜单SQL生成测试通过!")
print(f"父菜单ID: {gen_table.parent_menu_id}")
print(f"功能名称: {gen_table.function_name}")
print(f"模块名称: {gen_table.module_name}")
print(f"业务名称: {gen_table.business_name}")
if __name__ == "__main__":
test_postgres_menu_sql_generation()