This commit is contained in:
suyl
2021-04-22 15:34:22 +08:00
parent 0e9358131f
commit 2b7ca32373
2 changed files with 14 additions and 3 deletions

View File

@@ -101,7 +101,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI
storeAcct := &model.StoreAcct{ storeAcct := &model.StoreAcct{
StoreID: storeID, StoreID: storeID,
} }
txDB , _ := dao.Begin(db) txDB, _ := dao.Begin(db)
defer func() { defer func() {
if r := recover(); r != nil || err != nil { if r := recover(); r != nil || err != nil {
dao.Rollback(db, txDB) dao.Rollback(db, txDB)
@@ -113,7 +113,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI
if err = dao.GetEntity(db, storeAcct, "StoreID"); err != nil && dao.IsNoRowsError(err) { if err = dao.GetEntity(db, storeAcct, "StoreID"); err != nil && dao.IsNoRowsError(err) {
//新增门店账单 //新增门店账单
dao.WrapAddIDCULEntity(storeAcct, ctx.GetUserName()) dao.WrapAddIDCULEntity(storeAcct, ctx.GetUserName())
if err = dao.CreateEntity(db, storeAcct); err != nil { if err = dao.CreateEntityTx(txDB, storeAcct); err != nil {
dao.Rollback(db, txDB) dao.Rollback(db, txDB)
return err return err
} }
@@ -124,7 +124,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI
} else { } else {
storeAcct.AccountBalance -= price storeAcct.AccountBalance -= price
} }
if _, err = dao.UpdateEntity(db, storeAcct, "AccountBalance"); err != nil { if _, err = dao.UpdateEntityTx(txDB, storeAcct, "AccountBalance"); err != nil {
dao.Rollback(db, txDB) dao.Rollback(db, txDB)
return err return err
} }

View File

@@ -197,6 +197,17 @@ func UpdateEntity(db *DaoDB, item interface{}, cols ...string) (num int64, err e
return num, err return num, err
} }
func UpdateEntityTx(txDB orm.TxOrmer, item interface{}, cols ...string) (num int64, err error) {
if txDB == nil {
return
}
num, err = txDB.Update(item, cols...)
if err != nil && !IsDuplicateError(err) {
globals.SugarLogger.Errorf("UpdateEntity %s failed with error:%v", reflect.TypeOf(item).Name(), err)
}
return num, err
}
func CreateEntity(db *DaoDB, item interface{}) (err error) { func CreateEntity(db *DaoDB, item interface{}) (err error) {
if db == nil { if db == nil {
db = GetDB() db = GetDB()