Эх сурвалжийг харах

封闭tablerow和conditions的错误判断函数

yjp 1 жил өмнө
parent
commit
edd43d8ad9

+ 13 - 25
sql/sql.go

@@ -45,12 +45,12 @@ func InsertEntity[T any](executor Executor, tableName string, e T) error {
 
 	now := time.Now()
 
-	for fieldName, sqlMappingColumn := range sqlMapping.ColumnMap {
-		fieldType := sqlMappingColumn.ValueFieldType
+	for fieldName, sqlColumn := range sqlMapping.ColumnMap {
+		fieldType := sqlColumn.ValueFieldType
 
 		value := reflect.Zero(fieldType).Interface()
-		if !sqlMappingColumn.ValueFieldValue.IsZero() {
-			value = sqlMappingColumn.ValueFieldValue.Interface()
+		if !sqlColumn.ValueFieldValue.IsZero() {
+			value = sqlColumn.ValueFieldValue.Interface()
 		}
 
 		if (fieldName == createdTimeFieldName || fieldName == lastUpdatedTimeFieldName) &&
@@ -58,10 +58,7 @@ func InsertEntity[T any](executor Executor, tableName string, e T) error {
 			value = now
 		}
 
-		err := tableRow.Add(sqlMappingColumn.Name, value).Err
-		if err != nil {
-			return err
-		}
+		tableRow.Add(sqlColumn.Name, value)
 	}
 
 	executeParamsMap, err := sql_tpl.InsertExecuteParams{
@@ -104,22 +101,19 @@ func DeleteEntity[T any](executor Executor, tableName string, e T) error {
 
 	conditions := sql_tpl.NewConditions()
 
-	for _, sqlMappingColumn := range sqlMapping.ColumnMap {
-		if !sqlMappingColumn.IsKey {
+	for _, sqlColumn := range sqlMapping.ColumnMap {
+		if !sqlColumn.IsKey {
 			continue
 		}
 
-		fieldType := sqlMappingColumn.ValueFieldType
+		fieldType := sqlColumn.ValueFieldType
 
 		value := reflect.Zero(fieldType).Interface()
-		if !sqlMappingColumn.ValueFieldValue.IsZero() {
-			value = sqlMappingColumn.ValueFieldValue.Interface()
+		if !sqlColumn.ValueFieldValue.IsZero() {
+			value = sqlColumn.ValueFieldValue.Interface()
 		}
 
-		err := conditions.Equal(sqlMappingColumn.Name, value).Err
-		if err != nil {
-			return err
-		}
+		conditions.Equal(sqlColumn.Name, value)
 	}
 
 	executeParamsMap, err := sql_tpl.DeleteExecuteParams{
@@ -184,17 +178,11 @@ func UpdateEntity[T any](executor Executor, tableName string, e T) error {
 		}
 
 		if !sqlColumn.IsKey {
-			err := tableRows.Add(sqlColumn.Name, value).Err
-			if err != nil {
-				return err
-			}
+			tableRows.Add(sqlColumn.Name, value)
 		}
 
 		if sqlColumn.IsKey {
-			err := conditions.Equal(sqlColumn.Name, value).Err
-			if err != nil {
-				return err
-			}
+			conditions.Equal(sqlColumn.Name, value)
 		}
 	}
 

+ 19 - 19
sql/sql_tpl/condition.go

@@ -2,7 +2,7 @@ package sql_tpl
 
 type Conditions struct {
 	Conditions []string
-	Err        error
+	err        error
 }
 
 func NewConditions() *Conditions {
@@ -17,13 +17,13 @@ func (conditions *Conditions) AddCondition(condition string) *Conditions {
 }
 
 func (conditions *Conditions) Equal(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -33,13 +33,13 @@ func (conditions *Conditions) Equal(columnName string, value any) *Conditions {
 }
 
 func (conditions *Conditions) Like(columnName string, value string) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -49,13 +49,13 @@ func (conditions *Conditions) Like(columnName string, value string) *Conditions
 }
 
 func (conditions *Conditions) In(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -65,13 +65,13 @@ func (conditions *Conditions) In(columnName string, value any) *Conditions {
 }
 
 func (conditions *Conditions) NotIn(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -81,13 +81,13 @@ func (conditions *Conditions) NotIn(columnName string, value any) *Conditions {
 }
 
 func (conditions *Conditions) Not(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -97,13 +97,13 @@ func (conditions *Conditions) Not(columnName string, value any) *Conditions {
 }
 
 func (conditions *Conditions) LessThan(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -113,13 +113,13 @@ func (conditions *Conditions) LessThan(columnName string, value any) *Conditions
 }
 
 func (conditions *Conditions) LessThanAndEqual(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -129,13 +129,13 @@ func (conditions *Conditions) LessThanAndEqual(columnName string, value any) *Co
 }
 
 func (conditions *Conditions) GreaterThan(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 
@@ -145,13 +145,13 @@ func (conditions *Conditions) GreaterThan(columnName string, value any) *Conditi
 }
 
 func (conditions *Conditions) GreaterThanAndEqual(columnName string, value any) *Conditions {
-	if conditions.Err != nil {
+	if conditions.err != nil {
 		return conditions
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		conditions.Err = err
+		conditions.err = err
 		return conditions
 	}
 

+ 45 - 2
sql/sql_tpl/sql_tpl.go

@@ -14,11 +14,18 @@ type InsertExecuteParams struct {
 	*TableRows
 }
 
-// TODO 判断Err
-
 func (params InsertExecuteParams) Map() (map[string]any, error) {
+	if params.TableRows == nil {
+		return nil, nil
+	}
+
+	if params.TableRows.err != nil {
+		return nil, params.TableRows.err
+	}
+
 	columns := make([]string, 0)
 	values := make([]any, 0)
+
 	for _, row := range params.TableRows.Rows {
 		columns = append(columns, row.Column)
 		values = append(values, row.Value)
@@ -48,6 +55,10 @@ func (params DeleteExecuteParams) Map() (map[string]any, error) {
 		return nil, errors.New("没有传递删除条件")
 	}
 
+	if params.Conditions.err != nil {
+		return nil, params.Conditions.err
+	}
+
 	return map[string]any{
 		"table_name": params.TableName,
 		"conditions": params.Conditions.Conditions,
@@ -70,6 +81,14 @@ type UpdateExecuteParams struct {
 }
 
 func (params UpdateExecuteParams) Map() (map[string]any, error) {
+	if params.TableRows == nil {
+		return nil, nil
+	}
+
+	if params.TableRows.err != nil {
+		return nil, params.TableRows.err
+	}
+
 	setList := make([]string, 0)
 	for _, row := range params.TableRows.Rows {
 		setList = append(setList, row.Column+" = "+row.Value)
@@ -77,6 +96,10 @@ func (params UpdateExecuteParams) Map() (map[string]any, error) {
 
 	conditions := make([]string, 0)
 	if params.Conditions != nil {
+		if params.Conditions.err != nil {
+			return nil, params.Conditions.err
+		}
+
 		conditions = params.Conditions.Conditions
 	}
 
@@ -117,6 +140,10 @@ func (params QueryExecuteParams) Map() (map[string]any, error) {
 
 	conditions := make([]string, 0)
 	if params.Conditions != nil {
+		if params.Conditions.err != nil {
+			return nil, params.Conditions.err
+		}
+
 		conditions = params.Conditions.Conditions
 	}
 
@@ -138,6 +165,10 @@ type QueryOneExecuteParams struct {
 func (params QueryOneExecuteParams) Map() (map[string]any, error) {
 	conditions := make([]string, 0)
 	if params.Conditions != nil {
+		if params.Conditions.err != nil {
+			return nil, params.Conditions.err
+		}
+
 		conditions = params.Conditions.Conditions
 	}
 
@@ -165,6 +196,10 @@ type CountExecuteParams struct {
 func (params CountExecuteParams) Map() (map[string]any, error) {
 	conditions := make([]string, 0)
 	if params.Conditions != nil {
+		if params.Conditions.err != nil {
+			return nil, params.Conditions.err
+		}
+
 		conditions = params.Conditions.Conditions
 	}
 
@@ -182,6 +217,10 @@ type CheckExistExecuteParams struct {
 func (params CheckExistExecuteParams) Map() (map[string]any, error) {
 	conditions := make([]string, 0)
 	if params.Conditions != nil {
+		if params.Conditions.err != nil {
+			return nil, params.Conditions.err
+		}
+
 		conditions = params.Conditions.Conditions
 	}
 
@@ -199,6 +238,10 @@ type CheckHasOnlyOneExecuteParams struct {
 func (params CheckHasOnlyOneExecuteParams) Map() (map[string]any, error) {
 	conditions := make([]string, 0)
 	if params.Conditions != nil {
+		if params.Conditions.err != nil {
+			return nil, params.Conditions.err
+		}
+
 		conditions = params.Conditions.Conditions
 	}
 

+ 3 - 3
sql/sql_tpl/table_row.go

@@ -2,7 +2,7 @@ package sql_tpl
 
 type TableRows struct {
 	Rows []TableRow
-	Err  error
+	err  error
 }
 
 type TableRow struct {
@@ -17,13 +17,13 @@ func NewTableRows() *TableRows {
 }
 
 func (tableRows *TableRows) Add(column string, value any) *TableRows {
-	if tableRows.Err != nil {
+	if tableRows.err != nil {
 		return tableRows
 	}
 
 	parsedValue, err := parseValue(value)
 	if err != nil {
-		tableRows.Err = err
+		tableRows.err = err
 		return tableRows
 	}