From 3c4b57eab8e706c628b4138059faa6f47a38d7d7 Mon Sep 17 00:00:00 2001 From: jiangpenggit Date: Fri, 28 Mar 2025 09:00:07 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=95=B0=E6=8D=AE=E6=97=B6=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=A8=8B=E5=BA=8F=E5=B4=A9=E6=BA=83=E3=80=82=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0=E5=BC=80=E5=90=AF=E4=BA=86=E4=BA=8B=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BD=86=E6=98=AF=E5=8F=88=E6=B2=A1=E7=94=A8=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=E4=BC=9A=E5=AF=BC=E8=87=B4=E4=BA=8B=E5=8A=A1=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E3=80=82=20=E9=97=AE=E9=A2=98=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0=201.=20=E4=BA=8B=E5=8A=A1=E6=9C=AA=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=20=EF=BC=9A=20=20=20=20-=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20mysql.MysqlDb().Begin()=20=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E5=90=8E=EF=BC=8C=E6=B2=A1=E6=9C=89=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E8=BF=94=E5=9B=9E=E7=9A=84=20*gorm.DB=20=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=20=20=20=20-=20=E5=90=8E=E7=BB=AD=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8=20mysql.MysqlDb()=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B0=E8=BF=9E=E6=8E=A5=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E4=BA=8B=E5=8A=A1=E4=B8=8D=E4=B8=80=E8=87=B4=202.=20?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E6=B3=84=E6=BC=8F=20=EF=BC=9A=20=20=20=20-?= =?UTF-8?q?=20=E4=BA=8B=E5=8A=A1=E5=BC=80=E5=90=AF=E5=90=8E=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=B2=A1=E6=9C=89=E6=AD=A3=E7=A1=AE=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=88=96=E5=9B=9E=E6=BB=9A=EF=BC=8C=E4=BC=9A=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=B1=A0=E4=B8=AD=E7=9A=84=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E4=BA=8B=E5=8A=A1=E7=8A=B6=E6=80=81=20=20=20?= =?UTF-8?q?=20-=20=E8=BF=99=E4=B8=AA=E8=BF=9E=E6=8E=A5=E8=A2=AB=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E6=93=8D=E4=BD=9C=E5=A4=8D=E7=94=A8=E6=97=B6=E4=BC=9A?= =?UTF-8?q?=E6=8A=A5=20"invalid=20transaction"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiangpenggit --- app/admin/model/system/sysDictData.go | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/app/admin/model/system/sysDictData.go b/app/admin/model/system/sysDictData.go index deb8530..04b5d18 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("操作成功") } -- Gitee