diff --git a/business/jxstore/cms/user.go b/business/jxstore/cms/user.go index 87cc52d3e..b813b6ecc 100644 --- a/business/jxstore/cms/user.go +++ b/business/jxstore/cms/user.go @@ -72,8 +72,9 @@ func BindMobile2Store(mobile string, storeID int) (num int64, err error) { if err == nil { num, err = dao.UpdateEntity(db, user, "JxStoreID") } else { - err = dao.CreateEntity(db, user) - num = 1 + if err = createUserAndSetOpenIDNull(db, user); err == nil { + num = 1 + } } } return num, err @@ -93,8 +94,9 @@ func AddMobile2Mobile(parentMobile, mobile string) (num int64, err error) { if err == nil { num, err = dao.UpdateEntity(db, user, "ParentID") } else { - err = dao.CreateEntity(db, user) - num = 1 + if err = createUserAndSetOpenIDNull(db, user); err == nil { + num = 1 + } } } } @@ -140,3 +142,17 @@ func verifyMobileHasNoMembers(db *dao.DaoDB, mobile string) (err error) { } return err } + +func createUserAndSetOpenIDNull(db *dao.DaoDB, user *model.WeiXins) (err error) { + dao.Begin(db) + if err = dao.CreateEntity(db, user); err != nil { + dao.Rollback(db) + return err + } + if _, err = dao.ExecuteSQL(db, "UPDATE weixins SET openid = NULL WHERE mobile = ?", user.Tel); err != nil { + dao.Rollback(db) + return err + } + dao.Commit(db) + return err +}