浏览代码

删除sqlresult

yjp 1 年之前
父节点
当前提交
c970a2907d
共有 2 个文件被更改,包括 0 次插入166 次删除
  1. 0 131
      sdk/tag/sql_result.go
  2. 0 35
      test/sdk_test.go

+ 0 - 131
sdk/tag/sql_result.go

@@ -1,131 +0,0 @@
-package tag
-
-import (
-	"errors"
-	"github.com/iancoleman/strcase"
-	"reflect"
-	"strings"
-)
-
-const (
-	sqlResultTagPartSeparator         = ";"
-	sqlResultTagPartKeyValueSeparator = ":"
-)
-
-const (
-	sqlResultTagKey   = "sqlresult"
-	sqlResultColumn   = "column"
-	sqlResultIgnore   = "-"
-	sqlResultCallback = "callback"
-)
-
-type SqlResult struct {
-	ColumnMap map[string]SqlResultColumn
-}
-
-func ParseSqlResult(e any) (*SqlResult, 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("传递的不是实体结构")
-	}
-
-	entityValue := reflect.ValueOf(e)
-	if entityValue.Kind() == reflect.Ptr {
-		entityValue = entityValue.Elem()
-	}
-
-	sqlResult := new(SqlResult)
-	sqlResult.ColumnMap = make(map[string]SqlResultColumn)
-
-	fieldNum := entityType.NumField()
-	for i := 0; i < fieldNum; i++ {
-		field := entityType.Field(i)
-		fieldValue := entityValue.Field(i)
-
-		column, err := parseSqlResultColumn(field, fieldValue)
-		if err != nil {
-			return nil, err
-		}
-
-		if column == nil {
-			continue
-		}
-
-		sqlResult.ColumnMap[field.Name] = *column
-	}
-
-	return sqlResult, nil
-}
-
-type SqlResultColumn struct {
-	Name             string
-	ResultColumnName string
-	Callback         bool
-
-	// 原字段的反射结构
-	OriginFieldType  reflect.Type
-	OriginFieldValue reflect.Value
-
-	// 值类型的反射结构
-	ValueFieldType  reflect.Type
-	ValueFieldValue reflect.Value
-}
-
-func parseSqlResultColumn(field reflect.StructField, fieldValue reflect.Value) (*SqlResultColumn, error) {
-	valueFieldType := field.Type
-	valueFieldValue := fieldValue
-
-	if valueFieldType.Kind() == reflect.Ptr {
-		valueFieldType = valueFieldType.Elem()
-
-		if valueFieldValue.IsZero() {
-			valueFieldValue = reflect.Zero(valueFieldType)
-		} else {
-			valueFieldValue = fieldValue.Elem()
-		}
-	}
-
-	sqlColumn := &SqlResultColumn{
-		Name:             strcase.ToSnake(field.Name),
-		ResultColumnName: strcase.ToSnake(field.Name),
-		Callback:         false,
-		OriginFieldType:  field.Type,
-		OriginFieldValue: fieldValue,
-		ValueFieldType:   valueFieldType,
-		ValueFieldValue:  valueFieldValue,
-	}
-
-	sqlResultTag, ok := field.Tag.Lookup(sqlResultTagKey)
-	if !ok {
-		return sqlColumn, nil
-	}
-
-	if sqlResultTag == sqlResultIgnore {
-		return nil, nil
-	}
-
-	sqlResultParts := strings.Split(sqlResultTag, sqlResultTagPartSeparator)
-	if sqlResultParts != nil || len(sqlResultParts) != 0 {
-		for _, sqlResultPart := range sqlResultParts {
-			sqlPartKeyValue := strings.Split(strings.TrimSpace(sqlResultPart), sqlResultTagPartKeyValueSeparator)
-			switch sqlPartKeyValue[0] {
-			case sqlResultColumn:
-				sqlColumn.ResultColumnName = strings.TrimSpace(sqlPartKeyValue[1])
-			case sqlResultCallback:
-				sqlColumn.Callback = true
-			default:
-				continue
-			}
-		}
-	}
-
-	return sqlColumn, nil
-}

+ 0 - 35
test/sdk_test.go

@@ -462,41 +462,6 @@ func TestSqlMapping(t *testing.T) {
 	}
 }
 
-func TestSqlResult(t *testing.T) {
-	sqlResult, err := tag.ParseSqlResult(&Class{})
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	for fieldName, sqlColumn := range sqlResult.ColumnMap {
-		if fieldName != "ID" && fieldName != "Name" &&
-			fieldName != "StudentNum" && fieldName != "GraduatedTime" &&
-			fieldName != "CreatedTime" && fieldName != "LastUpdatedTime" {
-			t.Fatal("字段名不正确")
-		}
-
-		if sqlColumn.Name != "id" && sqlColumn.Name != "name" &&
-			sqlColumn.Name != "student_num" && sqlColumn.Name != "graduated_time" &&
-			sqlColumn.Name != "created_time" && sqlColumn.Name != "last_updated_time" {
-			t.Fatal("列名不正确")
-		}
-
-		if sqlColumn.Name != strcase.ToSnake(fieldName) {
-			t.Fatal("列名不正确")
-		}
-
-		if sqlColumn.Name == "student_num" {
-			if sqlColumn.ResultColumnName != "student_num_alias" {
-				t.Fatal("结果列名不正确")
-			}
-		}
-
-		if sqlColumn.Callback && sqlColumn.Name != "graduated_time" {
-			t.Fatal("回调不正确")
-		}
-	}
-}
-
 func TestSql(t *testing.T) {
 	classID := strutils.SimpleUUID()
 	className := strutils.SimpleUUID()