- rollback when panic.
This commit is contained in:
@@ -269,6 +269,12 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|||||||
sqlParams = append(sqlParams, pageSize, offset)
|
sqlParams = append(sqlParams, pageSize, offset)
|
||||||
skuNamesInfo = &SkuNamesInfo{}
|
skuNamesInfo = &SkuNamesInfo{}
|
||||||
dao.Begin(db) // todo 这里用事务的原因是,SQL_CALC_FOUND_ROWS会出错
|
dao.Begin(db) // todo 这里用事务的原因是,SQL_CALC_FOUND_ROWS会出错
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
|
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
|
||||||
countInfo := &struct{ Ct int }{}
|
countInfo := &struct{ Ct int }{}
|
||||||
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
||||||
@@ -297,6 +303,12 @@ func AddSkuName(skuNameExt *model.SkuNameExt, userName string) (outSkuNameExt *m
|
|||||||
}
|
}
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName)
|
dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName)
|
||||||
if err = dao.CreateEntity(db, &skuNameExt.SkuName); err != nil {
|
if err = dao.CreateEntity(db, &skuNameExt.SkuName); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
@@ -343,6 +355,12 @@ func UpdateSkuName(nameID int, payload map[string]interface{}, userName string)
|
|||||||
if len(valid) > 0 {
|
if len(valid) > 0 {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if num, err = dao.UpdateEntityByKV(db, skuName, valid, nil); err == nil && num == 1 {
|
if num, err = dao.UpdateEntityByKV(db, skuName, valid, nil); err == nil && num == 1 {
|
||||||
if payload["places"] != nil {
|
if payload["places"] != nil {
|
||||||
var places []int
|
var places []int
|
||||||
@@ -381,6 +399,12 @@ func UpdateSkuName(nameID int, payload map[string]interface{}, userName string)
|
|||||||
func DeleteSkuName(nameID int, userName string) (num int64, err error) {
|
func DeleteSkuName(nameID int, userName string) (num int64, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
skuName := &model.SkuName{}
|
skuName := &model.SkuName{}
|
||||||
skuName.ID = nameID
|
skuName.ID = nameID
|
||||||
if num, err = dao.DeleteEntityLogically(db, skuName, nil, userName, nil); err == nil && num == 1 {
|
if num, err = dao.DeleteEntityLogically(db, skuName, nil, userName, nil); err == nil && num == 1 {
|
||||||
|
|||||||
@@ -184,6 +184,12 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i
|
|||||||
retVal = &StoresInfo{}
|
retVal = &StoresInfo{}
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil {
|
if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil {
|
||||||
countInfo := &struct{ Ct int }{}
|
countInfo := &struct{ Ct int }{}
|
||||||
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
||||||
|
|||||||
@@ -156,6 +156,12 @@ func GetStoreSkus(storeID int, keyword string, params map[string]interface{}, of
|
|||||||
skuNamesInfo = &StoreSkuNamesInfo{}
|
skuNamesInfo = &StoreSkuNamesInfo{}
|
||||||
// globals.SugarLogger.Debug(sqlData)
|
// globals.SugarLogger.Debug(sqlData)
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
|
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
|
||||||
countInfo := &struct{ Ct int }{}
|
countInfo := &struct{ Ct int }{}
|
||||||
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil {
|
||||||
@@ -191,6 +197,12 @@ func UpdateStoreSku(storeID int, skuBinds []*StoreSkuBindInfo, userName string)
|
|||||||
existBindsMap[v.SkuID] = v
|
existBindsMap[v.SkuID] = v
|
||||||
}
|
}
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
for _, v := range skuBinds {
|
for _, v := range skuBinds {
|
||||||
skuBind, ok := existBindsMap[v.SkuID]
|
skuBind, ok := existBindsMap[v.SkuID]
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|||||||
Reference in New Issue
Block a user