diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index eceb0d664..c8b02c492 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -161,7 +161,6 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri user.Type = model.UserTypeConsumer | model.UserTypeStoreBoss // 先不区分商户与消息者 createName := ctx.GetRealRemoteIP() authType := auth2.AuthTypeMobile - mobile := &alipayapi.KeyMobile{} if manTokenInfo != nil && mobileVerifyCode == "" { manUser, err2 := dao.GetUserByID(dao.GetDB(), "user_id", manTokenInfo.GetID()) if err = err2; err != nil { @@ -218,21 +217,6 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri user.Avatar = inAuthInfo.GetAvatar() } } - //支付宝注册电话需要解密 - if user.GetMobile() != "" && user.GetName() != "" && user.GetID2() != "" { - if user.LastLoginType != "" && user.LastLoginType == alipay.AuthType { - data, _ := base64.StdEncoding.DecodeString(user.GetMobile()) - key, _ := base64.StdEncoding.DecodeString(alipay.AuthKey) - iv := []byte{} - iv = append(iv, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - if result, err := utils.AESCBCDecpryt(data, key, iv); err == nil && result != nil { - json.Unmarshal(result, &mobile) - } - user.Mobile = &mobile.Mobile - user.UserID2 = mobile.Mobile - user.Name = mobile.Mobile - } - } if err = CreateUser(user, utils.LimitUTF8StringLen(createName, 32)); err == nil { userProvider.UpdateLastLogin(user.GetID(), authType, ctx.GetRealRemoteIP()) TryAddStoreBossRole4User(ctx, user) @@ -245,8 +229,13 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri } } else if dao.IsDuplicateError(err) { if user.LastLoginType != "" && user.LastLoginType == alipay.AuthType { - outAuthInfo, err = auth2.BindUser(inAuthInfo, user) - err = nil + if user2, _ := dao.GetUserByID(dao.GetDB(), "mobile", user.GetMobile()); user2 != nil { + user.UserID = user2.GetID() + outAuthInfo, err = auth2.BindUser(inAuthInfo, user) + err = nil + } else { + err = auth2.ErrUserID2AlreadyExist + } } else { err = auth2.ErrUserID2AlreadyExist } @@ -422,7 +411,22 @@ func CreateUser(user *model.User, creatorName string) (err error) { if user.GetEmail() == "" { user.Email = nil } - + //支付宝注册电话需要解密 + if user.GetMobile() != "" && user.GetName() != "" && user.GetID2() != "" { + if user.LastLoginType != "" && user.LastLoginType == alipay.AuthType { + mobile := &alipayapi.KeyMobile{} + data, _ := base64.StdEncoding.DecodeString(user.GetMobile()) + key, _ := base64.StdEncoding.DecodeString(alipay.AuthKey) + iv := []byte{} + iv = append(iv, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + if result, err := utils.AESCBCDecpryt(data, key, iv); err == nil && result != nil { + json.Unmarshal(result, &mobile) + } + user.Mobile = &mobile.Mobile + user.UserID2 = mobile.Mobile + user.Name = mobile.Mobile + } + } dao.WrapAddIDCULDEntity(user, creatorName) user.UserID = utils.GetUUID() user.Status = model.UserStatusNormal