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

更新代码生成器

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