feat: 代码生成

This commit is contained in:
Blizzard
2026-04-28 10:29:02 +08:00
parent 7e282b36d7
commit b343856b58
38 changed files with 2199 additions and 51 deletions
+81
View File
@@ -0,0 +1,81 @@
package codegen
import (
"sundynix-go/model/codegen"
"sundynix-go/model/commom/response"
"sundynix-go/service"
"github.com/gin-gonic/gin"
)
type CodegenApi struct{}
var codegenService = service.ServiceGroupApp.CodegenServiceGroup.CodegenService
// TestConnection
// @Tags 代码生成
// @Summary 测试数据库连接
// @Security BasicAuth
// @accept json
// @Produce json
// @Param data body codegen.TestConnectionReq true "数据库连接配置"
// @Success 200 {object} response.Response "连接成功"
// @Router /api/codegen/testConnection [post]
func (a *CodegenApi) TestConnection(c *gin.Context) {
var req codegen.TestConnectionReq
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMsg("参数错误:"+err.Error(), c)
return
}
if err := codegenService.TestConnection(req.DbConfig); err != nil {
response.FailWithMsg("连接失败:"+err.Error(), c)
return
}
response.OkWithMsg("连接成功", c)
}
// Preview
// @Tags 代码生成
// @Summary 预览生成代码(不写文件)
// @Security BasicAuth
// @accept json
// @Produce json
// @Param data body codegen.PreviewReq true "代码生成配置"
// @Success 200 {object} response.Response{data=[]codegen.PreviewFile} "预览成功"
// @Router /api/codegen/preview [post]
func (a *CodegenApi) Preview(c *gin.Context) {
var req codegen.PreviewReq
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMsg("参数错误:"+err.Error(), c)
return
}
files, err := codegenService.Preview(req.GenConfig)
if err != nil {
response.FailWithMsg("预览失败:"+err.Error(), c)
return
}
response.OkWithData(files, c)
}
// Generate
// @Tags 代码生成
// @Summary 生成并写入代码文件
// @Security BasicAuth
// @accept json
// @Produce json
// @Param data body codegen.GenConfig true "代码生成配置(含 outputDir"
// @Success 200 {object} response.Response{data=codegen.GenResult} "生成成功"
// @Router /api/codegen/generate [post]
func (a *CodegenApi) Generate(c *gin.Context) {
var req codegen.GenConfig
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMsg("参数错误:"+err.Error(), c)
return
}
result, err := codegenService.Generate(req)
if err != nil {
response.FailWithMsg("生成失败:"+err.Error(), c)
return
}
response.OkWithData(result, c)
}
+5
View File
@@ -0,0 +1,5 @@
package codegen
type ApiGroup struct {
CodegenApi
}