diff --git a/app/admin/model/system/sysDictData.go b/app/admin/model/system/sysDictData.go index deb8530910d0861c7c9c4eca70b2638840f9c984..04b5d185da39a11494b51fe0aa46c6cece413401 100644 --- a/app/admin/model/system/sysDictData.go +++ b/app/admin/model/system/sysDictData.go @@ -128,22 +128,32 @@ func EditDictData(dictDataParam SysDictData) R.Result { func DeleteDictData(dictCodes string) R.Result { var ids = utils.Split(dictCodes) - mysql.MysqlDb().Begin() + + // 获取事务对象并保存 + tx := mysql.MysqlDb().Begin() + if tx.Error != nil { + return R.ReturnFailMsg(tx.Error.Error()) + } + for i := 0; i < len(ids); i++ { id := ids[i] - err := mysql.MysqlDb().Where("dict_code = ?", id).Delete(&SysDictData{}).Error + err := tx.Where("dict_code = ?", id).Delete(&SysDictData{}).Error if err != nil { - fmt.Println(mysql.MysqlDb().Rollback().Error) + tx.Rollback() return R.ReturnFailMsg(err.Error()) } } - fmt.Println(mysql.MysqlDb().Commit().Error) - return R.ReturnSuccess("操作成功") - // 或 + + if err := tx.Commit().Error; err != nil { + tx.Rollback() + return R.ReturnFailMsg(err.Error()) + } + + // 或者直接调用删除方法,不使用事务。上述使用事务是为了保证数据一致性。 // err := mysql.MysqlDb().Where("dict_code in (?)", ids).Delete(&SysDictData{}).Error // if err != nil { - // fmt.Println(mysql.MysqlDb().Rollback().Error) // return R.ReturnFailMsg(err.Error()) // } - // return R.ReturnSuccess("操作成功") + + return R.ReturnSuccess("操作成功") }