1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| package model
|
| import (
| "apsClient/pkg/sqlitex"
| "fmt"
| "gorm.io/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
| }
|
|