Browse Source

修改Bug

yjp 1 year ago
parent
commit
22232e6737

+ 2 - 2
convenient/relation/many2many/simple.go

@@ -49,9 +49,9 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 
 	middleTableName := domain.RelationTableName(simple.Schema, simple.Left, simple.Right)
 	leftTableName := domain.TableName(simple.Schema, simple.Left)
-	leftRelationColumnName := domain.RelationColumnName(simple.Right)
+	leftRelationColumnName := domain.RelationColumnName(simple.Left)
 	rightTableName := domain.TableName(simple.Schema, simple.Right)
-	rightRelationColumnName := domain.RelationColumnName(simple.Left)
+	rightRelationColumnName := domain.RelationColumnName(simple.Right)
 
 	if !options.disableLeft {
 		if !options.disableLeftUpdate {

+ 14 - 14
convenient/relation/one2many/service.go

@@ -18,8 +18,8 @@ import (
 	"reflect"
 )
 
-func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationFieldName string,
-	rightTableName string, rightDomainCNName string, rightRelationColumnName string) binding.ServiceFunc[any] {
+func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationFieldName string, leftRelationColumnName string,
+	rightTableName string, rightDomainCNName string) binding.ServiceFunc[any] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
@@ -75,8 +75,8 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
 		err = database.Transaction(dbExecutor, func(tx database.Executor) error {
 			err := database.Update(tx, &sql.UpdateExecuteParams{
 				TableName:  rightTableName,
-				TableRow:   sql.NewTableRow().Add(rightRelationColumnName, ""),
-				Conditions: sql.NewConditions().Equal(rightRelationColumnName, leftEntity.GetID()),
+				TableRow:   sql.NewTableRow().Add(leftRelationColumnName, ""),
+				Conditions: sql.NewConditions().Equal(leftRelationColumnName, leftEntity.GetID()),
 			})
 			if err != nil {
 				return err
@@ -100,7 +100,7 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
 
 			err = database.Update(tx, &sql.UpdateExecuteParams{
 				TableName:  rightTableName,
-				TableRow:   sql.NewTableRow().Add(rightRelationColumnName, leftEntity.GetID()),
+				TableRow:   sql.NewTableRow().Add(leftRelationColumnName, leftEntity.GetID()),
 				Conditions: sql.NewConditions().In(entity.ColumnID, rightIDs),
 			})
 			if err != nil {
@@ -117,8 +117,8 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
 	}
 }
 
-func QueryLeft[RI any](leftTableName string,
-	rightTableName string, rightRelationColumnName string) binding.ServiceFunc[response.InfosData[RI]] {
+func QueryLeft[RI any](leftTableName string, leftRelationColumnName string,
+	rightTableName string) binding.ServiceFunc[response.InfosData[RI]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[RI], error) {
 		errResponse := response.InfosData[RI]{
 			Infos: make([]RI, 0),
@@ -160,7 +160,7 @@ func QueryLeft[RI any](leftTableName string,
 
 		rightResults, totalCount, err := database.Query(dbExecutor, &sql.QueryExecuteParams{
 			TableName:  rightTableName,
-			Conditions: sql.NewConditions().Equal(rightRelationColumnName, leftEntity.GetID()),
+			Conditions: sql.NewConditions().Equal(leftRelationColumnName, leftEntity.GetID()),
 		})
 		if err != nil && !database.IsErrorDBRecordNotExist(err) {
 			return errResponse, err
@@ -180,8 +180,8 @@ func QueryLeft[RI any](leftTableName string,
 	}
 }
 
-func UpdateRight(rightTableName string, rightRelationFieldName string, rightRelationColumnName string,
-	leftTableName string, leftDomainCNName string) binding.ServiceFunc[any] {
+func UpdateRight(rightTableName string, rightRelationFieldName string,
+	leftTableName string, leftDomainCNName string, leftRelationColumnName string) binding.ServiceFunc[any] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
@@ -239,7 +239,7 @@ func UpdateRight(rightTableName string, rightRelationFieldName string, rightRela
 
 		err = database.Update(dbExecutor, &sql.UpdateExecuteParams{
 			TableName:  rightTableName,
-			TableRow:   sql.NewTableRow().Add(rightRelationColumnName, leftID),
+			TableRow:   sql.NewTableRow().Add(leftRelationColumnName, leftID),
 			Conditions: sql.NewConditions().Equal(entity.ColumnID, rightEntity.GetID()),
 		})
 		if err != nil {
@@ -314,7 +314,7 @@ func QueryRight[LI any](rightTableName string, rightRelationFieldName string, le
 
 type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, err error)
 
-func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightRelationColumnName string, rightFieldCallback ConditionFieldCallback, leftTableName string) binding.ServiceFunc[response.InfosData[map[string]any]] {
+func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightFieldCallback ConditionFieldCallback, leftTableName string, leftRelationColumnName string) binding.ServiceFunc[response.InfosData[map[string]any]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[map[string]any], error) {
 		errResponse := response.InfosData[map[string]any]{
 			Infos: make([]map[string]any, 0),
@@ -385,7 +385,7 @@ func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightRelation
 
 		leftIDs := make([]string, 0)
 		for _, rightResult := range rightResults {
-			leftID := rightResult.ColumnValueString(rightRelationColumnName)
+			leftID := rightResult.ColumnValueString(leftRelationColumnName)
 			if strutils.IsStringNotEmpty(leftID) {
 				leftIDs = append(leftIDs, leftID)
 			}
@@ -417,7 +417,7 @@ func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightRelation
 				return errResponse, err
 			}
 
-			leftID := rightResult.ColumnValueString(rightRelationColumnName)
+			leftID := rightResult.ColumnValueString(leftRelationColumnName)
 			if strutils.IsStringEmpty(leftID) {
 				infos[index] = map[string]any{
 					"self": rightInfo,

+ 7 - 7
convenient/relation/one2many/simple.go

@@ -51,8 +51,8 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 	rightRelationFieldName := fmt.Sprintf("%sID", simple.Left.DomainCamelName())
 
 	leftTableName := domain.TableName(simple.Schema, simple.Left)
+	leftRelationColumnName := domain.RelationColumnName(simple.Left)
 	rightTableName := domain.TableName(simple.Schema, simple.Right)
-	rightRelationColumnName := domain.RelationColumnName(simple.Left)
 
 	if !options.disableLeft {
 		if !options.disableLeftUpdate {
@@ -64,8 +64,8 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 				SendResponseFunc: response.SendMsgResponse,
 				RequestParams:    simple.LeftUpdateJsonBody,
 				Objects:          []domain.Object{simple.Left},
-				ServiceFunc: UpdateLeft(leftTableName, simple.Left.DomainCNName(), leftRelationFieldName,
-					rightTableName, simple.Right.DomainCNName(), rightRelationColumnName),
+				ServiceFunc: UpdateLeft(leftTableName, simple.Left.DomainCNName(), leftRelationFieldName, leftRelationColumnName,
+					rightTableName, simple.Right.DomainCNName()),
 			}, leftUpdateMiddlewares...)
 		}
 
@@ -78,7 +78,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 				SendResponseFunc: response.SendInfosResponse[RI],
 				RequestParams:    simple.LeftQueryQueryParams,
 				Objects:          []domain.Object{simple.Left},
-				ServiceFunc:      QueryLeft[RI](leftTableName, rightTableName, rightRelationColumnName),
+				ServiceFunc:      QueryLeft[RI](leftTableName, leftRelationColumnName, rightTableName),
 			}, leftQueryMiddlewares...)
 		}
 	}
@@ -93,8 +93,8 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 				SendResponseFunc: response.SendMsgResponse,
 				RequestParams:    simple.RightUpdateJsonBody,
 				Objects:          []domain.Object{simple.Right},
-				ServiceFunc: UpdateRight(rightTableName, rightRelationFieldName, rightRelationColumnName,
-					leftTableName, simple.Left.DomainCNName()),
+				ServiceFunc: UpdateRight(rightTableName, rightRelationFieldName,
+					leftTableName, simple.Left.DomainCNName(), leftRelationColumnName),
 			}, rightUpdateMiddlewares...)
 		}
 
@@ -120,7 +120,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 				SendResponseFunc: response.SendInfosResponse[map[string]any],
 				RequestParams:    simple.RightQueryWithLeftQueryParams,
 				Objects:          []domain.Object{simple.Right},
-				ServiceFunc:      QueryRightWithLeftInfo[RI, LI](rightTableName, rightRelationColumnName, options.rightQueryWithConditionFieldCallback, leftTableName),
+				ServiceFunc:      QueryRightWithLeftInfo[RI, LI](rightTableName, options.rightQueryWithConditionFieldCallback, leftTableName, leftRelationColumnName),
 			}, rightWithLeftQueryMiddlewares...)
 		}
 	}

+ 7 - 7
convenient/relation/one2one/service.go

@@ -90,7 +90,7 @@ func Update(fromTableName string, fromRelationFieldName string, fromRelationColu
 			if strutils.IsStringNotEmpty(fromTableName) {
 				err := database.Update(tx, &sql.UpdateExecuteParams{
 					TableName:  fromTableName,
-					TableRow:   sql.NewTableRow().Add(fromRelationColumnName, newToID),
+					TableRow:   sql.NewTableRow().Add(toRelationColumnName, newToID),
 					Conditions: sql.NewConditions().Equal(entity.ColumnID, fromEntity.GetID()),
 				})
 				if err != nil {
@@ -100,9 +100,9 @@ func Update(fromTableName string, fromRelationFieldName string, fromRelationColu
 
 			if strutils.IsStringNotEmpty(toTableName) &&
 				(strutils.IsStringNotEmpty(currentToID) || strutils.IsStringNotEmpty(newToID)) {
-				familyID := fromEntity.GetID()
+				fromID := fromEntity.GetID()
 				if strutils.IsStringEmpty(newToID) {
-					familyID = ""
+					fromID = ""
 				}
 
 				updateToID := currentToID
@@ -112,7 +112,7 @@ func Update(fromTableName string, fromRelationFieldName string, fromRelationColu
 
 				err := database.Update(tx, &sql.UpdateExecuteParams{
 					TableName:  toTableName,
-					TableRow:   sql.NewTableRow().Add(toRelationColumnName, familyID),
+					TableRow:   sql.NewTableRow().Add(fromRelationColumnName, fromID),
 					Conditions: sql.NewConditions().Equal(entity.ColumnID, updateToID),
 				})
 				if err != nil {
@@ -194,7 +194,7 @@ func Query[TI any](fromTableName string, fromRelationFieldName string, toTableNa
 
 type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, err error)
 
-func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromRelationColumnName string, fromFieldCallback ConditionFieldCallback, toTableName string) binding.ServiceFunc[response.InfosData[map[string]any]] {
+func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromFieldCallback ConditionFieldCallback, toTableName string, toRelationColumnName string) binding.ServiceFunc[response.InfosData[map[string]any]] {
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[map[string]any], error) {
 		errResponse := response.InfosData[map[string]any]{
 			Infos: make([]map[string]any, 0),
@@ -265,7 +265,7 @@ func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromRelationColumn
 
 		toIDs := make([]string, 0)
 		for _, fromResult := range fromResults {
-			toID := fromResult.ColumnValueString(fromRelationColumnName)
+			toID := fromResult.ColumnValueString(toRelationColumnName)
 			if strutils.IsStringNotEmpty(toID) {
 				toIDs = append(toIDs, toID)
 			}
@@ -297,7 +297,7 @@ func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromRelationColumn
 				return errResponse, err
 			}
 
-			toID := fromResult.ColumnValueString(fromRelationColumnName)
+			toID := fromResult.ColumnValueString(toRelationColumnName)
 			if strutils.IsStringEmpty(toID) {
 				infos[index] = map[string]any{
 					"self": fromInfo,

+ 4 - 4
convenient/relation/one2one/simple.go

@@ -54,9 +54,9 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 	rightRelationFieldName := fmt.Sprintf("%sID", simple.Left.DomainCamelName())
 
 	leftTableName := domain.TableName(simple.Schema, simple.Left)
-	leftRelationColumnName := domain.RelationColumnName(simple.Right)
+	leftRelationColumnName := domain.RelationColumnName(simple.Left)
 	rightTableName := domain.TableName(simple.Schema, simple.Right)
-	rightRelationColumnName := domain.RelationColumnName(simple.Left)
+	rightRelationColumnName := domain.RelationColumnName(simple.Right)
 
 	if !options.disableLeft {
 		if !options.disableLeftUpdate {
@@ -95,7 +95,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 				SendResponseFunc: response.SendInfosResponse[map[string]any],
 				RequestParams:    simple.LeftQueryWithRightQueryParams,
 				Objects:          []domain.Object{simple.Left},
-				ServiceFunc:      QueryWithOtherInfo[LI, RI](leftTableName, leftRelationColumnName, options.leftQueryWithConditionFieldCallback, rightTableName),
+				ServiceFunc:      QueryWithOtherInfo[LI, RI](leftTableName, options.leftQueryWithConditionFieldCallback, rightTableName, rightRelationColumnName),
 			}, leftWithRightQueryMiddlewares...)
 		}
 	}
@@ -137,7 +137,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 				SendResponseFunc: response.SendInfosResponse[map[string]any],
 				RequestParams:    simple.RightQueryWithLeftQueryParams,
 				Objects:          []domain.Object{simple.Right},
-				ServiceFunc:      QueryWithOtherInfo[RI, LI](rightTableName, rightRelationColumnName, options.rightQueryWithConditionFieldCallback, leftTableName),
+				ServiceFunc:      QueryWithOtherInfo[RI, LI](rightTableName, options.rightQueryWithConditionFieldCallback, leftTableName, leftRelationColumnName),
 			}, rightWithLeftQueryMiddlewares...)
 		}
 	}