feat(generate): 优化代码生成逻辑

- 新增公共字段配置,统一处理常见字段的生成规则
- 修复模板中的一些错误,如变量名、函数名等
- 优化代码结构,提高可读性和可维护性
This commit is contained in:
2025-07-01 23:40:43 +08:00
parent bd13f1cfdc
commit 1c316594f5
10 changed files with 568 additions and 175 deletions

View File

@@ -85,9 +85,73 @@ async def add_generate_info(request: Request, params: AddGenerateInfoParams):
# 转换为小写键名
formatted_result = [{k.lower(): v for k, v in row.items()} for row in result]
formatted_result.sort(key=lambda x: x['ordinal_position'])
common_column = ["id", "del_flag", "create_by", "update_by", "create_time", "update_time"]
common_set = {
"id": {
"is_insert": False,
"is_edit": False,
"is_list": True,
"is_query": False,
"is_required": False,
"is_hide": True,
},
"del_flag": {
"is_insert": False,
"is_edit": False,
"is_list": False,
"is_query": False,
"is_required": False,
"is_hide": True,
},
"create_by": {
"is_insert": False,
"is_edit": False,
"is_list": False,
"is_query": False,
"is_required": False,
"is_hide": True,
},
"update_by": {
"is_insert": False,
"is_edit": False,
"is_list": False,
"is_query": False,
"is_required": False,
"is_hide": True,
},
"create_time": {
"is_insert": False,
"is_edit": False,
"is_list": True,
"is_query": False,
"is_required": False,
"is_hide": False,
},
"update_time": {
"is_insert": False,
"is_edit": False,
"is_list": True,
"is_query": False,
"is_required": False,
"is_hide": False,
}
}
for column in formatted_result:
if await GenerateColumn.get_or_none(table_id=gen.id, column_name=column["column_name"], del_flag=1):
continue
is_insert = True
is_edit = True
is_list = True
is_query = True
is_required = True
is_hide = False
if column["column_name"] in common_column:
is_insert = common_set[column["column_name"]]["is_insert"]
is_edit = common_set[column["column_name"]]["is_edit"]
is_list = common_set[column["column_name"]]["is_list"]
is_query = common_set[column["column_name"]]["is_query"]
is_required = common_set[column["column_name"]]["is_required"]
is_hide = common_set[column["column_name"]]["is_hide"]
await GenerateColumn.create(
table=gen,
index=column["ordinal_position"],
@@ -97,14 +161,14 @@ async def add_generate_info(request: Request, params: AddGenerateInfoParams):
python_type=MYSQL_TO_PYTHON_TYPE.get(column["column_type"]) if MYSQL_TO_PYTHON_TYPE.get(
column["column_type"]) else MYSQL_TO_PYTHON_TYPE.get(column["data_type"], "str"),
python_name=column["column_name"].lower(),
is_insert=True,
is_edit=True,
is_list=True,
is_query=True,
is_required=False,
is_insert=is_insert,
is_edit=is_edit,
is_list=is_list,
is_query=is_query,
is_required=is_required,
query_way="__icontains",
show_type="input",
is_hide=False,
is_hide=is_hide,
)
return Response.success(msg="添加成功!")
return Response.error(msg="添加失败!")