@@ -375,3 +375,24 @@ var where = []string{
"Rr",
"Ee",
}
+
+// Transaction 同时开两个事务的方法
+func Transaction(txItem, txMain *gorm.DB, fun func(txItem, txMain *gorm.DB) (err error)) (err error) {
+ tx1 := txItem.Begin()
+ tx2 := txMain.Begin()
+ err = fun(tx1, tx2)
+ if err != nil {
+ tx1.Rollback()
+ tx2.Rollback()
+ return err
+ }
+ err = tx1.Commit().Error
+ return
+ err = tx2.Commit().Error
+}