1 Star 4 Fork 0

火火/golang-common

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
help.go 869 Bytes
一键复制 编辑 原始数据 按行查看 历史
火火 提交于 2020-12-23 18:32 +08:00 . 1
package sql
import (
"gitee.com/yxd1990/golang-common/debug"
"gitee.com/yxd1990/golang-common/errors"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
)
type TxFunc func(o orm.Ormer) error
func InTx(txFunc TxFunc, ormObj ...orm.Ormer) (err error) {
var o orm.Ormer
if len(ormObj) == 0 {
o = orm.NewOrm()
err = o.Begin()
defer func() {
if re := recover(); re != nil {
logs.Error("InTx panic error : %#v,%s", re, debug.GetStackInfo())
if err == nil {
err = errors.Emit("系统异常Panic")
}
}
if err == nil {
err = o.Commit()
}
if err != nil {
_ = o.Rollback()
}
}()
if err != nil {
return
}
} else {
o = ormObj[0]
}
err = txFunc(o)
return
}
func ParseNoRowsErr(err error) error {
if err == orm.ErrNoRows {
err = errors.Emit("纪录不存在,请刷新再试")
}
return err
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/yxd1990/golang-common.git
git@gitee.com:yxd1990/golang-common.git
yxd1990
golang-common
golang-common
62252a89ea79

搜索帮助