浏览代码

fix:登录

zqbao 9 月之前
父节点
当前提交
818e81900b
共有 2 个文件被更改,包括 13 次插入7 次删除
  1. 1 1
      controllers/user.go
  2. 12 6
      services/user.go

+ 1 - 1
controllers/user.go

@@ -105,7 +105,7 @@ func (this *UserAuthController) Login() {
 	_, errMsg, err := services.BindUser(session.UnionId, session.OpenId, req.Phone, req.Email, req.AreaCode)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "登录失败,系统处理中,请稍后重试"
-		if errMsg != `` {
+		if errMsg != "" {
 			br.Msg = errMsg
 		}
 		br.ErrMsg = "登录失败:" + err.Error()

+ 12 - 6
services/user.go

@@ -23,10 +23,10 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		return
 	}
-	var userId int64
+	var userId int
 	curTime := time.Now()
 	if userItem != nil {
-		userId = int64(userItem.UserId)
+		userId = userItem.UserId
 		if userItem.Phone != "" && userItem.Phone != phone {
 			errMsg = "该手机号已绑定其他微信号"
 			return
@@ -40,7 +40,6 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 				UserId:       userItem.UserId,
 				Phone:        phone,
 				AreaCode:     areaCode,
-				Status:       utils.UserStatusPotential,
 				RegisterTime: curTime,
 				ModifyTime:   curTime,
 			}
@@ -78,7 +77,7 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 			emailUser = tmpUser
 		}
 		// 理论上来说不会同时出现手机号和邮箱同时存在的情况
-		if phoneUser.UserId != emailUser.UserId {
+		if phoneUser != nil && emailUser != nil && phoneUser.UserId != emailUser.UserId {
 			errMsg = "该手机号和邮箱已绑定其他微信号"
 			err = errors.New("该手机号和邮箱已绑定其他微信号")
 			return
@@ -89,7 +88,6 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 		if emailUser != nil {
 			userItem = emailUser
 		}
-		var userId int
 		//如果查询出来的用户是nil,那么需要新增用户
 		if userItem == nil {
 			key := utils.CACHE_ACCESS_WX_BIND + phone + ":" + email
@@ -103,6 +101,7 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 				Phone:    phone,
 				AreaCode: areaCode,
 				Email:    email,
+				Status:   utils.UserStatusPotential,
 				OpenId:   openId,
 				UnionId:  unionId,
 			}
@@ -117,13 +116,20 @@ func BindUser(unionId, openId, phone, email, areaCode string) (userItem *models.
 			userId = int(tmpUserId)
 			userItem, err = models.GetUserById(userId)
 		} else {
+			userItem.OpenId = openId
+			userItem.UnionId = unionId
+			err = userItem.Update([]string{"open_id", "union_id"})
+			if err != nil {
+				errMsg = "用户绑定失败"
+				return
+			}
 			userId = userItem.UserId
 		}
 	}
 
 	//如果该用户 绑定注册状态 字段处于 未注册 的情况下,那么去修改该数据
 	if !userItem.IsRegistered {
-		err = models.ModifyUserRegisterStatus(int(userId), true, curTime, curTime)
+		err = models.ModifyUserRegisterStatus(userId, true, curTime, curTime)
 		if err != nil {
 			return
 		}