82 lines
2.3 KiB
Go
82 lines
2.3 KiB
Go
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)
|
||
}
|