소스 검색

修改结构

yjp 1 년 전
부모
커밋
48c0162b7b
5개의 변경된 파일26개의 추가작업 그리고 55개의 파일을 삭제
  1. 0 36
      sdk/data_mapping/data_mapping.go
  2. 0 1
      sdk/data_mapping/table_row.go
  3. 2 0
      sdk/sdk.go
  4. 16 2
      sdk/sql_mapping/sql_mapping.go
  5. 8 16
      test/sdk_test.go

+ 0 - 36
sdk/data_mapping/data_mapping.go

@@ -1,36 +0,0 @@
-package data_mapping
-
-import (
-	"errors"
-	"reflect"
-)
-
-type DataMapping struct {
-	Name       string
-	SqlMapping *SqlMapping
-}
-
-func ParseDataMapping(e any) (*DataMapping, error) {
-	if e == nil {
-		return nil, errors.New("没有传递实体")
-	}
-
-	entityType := reflect.TypeOf(e)
-	if entityType.Kind() == reflect.Ptr {
-		entityType = entityType.Elem()
-	}
-
-	if entityType.Kind() != reflect.Struct {
-		return nil, errors.New("传递的不是实体结构")
-	}
-
-	sqlMapping, err := parseSqlMapping(entityType)
-	if err != nil {
-		return nil, err
-	}
-
-	return &DataMapping{
-		Name:       entityType.String(),
-		SqlMapping: sqlMapping,
-	}, nil
-}

+ 0 - 1
sdk/data_mapping/table_row.go

@@ -1 +0,0 @@
-package data_mapping

+ 2 - 0
sdk/sdk.go

@@ -13,6 +13,8 @@ type SDK struct {
 	options    *Options
 	client     *client.Client
 	grpcClient *grpc_client.Client
+
+	// TODO 加DataMapping的Map,动态增减值
 }
 
 func (s *SDK) ExecuteRawSql(sql string, executeParams map[string]any) ([]map[string]any, error) {

+ 16 - 2
sdk/data_mapping/sql_mapping.go → sdk/sql_mapping/sql_mapping.go

@@ -1,6 +1,7 @@
-package data_mapping
+package sql_mapping
 
 import (
+	"errors"
 	"github.com/iancoleman/strcase"
 	"reflect"
 	"strings"
@@ -26,7 +27,20 @@ type SqlMapping struct {
 	ColumnMap map[string]SqlColumn
 }
 
-func parseSqlMapping(entityType reflect.Type) (*SqlMapping, error) {
+func ParseSqlMapping(e any) (*SqlMapping, error) {
+	if e == nil {
+		return nil, errors.New("没有传递实体")
+	}
+
+	entityType := reflect.TypeOf(e)
+	if entityType.Kind() == reflect.Ptr {
+		entityType = entityType.Elem()
+	}
+
+	if entityType.Kind() != reflect.Struct {
+		return nil, errors.New("传递的不是实体结构")
+	}
+
 	sqlMapping := new(SqlMapping)
 	sqlMapping.ColumnMap = make(map[string]SqlColumn)
 

+ 8 - 16
test/sdk_test.go

@@ -4,8 +4,8 @@ import (
 	"fmt"
 	"git.sxidc.com/go-tools/utils/strutils"
 	"git.sxidc.com/service-supports/ds-sdk/sdk"
-	"git.sxidc.com/service-supports/ds-sdk/sdk/data_mapping"
 	"git.sxidc.com/service-supports/ds-sdk/sdk/raw_sql_tpl"
+	"git.sxidc.com/service-supports/ds-sdk/sdk/sql_mapping"
 	"math/rand"
 	"strconv"
 	"sync"
@@ -14,11 +14,11 @@ import (
 )
 
 type Class struct {
-	ID          string `sqlmapping:"key;"`
-	Name        string `sqlmapping:"update:canClear;notQuery;"`
-	StudentNum  int    `sqlmapping:"column:student_num;notUpdate;queryConditionCallback;"`
-	CreatedTime *time.Time
-	Ignored     string `sqlmapping:"-"`
+	ID          string     `sqlmapping:"key;"`
+	Name        string     `sqlmapping:"update:canClear;notQuery;"`
+	StudentNum  int        `sqlmapping:"column:student_num;notUpdate;queryConditionCallback;" tablerow:"column:student_num"`
+	CreatedTime *time.Time `tablerow:"callback"`
+	Ignored     string     `sqlmapping:"-" tablerow:"-"`
 }
 
 const (
@@ -367,20 +367,12 @@ func TestRawSqlTemplate(t *testing.T) {
 }
 
 func TestDataMapping(t *testing.T) {
-	dataMapping, err := data_mapping.ParseDataMapping(&Class{})
+	sqlMapping, err := sql_mapping.ParseSqlMapping(&Class{})
 	if err != nil {
 		t.Fatal(err)
 	}
 
-	if dataMapping.Name != "main.Class" {
-		t.Fatal("dataMapping名称不正确")
-	}
-
-	if dataMapping.SqlMapping == nil {
-		t.Fatal("没有解析除SqlMapping")
-	}
-
-	for columnName, sqlColumn := range dataMapping.SqlMapping.ColumnMap {
+	for columnName, sqlColumn := range sqlMapping.ColumnMap {
 		if columnName != "id" && columnName != "name" &&
 			columnName != "student_num" && columnName != "created_time" {
 			t.Fatal("列名不正确")