mirror of
https://gitlab.52pay.top/go/easygoadmin.git
synced 2025-10-03 20:56:28 +08:00
120 lines
2.5 KiB
Go
120 lines
2.5 KiB
Go
/**
|
|
* 代码生成器-控制器
|
|
* @author
|
|
* @since 2021/11/15
|
|
* @File : generate
|
|
*/
|
|
package controller
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"gitlab.52pay.top/go/easygoadmin/app/dto"
|
|
"gitlab.52pay.top/go/easygoadmin/app/service"
|
|
"gitlab.52pay.top/go/easygoadmin/utils/common"
|
|
"gitlab.52pay.top/go/easygoadmin/utils/gconv"
|
|
"gitlab.52pay.top/go/easygoadmin/utils/response"
|
|
"net/http"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// 控制器管理对象
|
|
var Generate = new(generateCtl)
|
|
|
|
type generateCtl struct{}
|
|
|
|
func (c *generateCtl) Index(ctx *gin.Context) {
|
|
// 渲染模板
|
|
response.BuildTpl(ctx, "generate_index.html").WriteTpl()
|
|
}
|
|
|
|
func (c *generateCtl) List(ctx *gin.Context) {
|
|
// 参数验证
|
|
var req *dto.GeneratePageReq
|
|
if err := ctx.ShouldBind(&req); err != nil {
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: -1,
|
|
Msg: err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
// 调用查询列表方法
|
|
list, err := service.Generate.GetList(req)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: -1,
|
|
Msg: err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
// 返回结果
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: 0,
|
|
Msg: "查询成功",
|
|
Data: list,
|
|
Count: gconv.Int64(len(list)),
|
|
})
|
|
}
|
|
|
|
func (c *generateCtl) Generate(ctx *gin.Context) {
|
|
// 参数验证
|
|
var req dto.GenerateFileReq
|
|
if err := ctx.ShouldBind(&req); err != nil {
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: -1,
|
|
Msg: err.Error(),
|
|
})
|
|
return
|
|
}
|
|
// 调用生成方法
|
|
err := service.Generate.Generate(req, ctx)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: -1,
|
|
Msg: err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
// 返回结果
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: 0,
|
|
Msg: "模块生成成功",
|
|
})
|
|
}
|
|
|
|
func (c *generateCtl) BatchGenerate(ctx *gin.Context) {
|
|
// 生成对象
|
|
var req *dto.BatchGenerateFileReq
|
|
if err := ctx.ShouldBind(&req); err != nil {
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: -1,
|
|
Msg: err.Error(),
|
|
})
|
|
return
|
|
}
|
|
// 参数分析
|
|
tableList := strings.Split(req.Tables, ",")
|
|
count := 0
|
|
for _, item := range tableList {
|
|
itemList := strings.Split(item, "|")
|
|
// 组装参数对象
|
|
var param dto.GenerateFileReq
|
|
param.Name = itemList[0]
|
|
param.Comment = itemList[1]
|
|
// 调用生成方法
|
|
err := service.Generate.Generate(param, ctx)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
count++
|
|
}
|
|
// 返回结果
|
|
ctx.JSON(http.StatusOK, common.JsonResult{
|
|
Code: 0,
|
|
Msg: "本次共生成【" + strconv.Itoa(count) + "】个模块文件",
|
|
})
|
|
}
|