Browse Source

更新代码生成器

QM303176530 4 years ago
parent
commit
3a6e67fc72

+ 14 - 14
server/resource/template/fe/api.js.tpl

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

+ 36 - 37
server/resource/template/te/api.go.tpl

@@ -1,10 +1,13 @@
-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)
 	}
 }

+ 1 - 41
server/resource/template/te/model.go.tpl

@@ -1,51 +1,11 @@
 // 自动生成模板{{.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
-    	}
 }

+ 4 - 4
server/resource/template/te/router.go.tpl

@@ -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}}列表
 	}
 }

+ 1 - 1
server/service/exa_customer.go

@@ -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) {

+ 24 - 9
server/service/sys_auto_code.go

@@ -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, ".", ".")