20 lines
396 B
Go
20 lines
396 B
Go
package service
|
||
|
||
import (
|
||
"context"
|
||
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
// TxHelper 事务封装(spec §阶段 2.6)
|
||
type TxHelper struct {
|
||
db *gorm.DB
|
||
}
|
||
|
||
func NewTxHelper(db *gorm.DB) *TxHelper { return &TxHelper{db: db} }
|
||
|
||
// WithTx - 业务表 + mts + reports 原子性保证
|
||
func (h *TxHelper) WithTx(ctx context.Context, fn func(*gorm.DB) error) error {
|
||
return h.db.WithContext(ctx).Transaction(fn)
|
||
}
|