|
@@ -60,6 +60,7 @@ func Update(middleTableName string,
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ tableRows := make([]sql.TableRow, len(toIDs))
|
|
|
if toIDs != nil && len(toIDs) != 0 {
|
|
if toIDs != nil && len(toIDs) != 0 {
|
|
|
for _, toID := range toIDs {
|
|
for _, toID := range toIDs {
|
|
|
err := entity.CheckIDTypeValue(fromDomainCNName, fromRelationFieldName, toID)
|
|
err := entity.CheckIDTypeValue(fromDomainCNName, fromRelationFieldName, toID)
|
|
@@ -69,20 +70,6 @@ func Update(middleTableName string,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
toIDs = slice.RemoveRepeatElement(toIDs)
|
|
toIDs = slice.RemoveRepeatElement(toIDs)
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- err = database.Transaction(dbExecutor, func(tx database.Executor) error {
|
|
|
|
|
- err := database.Delete(tx, &sql.DeleteExecuteParams{
|
|
|
|
|
- TableName: middleTableName,
|
|
|
|
|
- Conditions: sql.NewConditions().Equal(fromRelationColumnName, fromEntity.GetID()),
|
|
|
|
|
- })
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if toIDs == nil || len(toIDs) == 0 {
|
|
|
|
|
- return nil
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
if !toRemote {
|
|
if !toRemote {
|
|
|
toCount, err := database.Count(dbExecutor, &sql.CountExecuteParams{
|
|
toCount, err := database.Count(dbExecutor, &sql.CountExecuteParams{
|
|
@@ -90,20 +77,33 @@ func Update(middleTableName string,
|
|
|
Conditions: sql.NewConditions().In(entity.ColumnID, toIDs),
|
|
Conditions: sql.NewConditions().In(entity.ColumnID, toIDs),
|
|
|
})
|
|
})
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return err
|
|
|
|
|
|
|
+ return nil, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if int(toCount) != len(toIDs) {
|
|
if int(toCount) != len(toIDs) {
|
|
|
- return errors.New("部分{{ $toCNName }}不存在")
|
|
|
|
|
|
|
+ return nil, errors.New("部分{{ $toCNName }}不存在")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- tableRows := make([]sql.TableRow, len(toIDs))
|
|
|
|
|
for index, toID := range toIDs {
|
|
for index, toID := range toIDs {
|
|
|
tableRows[index] = *(sql.NewTableRow().
|
|
tableRows[index] = *(sql.NewTableRow().
|
|
|
Add(fromRelationColumnName, fromEntity.GetID()).
|
|
Add(fromRelationColumnName, fromEntity.GetID()).
|
|
|
Add(toRelationColumnName, toID))
|
|
Add(toRelationColumnName, toID))
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = database.Transaction(dbExecutor, func(tx database.Executor) error {
|
|
|
|
|
+ err := database.Delete(tx, &sql.DeleteExecuteParams{
|
|
|
|
|
+ TableName: middleTableName,
|
|
|
|
|
+ Conditions: sql.NewConditions().Equal(fromRelationColumnName, fromEntity.GetID()),
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if tableRows == nil || len(tableRows) == 0 {
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
err = database.InsertBatch(tx, &sql.InsertBatchExecuteParams{
|
|
err = database.InsertBatch(tx, &sql.InsertBatchExecuteParams{
|
|
|
TableName: middleTableName,
|
|
TableName: middleTableName,
|