package model import ( "apsClient/pkg/sqlitex" "fmt" "github.com/jinzhu/gorm" ) // WithTransaction : var funcs []func(db *gorm.DB) error,把相关函数添加进去 func WithTransaction(fns ...func(*gorm.DB) error) (err error) { tx := sqlitex.GetDB().Begin() defer func() { if r := recover(); r != nil { tx.Rollback() err = fmt.Errorf("%v", err) } }() for _, fn := range fns { err = fn(tx) if err != nil { tx.Rollback() return } } err = tx.Commit().Error return }