diff --git a/internel/dao/governance.go.go b/internel/dao/governance.go.go index 94bbece..cbf834c 100644 --- a/internel/dao/governance.go.go +++ b/internel/dao/governance.go.go @@ -7,6 +7,7 @@ import ( "micro-document/pkg/db" "time" + "github.com/go-sql-driver/mysql" "gorm.io/gorm" "gorm.io/gorm/clause" ) @@ -55,7 +56,8 @@ func (governanceDao) Edit(req *governance.EditReq) (err error) { }, }).Error if err != nil { - if errors.Is(err, gorm.ErrDuplicatedKey) { + var mysqlErr *mysql.MySQLError + if errors.As(err, &mysqlErr) && mysqlErr.Number == 1062 { return errors.New("已存在标题相同的数据!") } return errors.New("操作失败") @@ -74,7 +76,8 @@ func (governanceDao) Create(req *governance.CreateReq) (err error) { OperatorID: int(req.OperatorId), }).Error if err != nil { - if errors.Is(err, gorm.ErrDuplicatedKey) { + var mysqlErr *mysql.MySQLError + if errors.As(err, &mysqlErr) && mysqlErr.Number == 1062 { return errors.New("已存在标题相同的数据!") } return errors.New("操作失败") diff --git a/internel/dao/press_releases.go b/internel/dao/press_releases.go index 9a49a9e..132c910 100644 --- a/internel/dao/press_releases.go +++ b/internel/dao/press_releases.go @@ -2,7 +2,6 @@ package dao import ( "errors" - "fmt" "micro-document/api/pressreleases" "micro-document/internel/model" "micro-document/pkg/db" @@ -10,6 +9,7 @@ import ( "dubbo.apache.org/dubbo-go/v3/common/logger" "github.com/duke-git/lancet/v2/datetime" + "github.com/go-sql-driver/mysql" "gorm.io/gorm" "gorm.io/gorm/clause" ) @@ -98,8 +98,8 @@ func (pressReleasesDao) Edit(req *pressreleases.EditReq) (err error) { }, }).Error if err != nil { - fmt.Printf("err: %v\n", err) - if errors.Is(err, gorm.ErrDuplicatedKey) { + var mysqlErr *mysql.MySQLError + if errors.As(err, &mysqlErr) && mysqlErr.Number == 1062 { return errors.New("已存在标题相同的数据!") } return errors.New("操作失败") @@ -135,7 +135,8 @@ func (pressReleasesDao) Create(req *pressreleases.CreateReq) (err error) { }, }).Error if err != nil { - if errors.Is(err, gorm.ErrDuplicatedKey) { + var mysqlErr *mysql.MySQLError + if errors.As(err, &mysqlErr) && mysqlErr.Number == 1062 { return errors.New("已存在标题相同的数据!") } return errors.New("操作失败")