|
|
@@ -1,6 +1,8 @@
|
|
|
package one2many
|
|
|
|
|
|
import (
|
|
|
+ "reflect"
|
|
|
+
|
|
|
"git.sxidc.com/go-framework/baize/framework/binding"
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/api"
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/api/request"
|
|
|
@@ -15,7 +17,6 @@ import (
|
|
|
"git.sxidc.com/go-tools/utils/slice"
|
|
|
"git.sxidc.com/go-tools/utils/strutils"
|
|
|
"github.com/pkg/errors"
|
|
|
- "reflect"
|
|
|
)
|
|
|
|
|
|
func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationFieldName string, leftRelationColumnName string,
|
|
|
@@ -70,32 +71,32 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
|
|
|
}
|
|
|
|
|
|
rightIDs = slice.RemoveRepeatElement(rightIDs)
|
|
|
- }
|
|
|
|
|
|
- err = database.Transaction(dbExecutor, func(tx database.Executor) error {
|
|
|
- err := database.Update(tx, &sql.UpdateExecuteParams{
|
|
|
+ rightCount, err := database.Count(dbExecutor, &sql.CountExecuteParams{
|
|
|
TableName: rightTableName,
|
|
|
- TableRow: sql.NewTableRow().Add(leftRelationColumnName, ""),
|
|
|
- Conditions: sql.NewConditions().Equal(leftRelationColumnName, leftEntity.GetID()),
|
|
|
+ Conditions: sql.NewConditions().In(entity.ColumnID, rightIDs),
|
|
|
})
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ return nil, err
|
|
|
}
|
|
|
|
|
|
- if rightIDs == nil || len(rightIDs) == 0 {
|
|
|
- return nil
|
|
|
+ if int(rightCount) != len(rightIDs) {
|
|
|
+ return nil, errors.New("部分" + rightDomainCNName + "不存在")
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- rightCount, err := database.Count(dbExecutor, &sql.CountExecuteParams{
|
|
|
+ err = database.Transaction(dbExecutor, func(tx database.Executor) error {
|
|
|
+ err := database.Update(tx, &sql.UpdateExecuteParams{
|
|
|
TableName: rightTableName,
|
|
|
- Conditions: sql.NewConditions().In(entity.ColumnID, rightIDs),
|
|
|
+ TableRow: sql.NewTableRow().Add(leftRelationColumnName, ""),
|
|
|
+ Conditions: sql.NewConditions().Equal(leftRelationColumnName, leftEntity.GetID()),
|
|
|
})
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- if int(rightCount) != len(rightIDs) {
|
|
|
- return errors.New("部分" + rightDomainCNName + "不存在")
|
|
|
+ if rightIDs == nil || len(rightIDs) == 0 {
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
err = database.Update(tx, &sql.UpdateExecuteParams{
|