Browse Source

增加是否自动创建api入库的开关 可自动产生api入库

QM303176530 4 years ago
parent
commit
b7c816b9cb
2 changed files with 49 additions and 4 deletions
  1. 44 0
      server/api/v1/sys_auto_code.go
  2. 5 4
      server/model/sys_auto_code.go

+ 44 - 0
server/api/v1/sys_auto_code.go

@@ -6,6 +6,7 @@ import (
 	"gin-vue-admin/model"
 	"gin-vue-admin/service"
 	"github.com/gin-gonic/gin"
+	"net/url"
 	"os"
 )
 
@@ -21,6 +22,49 @@ func CreateTemp(c *gin.Context) {
 	var a model.AutoCodeStruct
 	_ = c.ShouldBindJSON(&a)
 	err := service.CreateTemp(a)
+	if a.AutoCreateApiToSql {
+		apiList := [5]model.SysApi{
+			{
+				Path:        "/" + a.Abbreviation + "/" + "create" + a.StructName,
+				Description: "新增" + a.StructName,
+				ApiGroup:    a.Abbreviation,
+				Method:      "POST",
+			},
+			{
+				Path:        "/" + a.Abbreviation + "/" + "delete" + a.StructName,
+				Description: "删除" + a.StructName,
+				ApiGroup:    a.Abbreviation,
+				Method:      "DELETE",
+			},
+			{
+				Path:        "/" + a.Abbreviation + "/" + "update" + a.StructName,
+				Description: "更新" + a.StructName,
+				ApiGroup:    a.Abbreviation,
+				Method:      "POST",
+			},
+			{
+				Path:        "/" + a.Abbreviation + "/" + "find" + a.StructName,
+				Description: "根据ID获取" + a.StructName,
+				ApiGroup:    a.Abbreviation,
+				Method:      "GET",
+			},
+			{
+				Path:        "/" + a.Abbreviation + "/" + "get" + a.StructName + "List",
+				Description: "获取" + a.StructName + "列表",
+				ApiGroup:    a.StructName,
+				Method:      "GET",
+			},
+		}
+		for _, v := range apiList {
+			errC := service.CreateApi(v)
+			if errC != nil {
+				c.Writer.Header().Add("success", "false")
+				c.Writer.Header().Add("msg", url.QueryEscape(fmt.Sprintf("自动化创建失败,%v,请自行清空垃圾数据", errC)))
+				return
+			}
+		}
+	}
+
 	if err != nil {
 		response.FailWithMessage(fmt.Sprintf("创建失败,%v", err), c)
 		os.Remove("./ginvueadmin.zip")

+ 5 - 4
server/model/sys_auto_code.go

@@ -2,10 +2,11 @@ package model
 
 // 初始版本自动化代码工具
 type AutoCodeStruct struct {
-	StructName   string  `json:"structName"`
-	PackageName  string  `json:"packageName"`
-	Abbreviation string  `json:"abbreviation"`
-	Fields       []Field `json:"fields"`
+	StructName         string  `json:"structName"`
+	PackageName        string  `json:"packageName"`
+	Abbreviation       string  `json:"abbreviation"`
+	AutoCreateApiToSql bool    `json:"autoCreateApiToSql"`
+	Fields             []Field `json:"fields"`
 }
 
 type Field struct {