Browse Source

修改bug

yjp 1 year ago
parent
commit
07f6c0edde
4 changed files with 39 additions and 34 deletions
  1. 21 21
      demo/demo.go
  2. 1 0
      go.mod
  3. 2 0
      go.sum
  4. 15 13
      sdk/spec.go

+ 21 - 21
demo/demo.go

@@ -27,33 +27,33 @@ var (
 		"max_idle_connections": 10,
 	}
 
-	dataContainerMap = map[string]any{
-		"table_name": "test.classes",
-		"columns": []map[string]any{
+	dataContainerSpec = sdk.DataContainerDatabaseSpec{
+		TableName: "test.classes",
+		Columns: []sdk.DataContainerDatabaseColumnSpec{
 			{
-				"name":        "id",
-				"type":        "varchar(32)",
-				"comment":     "id",
-				"primary_key": true,
+				Name:       "id",
+				Type:       "varchar(32)",
+				Comment:    "id",
+				PrimaryKey: true,
 			},
 			{
-				"name":     "name",
-				"type":     "varchar(128)",
-				"comment":  "班名",
-				"not_null": true,
+				Name:    "name",
+				Type:    "varchar(128)",
+				Comment: "班名",
+				NotNull: true,
 			},
 			{
-				"name":    "student_num",
-				"type":    "integer",
-				"comment": "学生数量",
-				"default": 60,
+				Name:    "student_num",
+				Type:    "integer",
+				Comment: "学生数量",
+				Default: 60,
 			},
 		},
 	}
 
-	sqlSpecMap = map[string]any{
-		"transaction": true,
-		"clauses":     `- DELETE FROM test.classes WHERE id = '{{ .id }}'`,
+	sqlSpec = sdk.SqlSpec{
+		Transaction: false,
+		Clauses:     "- DELETE FROM test.classes WHERE id = '{{ .id }}'",
 	}
 )
 
@@ -78,7 +78,7 @@ func main() {
 		}
 	}()
 
-	err = sdk.GetInstance().CreateDataContainer(dataContainer, dataContainerMap)
+	err = sdk.GetInstance().CreateDataContainer(dataContainer, dataContainerSpec.ToMap())
 	if err != nil {
 		panic(err)
 	}
@@ -100,11 +100,11 @@ func main() {
 		panic(err)
 	}
 
-	if tableRow["id"] != classID || tableRow["name"] != className || tableRow["student_num"] != int32(studentNum) {
+	if tableRow["id"] != classID || tableRow["name"] != className || tableRow["student_num"] != studentNum {
 		panic("数据查询错误")
 	}
 
-	err = sdk.GetInstance().CreateSQL(sql, sqlSpecMap)
+	err = sdk.GetInstance().CreateSQL(sql, sqlSpec.ToMap())
 	if err != nil {
 		panic(err)
 	}

+ 1 - 0
go.mod

@@ -6,6 +6,7 @@ require (
 	git.sxidc.com/go-tools/api_binding v1.3.23
 	git.sxidc.com/go-tools/utils v1.5.1
 	git.sxidc.com/service-supports/fslog v0.5.9
+	github.com/fatih/structs v1.1.0
 	github.com/mitchellh/mapstructure v1.5.0
 	gorm.io/driver/postgres v1.5.7
 	gorm.io/gorm v1.25.9

+ 2 - 0
go.sum

@@ -23,6 +23,8 @@ github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLI
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
+github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
 github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
 github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
 github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=

+ 15 - 13
sdk/spec.go

@@ -3,19 +3,21 @@ package sdk
 import "github.com/fatih/structs"
 
 type DataContainerDatabaseSpec struct {
-	TableName string `structs:"table_name"`
-	Columns   []struct {
-		Name        string `structs:"name"`
-		Type        string `structs:"type"`
-		Comment     string `structs:"comment"`
-		PrimaryKey  bool   `structs:"primary_key"`
-		Size        int    `structs:"size"`
-		Unique      bool   `structs:"unique"`
-		NotNull     bool   `structs:"not_null"`
-		Index       bool   `structs:"index"`
-		UniqueIndex string `structs:"unique_index"`
-		Default     any    `structs:"default"`
-	} `structs:"columns"`
+	TableName string                            `structs:"table_name"`
+	Columns   []DataContainerDatabaseColumnSpec `structs:"columns"`
+}
+
+type DataContainerDatabaseColumnSpec struct {
+	Name        string `structs:"name"`
+	Type        string `structs:"type"`
+	Comment     string `structs:"comment"`
+	PrimaryKey  bool   `structs:"primary_key"`
+	Size        int    `structs:"size"`
+	Unique      bool   `structs:"unique"`
+	NotNull     bool   `structs:"not_null"`
+	Index       bool   `structs:"index"`
+	UniqueIndex string `structs:"unique_index"`
+	Default     any    `structs:"default"`
 }
 
 func (spec *DataContainerDatabaseSpec) ToMap() map[string]any {