This commit is contained in:
suyl
2021-06-03 16:37:31 +08:00
parent 384aa5500a
commit f4aab63317

View File

@@ -161,7 +161,6 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri
user.Type = model.UserTypeConsumer | model.UserTypeStoreBoss // 先不区分商户与消息者 user.Type = model.UserTypeConsumer | model.UserTypeStoreBoss // 先不区分商户与消息者
createName := ctx.GetRealRemoteIP() createName := ctx.GetRealRemoteIP()
authType := auth2.AuthTypeMobile authType := auth2.AuthTypeMobile
mobile := &alipayapi.KeyMobile{}
if manTokenInfo != nil && mobileVerifyCode == "" { if manTokenInfo != nil && mobileVerifyCode == "" {
manUser, err2 := dao.GetUserByID(dao.GetDB(), "user_id", manTokenInfo.GetID()) manUser, err2 := dao.GetUserByID(dao.GetDB(), "user_id", manTokenInfo.GetID())
if err = err2; err != nil { if err = err2; err != nil {
@@ -218,21 +217,6 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri
user.Avatar = inAuthInfo.GetAvatar() 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 { if err = CreateUser(user, utils.LimitUTF8StringLen(createName, 32)); err == nil {
userProvider.UpdateLastLogin(user.GetID(), authType, ctx.GetRealRemoteIP()) userProvider.UpdateLastLogin(user.GetID(), authType, ctx.GetRealRemoteIP())
TryAddStoreBossRole4User(ctx, user) TryAddStoreBossRole4User(ctx, user)
@@ -245,8 +229,13 @@ func RegisterUserWithMobile(ctx *jxcontext.Context, user *model.User, mobileVeri
} }
} else if dao.IsDuplicateError(err) { } else if dao.IsDuplicateError(err) {
if user.LastLoginType != "" && user.LastLoginType == alipay.AuthType { if user.LastLoginType != "" && user.LastLoginType == alipay.AuthType {
outAuthInfo, err = auth2.BindUser(inAuthInfo, user) if user2, _ := dao.GetUserByID(dao.GetDB(), "mobile", user.GetMobile()); user2 != nil {
err = nil user.UserID = user2.GetID()
outAuthInfo, err = auth2.BindUser(inAuthInfo, user)
err = nil
} else {
err = auth2.ErrUserID2AlreadyExist
}
} else { } else {
err = auth2.ErrUserID2AlreadyExist err = auth2.ErrUserID2AlreadyExist
} }
@@ -422,7 +411,22 @@ func CreateUser(user *model.User, creatorName string) (err error) {
if user.GetEmail() == "" { if user.GetEmail() == "" {
user.Email = nil 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) dao.WrapAddIDCULDEntity(user, creatorName)
user.UserID = utils.GetUUID() user.UserID = utils.GetUUID()
user.Status = model.UserStatusNormal user.Status = model.UserStatusNormal