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) }