From f050ec926be8d27d3f89c22511de2ead7e4e6b22 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 24 Oct 2018 09:51:26 +0800 Subject: [PATCH] - avoid log 1062(duplicate key) mysql error --- business/model/dao/dao.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/business/model/dao/dao.go b/business/model/dao/dao.go index ea816df83..a2dce8fe8 100644 --- a/business/model/dao/dao.go +++ b/business/model/dao/dao.go @@ -5,7 +5,9 @@ import ( "reflect" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/orm" + "github.com/go-sql-driver/mysql" ) const ( @@ -130,10 +132,14 @@ func CreateEntity(db *DaoDB, item interface{}) (err error) { if db == nil { db = GetDB() } - err = utils.CallFuncLogError(func() error { - _, err = db.db.Insert(item) // todo 这里需要将ID赋值么? - return err - }, reflect.TypeOf(item).Name()) + if _, err = db.db.Insert(item); err != nil { + if mysqlErr, ok := err.(*mysql.MySQLError); ok { + if mysqlErr.Number == 1062 { + return err + } + } + globals.SugarLogger.Warnf("CreateEntity failed with error:%v", err) + } return err }