提交 3a6e67fc 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

更新代码生成器

上级 b7ededea
...@@ -5,7 +5,7 @@ import service from '@/utils/request' ...@@ -5,7 +5,7 @@ import service from '@/utils/request'
// @Security ApiKeyAuth // @Security ApiKeyAuth
// @accept application/json // @accept application/json
// @Produce application/json // @Produce application/json
// @Param data body {{.PackageName}}.{{.StructName}} true "创建{{.StructName}}" // @Param data body model.{{.StructName}} true "创建{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /{{.Abbreviation}}/create{{.StructName}} [post] // @Router /{{.Abbreviation}}/create{{.StructName}} [post]
export const create{{.StructName}} = (data) => { export const create{{.StructName}} = (data) => {
...@@ -22,13 +22,13 @@ export const create{{.StructName}} = (data) => { ...@@ -22,13 +22,13 @@ export const create{{.StructName}} = (data) => {
// @Security ApiKeyAuth // @Security ApiKeyAuth
// @accept application/json // @accept application/json
// @Produce application/json // @Produce application/json
// @Param data body {{.PackageName}}.{{.StructName}} true "删除{{.StructName}}" // @Param data body model.{{.StructName}} true "删除{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /{{.Abbreviation}}/delete{{.StructName}} [post] // @Router /{{.Abbreviation}}/delete{{.StructName}} [delete]
export const delete{{.StructName}} = (data) => { export const delete{{.StructName}} = (data) => {
return service({ return service({
url: "/{{.Abbreviation}}/delete{{.StructName}}", url: "/{{.Abbreviation}}/delete{{.StructName}}",
method: 'post', method: 'delete',
data data
}) })
} }
...@@ -38,13 +38,13 @@ export const create{{.StructName}} = (data) => { ...@@ -38,13 +38,13 @@ export const create{{.StructName}} = (data) => {
// @Security ApiKeyAuth // @Security ApiKeyAuth
// @accept application/json // @accept application/json
// @Produce application/json // @Produce application/json
// @Param data body {{.PackageName}}.{{.StructName}} true "更新{{.StructName}}" // @Param data body model.{{.StructName}} true "更新{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
// @Router /{{.Abbreviation}}/update{{.StructName}} [post] // @Router /{{.Abbreviation}}/update{{.StructName}} [put]
export const update{{.StructName}} = (data) => { export const update{{.StructName}} = (data) => {
return service({ return service({
url: "/{{.Abbreviation}}/update{{.StructName}}", url: "/{{.Abbreviation}}/update{{.StructName}}",
method: 'post', method: 'put',
data data
}) })
} }
...@@ -55,14 +55,14 @@ export const create{{.StructName}} = (data) => { ...@@ -55,14 +55,14 @@ export const create{{.StructName}} = (data) => {
// @Security ApiKeyAuth // @Security ApiKeyAuth
// @accept application/json // @accept application/json
// @Produce application/json // @Produce application/json
// @Param data body {{.PackageName}}.{{.StructName}} true "用id查询{{.StructName}}" // @Param data body model.{{.StructName}} true "用id查询{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
// @Router /{{.Abbreviation}}/find{{.StructName}} [post] // @Router /{{.Abbreviation}}/find{{.StructName}} [get]
export const find{{.StructName}} = (data) => { export const find{{.StructName}} = (data) => {
return service({ return service({
url: "/{{.Abbreviation}}/find{{.StructName}}", url: "/{{.Abbreviation}}/find{{.StructName}}",
method: 'post', method: 'get',
data params
}) })
} }
...@@ -74,11 +74,11 @@ export const create{{.StructName}} = (data) => { ...@@ -74,11 +74,11 @@ export const create{{.StructName}} = (data) => {
// @Produce application/json // @Produce application/json
// @Param data body request.PageInfo true "分页获取{{.StructName}}列表" // @Param data body request.PageInfo true "分页获取{{.StructName}}列表"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /{{.Abbreviation}}/get{{.StructName}}List [post] // @Router /{{.Abbreviation}}/get{{.StructName}}List [get]
export const get{{.StructName}}List = (data) => { export const get{{.StructName}}List = (data) => {
return service({ return service({
url: "/{{.Abbreviation}}/get{{.StructName}}List", url: "/{{.Abbreviation}}/get{{.StructName}}List",
method: 'post', method: 'get',
data params
}) })
} }
\ No newline at end of file
package api package v1
import ( import (
"fmt" "fmt"
"gin-vue-admin/global/response" "gin-vue-admin/global/response"
"gin-vue-admin/model" "gin-vue-admin/model"
"github.com/gin-gonic/gin" "gin-vue-admin/model/request"
resp "gin-vue-admin/model/response"
"gin-vue-admin/service"
"github.com/gin-gonic/gin"
) )
...@@ -17,13 +20,13 @@ import ( ...@@ -17,13 +20,13 @@ import (
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /{{.Abbreviation}}/create{{.StructName}} [post] // @Router /{{.Abbreviation}}/create{{.StructName}} [post]
func Create{{.StructName}}(c *gin.Context) { func Create{{.StructName}}(c *gin.Context) {
var {{.Abbreviation}} {{.PackageName}}.{{.StructName}} var {{.Abbreviation}} model.{{.StructName}}
_ = c.ShouldBindJSON(&{{.Abbreviation}}) _ = c.ShouldBindJSON(&{{.Abbreviation}})
err := {{.Abbreviation}}.Create{{.StructName}}() err := service.Create{{.StructName}}({{.Abbreviation}})
if err != nil { if err != nil {
response.Result(response.ERROR, gin.H{}, fmt.Sprintf("创建失败,%v", err), c) response.FailWithMessage(fmt.Sprintf("创建失败,%v", err), c)
} else { } else {
response.Result(response.SUCCESS, gin.H{}, "创建成功", c) response.OkWithMessage("创建成功", c)
} }
} }
...@@ -35,15 +38,15 @@ func Create{{.StructName}}(c *gin.Context) { ...@@ -35,15 +38,15 @@ func Create{{.StructName}}(c *gin.Context) {
// @Produce application/json // @Produce application/json
// @Param data body model.{{.StructName}} true "删除{{.StructName}}" // @Param data body model.{{.StructName}} true "删除{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /{{.Abbreviation}}/delete{{.StructName}} [post] // @Router /{{.Abbreviation}}/delete{{.StructName}} [delete]
func Delete{{.StructName}}(c *gin.Context) { func Delete{{.StructName}}(c *gin.Context) {
var {{.Abbreviation}} {{.PackageName}}.{{.StructName}} var {{.Abbreviation}} model.{{.StructName}}
_ = c.ShouldBindJSON(&{{.Abbreviation}}) _ = c.ShouldBindJSON(&{{.Abbreviation}})
err := {{.Abbreviation}}.Delete{{.StructName}}() err := service.Delete{{.StructName}}({{.Abbreviation}})
if err != nil { if err != nil {
response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败,%v", err), c) response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c)
} else { } else {
response.Result(response.SUCCESS, gin.H{}, "删除成功", c) response.OkWithMessage("删除成功", c)
} }
} }
...@@ -55,17 +58,15 @@ func Delete{{.StructName}}(c *gin.Context) { ...@@ -55,17 +58,15 @@ func Delete{{.StructName}}(c *gin.Context) {
// @Produce application/json // @Produce application/json
// @Param data body model.{{.StructName}} true "更新{{.StructName}}" // @Param data body model.{{.StructName}} true "更新{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
// @Router /{{.Abbreviation}}/update{{.StructName}} [post] // @Router /{{.Abbreviation}}/update{{.StructName}} [put]
func Update{{.StructName}}(c *gin.Context) { func Update{{.StructName}}(c *gin.Context) {
var {{.Abbreviation}} {{.PackageName}}.{{.StructName}} var {{.Abbreviation}} model.{{.StructName}}
_ = c.ShouldBindJSON(&{{.Abbreviation}}) _ = c.ShouldBindJSON(&{{.Abbreviation}})
err,re{{.Abbreviation}} := {{.Abbreviation}}.Update{{.StructName}}() err := service.Update{{.StructName}}(&{{.Abbreviation}})
if err != nil { if err != nil {
response.Result(response.ERROR, gin.H{}, fmt.Sprintf("更新失败,%v", err), c) response.FailWithMessage(fmt.Sprintf("更新失败,%v", err), c)
} else { } else {
response.Result(response.SUCCESS, gin.H{ response.OkWithMessage("删除成功", c)
"re{{.Abbreviation}}":re{{.Abbreviation}},
}, "更新成功", c)
} }
} }
...@@ -77,17 +78,15 @@ func Update{{.StructName}}(c *gin.Context) { ...@@ -77,17 +78,15 @@ func Update{{.StructName}}(c *gin.Context) {
// @Produce application/json // @Produce application/json
// @Param data body model.{{.StructName}} true "用id查询{{.StructName}}" // @Param data body model.{{.StructName}} true "用id查询{{.StructName}}"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
// @Router /{{.Abbreviation}}/find{{.StructName}} [post] // @Router /{{.Abbreviation}}/find{{.StructName}} [get]
func Find{{.StructName}}(c *gin.Context) { func Find{{.StructName}}(c *gin.Context) {
var {{.Abbreviation}} {{.PackageName}}.{{.StructName}} var {{.Abbreviation}} model.{{.StructName}}
_ = c.ShouldBindJSON(&{{.Abbreviation}}) _ = c.ShouldBindQuery(&{{.Abbreviation}})
err,re{{.Abbreviation}} := {{.Abbreviation}}.FindById() err,re{{.Abbreviation}} := service.Get{{.StructName}}({{.Abbreviation}}.ID)
if err != nil { if err != nil {
response.Result(response.ERROR, gin.H{}, fmt.Sprintf("查询失败,%v", err), c) response.FailWithMessage(fmt.Sprintf("查询失败,%v", err), c)
} else { } else {
response.Result(response.SUCCESS, gin.H{ response.OkWithData( gin.H{"re{{.Abbreviation}}":re{{.Abbreviation}},}, c)
"re{{.Abbreviation}}":re{{.Abbreviation}},
}, "查询成功", c)
} }
} }
...@@ -99,19 +98,19 @@ func Find{{.StructName}}(c *gin.Context) { ...@@ -99,19 +98,19 @@ func Find{{.StructName}}(c *gin.Context) {
// @Produce application/json // @Produce application/json
// @Param data body request.PageInfo true "分页获取{{.StructName}}列表" // @Param data body request.PageInfo true "分页获取{{.StructName}}列表"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /{{.Abbreviation}}/get{{.StructName}}List [post] // @Router /{{.Abbreviation}}/get{{.StructName}}List [get]
func Get{{.StructName}}List(c *gin.Context) { func Get{{.StructName}}List(c *gin.Context) {
var pageInfo request.PageInfo var pageInfo request.PageInfo
_ = c.ShouldBindJSON(&pageInfo) _ = c.ShouldBindQuery(&pageInfo)
err, list, total := new({{.PackageName}}.{{.StructName}}).GetInfoList(pageInfo) err, list, total := service.Get{{.StructName}}InfoList(pageInfo)
if err != nil { if err != nil {
response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c)
} else { } else {
response.Result(response.SUCCESS, gin.H{ response.OkWithData(resp.PageResult{
"{{.PackageName}}List": list, List: list,
"total": total, Total: total,
"page": pageInfo.Page, Page: pageInfo.Page,
"pageSize": pageInfo.PageSize, PageSize: pageInfo.PageSize,
}, "获取数据成功", c) }, c)
} }
} }
\ No newline at end of file
// 自动生成模板{{.StructName}} // 自动生成模板{{.StructName}}
package {{.PackageName}} package model
import ( import (
"gin-vue-admin/global"
"github.com/jinzhu/gorm" "github.com/jinzhu/gorm"
"github.com/pkg/errors"
) )
type {{.StructName}} struct { type {{.StructName}} struct {
gorm.Model {{range .Fields}} gorm.Model {{range .Fields}}
{{.FieldName}} {{.FieldType}} `json:"{{.FieldJson}}"{{if .ColumnName}} gorm:"column:{{.ColumnName}}"{{end}}`{{ end }} {{.FieldName}} {{.FieldType}} `json:"{{.FieldJson}}"{{if .ColumnName}} gorm:"column:{{.ColumnName}}"{{end}}`{{ end }}
}
// 创建{{.StructName}}
func ({{.Abbreviation}} *{{.StructName}})Create{{.StructName}}()(err error){
err = global.GVA_DB.Create({{.Abbreviation}}).Error
return err
}
// 删除{{.StructName}}
func ({{.Abbreviation}} *{{.StructName}})Delete{{.StructName}}()(err error){
err = global.GVA_DB.Delete({{.Abbreviation}}).Error
return err
}
// 更新{{.StructName}}
func ({{.Abbreviation}} *{{.StructName}})Update{{.StructName}}()(err error, re{{.Abbreviation}} {{.StructName}}){
err = global.GVA_DB.Save({{.Abbreviation}}).Error
return err, *{{.Abbreviation}}
}
// 根据ID查看单条{{.StructName}}
func ({{.Abbreviation}} *{{.StructName}})FindById()(err error,re{{.Abbreviation}} {{.StructName}}){
err = global.GVA_DB.Where("id = ?",{{.Abbreviation}}.ID).First(&re{{.Abbreviation}}).Error
return err,re{{.Abbreviation}}
}
// 分页获取{{.StructName}}
func ({{.Abbreviation}} *{{.StructName}})GetInfoList(info PageInfo)(err error, list interface{}, total int){
limit := info.PageSize
offset := info.PageSize * (info.Page - 1)
db:=global.GVA_DB
if err != nil {
return
} else {
var re{{.StructName}}List []{{.StructName}}
err = db.Limit(limit).Offset(offset).Find(&re{{.StructName}}List).Error
return err, re{{.StructName}}List, total
}
} }
\ No newline at end of file
...@@ -10,9 +10,9 @@ func Init{{.StructName}}Router(Router *gin.RouterGroup) { ...@@ -10,9 +10,9 @@ func Init{{.StructName}}Router(Router *gin.RouterGroup) {
{{.StructName}}Router := Router.Group("{{.Abbreviation}}").Use(middleware.JWTAuth()).Use(middleware.CasbinHandler()) {{.StructName}}Router := Router.Group("{{.Abbreviation}}").Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
{ {
{{.StructName}}Router.POST("create{{.StructName}}", v1.Create{{.StructName}}) // 新建{{.StructName}} {{.StructName}}Router.POST("create{{.StructName}}", v1.Create{{.StructName}}) // 新建{{.StructName}}
{{.StructName}}Router.POST("delete{{.StructName}}", v1.Delete{{.StructName}}) //删除{{.StructName}} {{.StructName}}Router.DELETE("delete{{.StructName}}", v1.Delete{{.StructName}}) //删除{{.StructName}}
{{.StructName}}Router.POST("update{{.StructName}}", v1.Update{{.StructName}}) //更新{{.StructName}} {{.StructName}}Router.PUT("update{{.StructName}}", v1.Update{{.StructName}}) //更新{{.StructName}}
{{.StructName}}Router.POST("find{{.StructName}}", v1.Find{{.StructName}}) // 根据ID获取{{.StructName}} {{.StructName}}Router.GET("find{{.StructName}}", v1.Find{{.StructName}}) // 根据ID获取{{.StructName}}
{{.StructName}}Router.POST("get{{.StructName}}List", v1.Get{{.StructName}}List) //获取{{.StructName}}列表 {{.StructName}}Router.GET("get{{.StructName}}List", v1.Get{{.StructName}}List) //获取{{.StructName}}列表
} }
} }
...@@ -20,7 +20,7 @@ func CreateExaCustomer(e model.ExaCustomer) (err error) { ...@@ -20,7 +20,7 @@ func CreateExaCustomer(e model.ExaCustomer) (err error) {
// @title DeleteFileChunk // @title DeleteFileChunk
// @description delete a customer, 删除用户 // @description delete a customer, 删除用户
// @auth (2020/04/05 20:22) // @auth (2020/04/05 20:22)
// @param e *model.ExaCustomer // @param e model.ExaCustomer
// @return error // @return error
func DeleteExaCustomer(e model.ExaCustomer) (err error) { func DeleteExaCustomer(e model.ExaCustomer) (err error) {
......
...@@ -27,6 +27,10 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) { ...@@ -27,6 +27,10 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) {
if err != nil { if err != nil {
return err return err
} }
serviceTmpl, err := template.ParseFiles(basePath + "/te/service.go.tpl")
if err != nil {
return err
}
feapiTmpl, err := template.ParseFiles(basePath + "/fe/api.js.tpl") feapiTmpl, err := template.ParseFiles(basePath + "/fe/api.js.tpl")
if err != nil { if err != nil {
return err return err
...@@ -43,27 +47,32 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) { ...@@ -43,27 +47,32 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) {
_modeldir := _te + autoCode.PackageName + "/model" _modeldir := _te + autoCode.PackageName + "/model"
_apidir := _te + autoCode.PackageName + "/api" _apidir := _te + autoCode.PackageName + "/api"
_routerdir := _te + autoCode.PackageName + "/router" _routerdir := _te + autoCode.PackageName + "/router"
_servicedir := _te + autoCode.PackageName + "/service"
//自动化前台代码目录 //自动化前台代码目录
_fe := "./autoCode/fe/" _fe := "./autoCode/fe/"
_fe_dir := _fe + autoCode.PackageName _fe_dir := _fe + autoCode.PackageName
_fe_apidir := _fe + autoCode.PackageName + "/api" _fe_apidir := _fe + autoCode.PackageName + "/api"
err = utils.CreateDir(_autoCode, _te, _dir, _modeldir, _apidir, _routerdir, _fe, _fe_dir, _fe_apidir) err = utils.CreateDir(_autoCode, _te, _dir, _modeldir, _apidir, _routerdir, _servicedir, _fe, _fe_dir, _fe_apidir)
if err != nil { if err != nil {
return err return err
} }
model, err := os.OpenFile(_te+autoCode.PackageName+"/model/model.go", os.O_CREATE|os.O_WRONLY, 0755) model, err := os.OpenFile(_te+autoCode.PackageName+"/model/"+autoCode.PackageName+".go", os.O_CREATE|os.O_WRONLY, 0755)
if err != nil { if err != nil {
return err return err
} }
api, err := os.OpenFile(_te+autoCode.PackageName+"/api/api.go", os.O_CREATE|os.O_WRONLY, 0755) api, err := os.OpenFile(_te+autoCode.PackageName+"/api/"+autoCode.PackageName+".go", os.O_CREATE|os.O_WRONLY, 0755)
if err != nil { if err != nil {
return err return err
} }
router, err := os.OpenFile(_te+autoCode.PackageName+"/router/router.go", os.O_CREATE|os.O_WRONLY, 0755) router, err := os.OpenFile(_te+autoCode.PackageName+"/router/"+autoCode.PackageName+".go", os.O_CREATE|os.O_WRONLY, 0755)
if err != nil { if err != nil {
return err return err
} }
feapi, err := os.OpenFile(_fe+autoCode.PackageName+"/api/api.js", os.O_CREATE|os.O_WRONLY, 0755) service, err := os.OpenFile(_te+autoCode.PackageName+"/service/"+autoCode.PackageName+".go", os.O_CREATE|os.O_WRONLY, 0755)
if err != nil {
return err
}
feapi, err := os.OpenFile(_fe+autoCode.PackageName+"/api/"+autoCode.PackageName+".js", os.O_CREATE|os.O_WRONLY, 0755)
if err != nil { if err != nil {
return err return err
} }
...@@ -85,6 +94,10 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) { ...@@ -85,6 +94,10 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) {
if err != nil { if err != nil {
return err return err
} }
err = serviceTmpl.Execute(service, autoCode)
if err != nil {
return err
}
err = feapiTmpl.Execute(feapi, autoCode) err = feapiTmpl.Execute(feapi, autoCode)
if err != nil { if err != nil {
return err return err
...@@ -97,13 +110,15 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) { ...@@ -97,13 +110,15 @@ func CreateTemp(autoCode model.AutoCodeStruct) (err error) {
_ = model.Close() _ = model.Close()
_ = api.Close() _ = api.Close()
_ = router.Close() _ = router.Close()
_ = service.Close()
_ = feapi.Close() _ = feapi.Close()
_ = readme.Close() _ = readme.Close()
fileList := []string{ fileList := []string{
_te + autoCode.PackageName + "/model/model.go", _te + autoCode.PackageName + "/model/" + autoCode.PackageName + ".go",
_te + autoCode.PackageName + "/api/api.go", _te + autoCode.PackageName + "/api/" + autoCode.PackageName + ".go",
_te + autoCode.PackageName + "/router/router.go", _te + autoCode.PackageName + "/router/" + autoCode.PackageName + ".go",
_fe + autoCode.PackageName + "/api/api.js", _te + autoCode.PackageName + "/service/" + autoCode.PackageName + ".go",
_fe + autoCode.PackageName + "/api/" + autoCode.PackageName + ".js",
_autoCode + "readme.txt", _autoCode + "readme.txt",
} }
err = utils.ZipFiles("./ginvueadmin.zip", fileList, ".", ".") err = utils.ZipFiles("./ginvueadmin.zip", fileList, ".", ".")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册