Files
2026-04-28 10:29:02 +08:00

82 lines
2.3 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}