feat(代码生成器): 重构代码生成模板并增强安全性

重构代码生成模板结构,将模板文件移动到标准目录
添加文件覆盖控制和安全路径检查,防止生成到项目外
优化生成逻辑,支持跳过已存在文件并返回统计信息
完善模板内容,增加分页查询和更多功能实现细节
This commit is contained in:
zhangtao
2025-10-29 01:41:26 +08:00
parent a1f9475f3a
commit 0f1916e544
13 changed files with 419 additions and 157 deletions
-45
View File
@@ -1,45 +0,0 @@
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import Query
from app.core.validator import DateTimeStr
class {{ table_name|snake_to_pascal_case }}QueryParam:
"""{{ function_name }}查询参数"""
def __init__(
self,
{% for column in columns %}
{% if column.query_type == 'LIKE' %}
{{ column.column_name }}: Optional[{{ column.python_type }}] = Query(None, description="{{ column.column_comment }}"),
{% endif %}
{% endfor %}
{% for column in columns %}
{% if column.column_name == 'status' %}
status: Optional[bool] = Query(None, description="是否启用"),
{% endif %}
{% endfor %}
creator: Optional[int] = Query(None, description="创建人"),
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2025-01-01 00:00:00"),
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2025-12-31 23:59:59"),
) -> None:
# 模糊查询字段
{% for column in columns %}
{% if column.query_type == 'LIKE' %}
self.{{ column.column_name }} = ("like", {{ column.column_name }})
{% endif %}
{% endfor %}
# 精确查询字段
self.creator_id = creator
{% for column in columns %}
{% if column.column_name == 'status' %}
self.status = status
{% endif %}
{% endfor %}
# 时间范围查询
if start_time and end_time:
self.created_at = ("between", (start_time, end_time))