diff --git a/business/jxstore/cms/store_acct.go b/business/jxstore/cms/store_acct.go index 68f47b811..0cd8b11a2 100644 --- a/business/jxstore/cms/store_acct.go +++ b/business/jxstore/cms/store_acct.go @@ -101,7 +101,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI storeAcct := &model.StoreAcct{ StoreID: storeID, } - txDB , _ := dao.Begin(db) + txDB, _ := dao.Begin(db) defer func() { if r := recover(); r != nil || err != nil { 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) { //新增门店账单 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) return err } @@ -124,7 +124,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI } else { 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) return err } diff --git a/business/model/dao/dao.go b/business/model/dao/dao.go index dd8a1d782..cc1d40d8a 100644 --- a/business/model/dao/dao.go +++ b/business/model/dao/dao.go @@ -197,6 +197,17 @@ func UpdateEntity(db *DaoDB, item interface{}, cols ...string) (num int64, err e 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) { if db == nil { db = GetDB()