Browse Source

fix(用户体系):第三方用户(微信)第一次绑定 手机号/邮箱 的时候,需要修改对应的绑定信息

Roc 3 years ago
parent
commit
3a01a86023
4 changed files with 159 additions and 140 deletions
  1. 18 19
      controllers/user.go
  2. 18 18
      controllers/user_pc.go
  3. 13 2
      models/wx_user.go
  4. 110 101
      services/user.go

+ 18 - 19
controllers/user.go

@@ -22,7 +22,7 @@ type UserCommonController struct {
 }
 
 //用户不登录
-type UserNotAuthController struct{
+type UserNotAuthController struct {
 	BaseNotAuthController
 }
 
@@ -60,10 +60,10 @@ func (this *UserController) Detail() {
 	}
 	//新增访问日志
 	{
-		record:=new(models.UserAccessRecord)
-		record.Uid=user.UserId
-		record.Token=this.Token
-		record.CreateTime=time.Now()
+		record := new(models.UserAccessRecord)
+		record.Uid = user.UserId
+		record.Token = this.Token
+		record.CreateTime = time.Now()
 		go models.AddUserAccessRecord(record)
 	}
 	item.UserPermission = userPermission
@@ -328,10 +328,9 @@ func (this *UserNotAuthController) Login() {
 		br.ErrMsg = "无效的登录方式,Err:" + err.Error()
 		return
 	}
-	user,err = services.BindWxUser(openId,req.Mobile,req.Email)
+	user, err = services.BindWxUser(openId, req.Mobile, req.Email, 1)
 	userId := user.UserId
 
-
 	var token string
 	tokenItem, err := models.GetTokenByOpenId(openId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -362,7 +361,7 @@ func (this *UserNotAuthController) Login() {
 		}
 	} else {
 		token = tokenItem.AccessToken
-		_ = models.UpdateSession(tokenItem.SessionId,userId,time.Now().AddDate(0, 1, 0))
+		_ = models.UpdateSession(tokenItem.SessionId, userId, time.Now().AddDate(0, 1, 0))
 	}
 	userPermission, err := services.CheckUserPermission(userId)
 	if err != nil {
@@ -382,11 +381,11 @@ func (this *UserNotAuthController) Login() {
 		loginLog := new(models.WxUserLog)
 		loginLog.UserId = userId
 		loginLog.OpenId = openId
-		loginLog.Mobile=req.Mobile
-		loginLog.Email=req.Email
+		loginLog.Mobile = req.Mobile
+		loginLog.Email = req.Email
 		loginLog.CreateTime = time.Now()
-		loginLog.Handle="wechat_user_login"
-		loginLog.Remark=token
+		loginLog.Handle = "wechat_user_login"
+		loginLog.Remark = token
 		go models.AddWxUserLog(loginLog)
 	}
 
@@ -399,6 +398,7 @@ func (this *UserNotAuthController) Login() {
 	br.Data = resp
 	br.Msg = "登录成功"
 }
+
 //func (this *UserController) Login() {
 //	br := new(models.BaseResponse).Init()
 //	defer func() {
@@ -622,7 +622,7 @@ func (this *UserNotAuthController) Test() {
 		this.ServeJSON()
 	}()
 	openid := "oN0jD1S3P-FVosLhq-YiVOXldtRo"
-	wxUser,err := services.GetWxUserItemByOpenId(openid)
+	wxUser, err := services.GetWxUserItemByOpenId(openid)
 	fmt.Println(err)
 	fmt.Println(wxUser)
 	fmt.Println("-----------")
@@ -635,31 +635,30 @@ func (this *UserNotAuthController) Test() {
 	userId := 12274
 	userId = 12018
 	platform := 2
-	wxUser,err = services.GetWxUserItemByUserId(userId,platform)
+	wxUser, err = services.GetWxUserItemByUserId(userId, platform)
 	fmt.Println(err)
 	fmt.Println(wxUser)
 	fmt.Println("根据用户id获取结束-----------")
 
 	mobile := "18170239278"
-	wxUser,err = services.GetWxUserItemByMobile(mobile,platform)
+	wxUser, err = services.GetWxUserItemByMobile(mobile, platform)
 	fmt.Println(err)
 	fmt.Println(wxUser)
 	fmt.Println("根据手机号获取结束-----------")
 
 	email := "984198890@qq.com"
-	wxUser,err = services.GetWxUserItemByEmail(email,platform)
+	wxUser, err = services.GetWxUserItemByEmail(email, platform)
 	fmt.Println(err)
 	fmt.Println(wxUser)
 	fmt.Println("根据邮箱获取结束-----------")
 
 	unionId := "o1q5cwOzXXA9Hy9PTEIwxP81Casg"
-	wxUser,err = services.GetWxUserItemByUnionId(unionId,platform)
+	wxUser, err = services.GetWxUserItemByUnionId(unionId, platform)
 	fmt.Println(err)
 	fmt.Println(wxUser)
 	fmt.Println("根据unionid获取结束-----------")
 
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "验证码正确"
-}
+}

+ 18 - 18
controllers/user_pc.go

@@ -14,7 +14,7 @@ import (
 )
 
 //用户不登录
-type UserPcNotAuthController struct{
+type UserPcNotAuthController struct {
 	BasePcNotAuthController
 }
 
@@ -363,8 +363,8 @@ func (this *UserPcNotAuthController) PcLogin() {
 	var companyName, status, endDate, productName string
 	for _, v := range cp {
 		companyName = v.CompanyName
-		if v.EndDate=="0000-00-00" {
-			v.EndDate=""
+		if v.EndDate == "0000-00-00" {
+			v.EndDate = ""
 		}
 		if status != "" {
 			status = status + "/" + v.Status
@@ -385,15 +385,15 @@ func (this *UserPcNotAuthController) PcLogin() {
 	{
 		loginLog := new(models.WxUserLog)
 		loginLog.UserId = userId
-		loginLog.Mobile=req.Mobile
-		loginLog.Email=req.Email
-		loginLog.Handle="pc_login"
+		loginLog.Mobile = req.Mobile
+		loginLog.Email = req.Email
+		loginLog.Handle = "pc_login"
 		loginLog.CreateTime = time.Now()
 		go models.AddWxUserLog(loginLog)
 	}
 
 	//newUser, _ := models.GetWxUserItemByUserId(userId)
-	newUser, _ := services.GetWxUserItemByUserId(userId,utils.WxPcPlatform)
+	newUser, _ := services.GetWxUserItemByUserId(userId, utils.WxPcPlatform)
 	resp := new(models.LoginResp)
 	resp.UserId = newUser.UserId
 	resp.UserPermission = userPermission
@@ -500,9 +500,9 @@ func (this *UserPcNotAuthController) PcBind() {
 		return
 	}
 
-	user,err := services.BindWxUser(openId,req.Mobile,req.Email)
-	if err != nil{
-		br.Msg = "绑定失败:"+err.Error()
+	user, err := services.BindWxUser(openId, req.Mobile, req.Email, 2)
+	if err != nil {
+		br.Msg = "绑定失败:" + err.Error()
 		return
 	}
 	userId := user.UserId
@@ -536,7 +536,7 @@ func (this *UserPcNotAuthController) PcBind() {
 		}
 	} else {
 		token = tokenItem.AccessToken
-		_ = models.UpdateSession(tokenItem.SessionId,userId,time.Now().AddDate(0, 1, 0))
+		_ = models.UpdateSession(tokenItem.SessionId, userId, time.Now().AddDate(0, 1, 0))
 	}
 	userPermission, err := services.CheckUserPermission(userId)
 	if err != nil {
@@ -581,13 +581,13 @@ func (this *UserPcNotAuthController) PcBind() {
 	//新增登录日志
 	{
 		loginLog := new(models.WxUserLog)
-		loginLog.UnionId=unionId
+		loginLog.UnionId = unionId
 		loginLog.UserId = userId
-		loginLog.Mobile=req.Mobile
-		loginLog.Email=req.Email
-		loginLog.UnionId=unionId
-		loginLog.Handle="pc_bind"
-		loginLog.Remark=strconv.Itoa(userId)
+		loginLog.Mobile = req.Mobile
+		loginLog.Email = req.Email
+		loginLog.UnionId = unionId
+		loginLog.Handle = "pc_bind"
+		loginLog.Remark = strconv.Itoa(userId)
 		loginLog.CreateTime = time.Now()
 		go models.AddWxUserLog(loginLog)
 	}
@@ -621,7 +621,7 @@ func (this *UserPcNotAuthController) CheckLogin() {
 		this.ServeJSON()
 	}()
 	//没有用户信息,代表是没有登录
-	if this.User == nil{
+	if this.User == nil {
 		br.Success = true
 		br.Ret = 408
 		return

+ 13 - 2
models/wx_user.go

@@ -45,6 +45,8 @@ type WxUser struct {
 	RegisterPlatform int       `description:"注册平台,1:微信端,2:PC网页端"`
 	IsFreeLogin      bool      `description:"是否免登陆,true:免登陆,false:非免登陆"`
 	LoginTime        time.Time `description:"最近一次登录时间"`
+	IsRegister       int       `description:"是否注册:1:已注册,0:未注册"`
+	Source           int       `description:"绑定来源,1:微信端,2:pc网页端,3:查研观向小程序,4:每日咨询"`
 }
 
 type WxUserItem struct {
@@ -64,6 +66,7 @@ type WxUserItem struct {
 	LoginTime       time.Time `description:"登录时间"`
 	CreatedTime     time.Time `description:"创建时间"`
 	LastUpdatedTime time.Time `description:"最近一次修改时间"`
+	IsRegister      int       `description:"是否注册:1:已注册,0:未注册"`
 }
 
 func GetWxUserItemByUserId(userId int) (item *WxUserItem, err error) {
@@ -441,7 +444,7 @@ func ModifyWxUserUnionId(unionId string, userId int) (err error) {
 	return
 }
 
-func GetWxUserAll()(items []*WxUserItem, err error) {
+func GetWxUserAll() (items []*WxUserItem, err error) {
 	sql := ` SELECT a.* FROM wx_user AS a 
 			INNER JOIN company_product AS b ON a.company_id=b.company_id
 			WHERE b.status IN('正式','试用')
@@ -449,4 +452,12 @@ func GetWxUserAll()(items []*WxUserItem, err error) {
 	o := orm.NewOrm()
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
-}
+}
+
+//变更联系人是否已注册状态
+func ModifyWxUserRegisterStatus(userId, status, source int, registerTime time.Time) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE wx_user SET is_register=?,soruce=?,register_time=? WHERE user_id = ? `
+	_, err = o.Raw(sql, status, source, registerTime, userId).Exec()
+	return
+}

+ 110 - 101
services/user.go

@@ -12,14 +12,14 @@ var ERR_NO_USER_RECORD = errors.New("用户关系没有入库")
 var ERR_USER_NOT_BIND = errors.New("用户没有绑定")
 
 //通过openid获取用户信息
-func GetWxUserItemByOpenId(openid string)  (item *models.WxUserItem,err error){
+func GetWxUserItemByOpenId(openid string) (item *models.WxUserItem, err error) {
 	//通过openid获取用户关联信息
-	userRecord,userRecordErr := models.GetUserRecordByOpenId(openid)
-	if userRecordErr != nil{
-		if userRecordErr.Error() == utils.ErrNoRow(){
+	userRecord, userRecordErr := models.GetUserRecordByOpenId(openid)
+	if userRecordErr != nil {
+		if userRecordErr.Error() == utils.ErrNoRow() {
 			err = ERR_NO_USER_RECORD
 			return
-		}else{
+		} else {
 			err = userRecordErr
 			return
 		}
@@ -32,85 +32,85 @@ func GetWxUserItemByOpenId(openid string)  (item *models.WxUserItem,err error){
 	}
 
 	//该openid没有绑定用户
-	if userRecord.UserId <= 0{
+	if userRecord.UserId <= 0 {
 		err = ERR_USER_NOT_BIND
 		item = new(models.WxUserItem)
 		//格式化返回用户数据
-		formatWxUserAndUserRecord(item,userRecord)
+		formatWxUserAndUserRecord(item, userRecord)
 		return
 	}
 
 	//获取用户信息
-	item,wxUserErr := models.GetWxUserItemByUserId(userRecord.UserId)
-	if wxUserErr != nil{
+	item, wxUserErr := models.GetWxUserItemByUserId(userRecord.UserId)
+	if wxUserErr != nil {
 		err = wxUserErr
 
 		//如果是下面这个错误,那么这个可能是用户信息被删除,然后user_record表没有移除该条记录所绑定的user_id信息
-		if wxUserErr.Error() == utils.ErrNoRow(){
+		if wxUserErr.Error() == utils.ErrNoRow() {
 			err = errors.New("用户信息不存在")
 		}
 		return
 	}
 	//格式化返回用户数据
-	formatWxUserAndUserRecord(item,userRecord)
+	formatWxUserAndUserRecord(item, userRecord)
 	return
 }
 
 //根据用户id和平台id获取用户信息
-func GetWxUserItemByUserId(userId,platform int)  (wxUserItem *models.WxUserItem,err error){
+func GetWxUserItemByUserId(userId, platform int) (wxUserItem *models.WxUserItem, err error) {
 	//获取用户信息
-	wxUserItem,wxUserErr := models.GetWxUserItemByUserId(userId)
-	if wxUserErr != nil{
+	wxUserItem, wxUserErr := models.GetWxUserItemByUserId(userId)
+	if wxUserErr != nil {
 		err = wxUserErr
 		return
 	}
 	//格式化返回用户数据
-	formatWxUser(wxUserItem,platform)
+	formatWxUser(wxUserItem, platform)
 	return
 }
 
 //根据用户邮箱和平台id获取用户信息
-func GetWxUserItemByEmail(email string,platform int) (wxUserItem *models.WxUserItem,err error) {
+func GetWxUserItemByEmail(email string, platform int) (wxUserItem *models.WxUserItem, err error) {
 	//获取用户信息
-	wxUserItem,wxUserErr := models.GetWxUserItemByEmail(email)
-	if wxUserErr != nil{
+	wxUserItem, wxUserErr := models.GetWxUserItemByEmail(email)
+	if wxUserErr != nil {
 		err = wxUserErr
 		return
 	}
 
 	//格式化返回用户数据
-	formatWxUser(wxUserItem,platform)
+	formatWxUser(wxUserItem, platform)
 	return
 }
 
 //根据用户手机号和平台id获取用户信息
-func GetWxUserItemByMobile(mobile string,platform int) (wxUserItem *models.WxUserItem,err error) {
+func GetWxUserItemByMobile(mobile string, platform int) (wxUserItem *models.WxUserItem, err error) {
 	//获取用户信息
-	wxUserItem,wxUserErr := models.GetWxUserItemByMobile(mobile)
-	if wxUserErr != nil{
+	wxUserItem, wxUserErr := models.GetWxUserItemByMobile(mobile)
+	if wxUserErr != nil {
 		err = wxUserErr
 		return
 	}
 	//格式化返回用户数据
-	formatWxUser(wxUserItem,platform)
+	formatWxUser(wxUserItem, platform)
 	return
 }
 
 //根据用户unionid和平台id获取用户信息
-func GetWxUserItemByUnionId(unionId string,platform int) (wxUserItem *models.WxUserItem,err error) {
+func GetWxUserItemByUnionId(unionId string, platform int) (wxUserItem *models.WxUserItem, err error) {
 	//获取用户信息
-	wxUserItem,wxUserErr := models.GetWxUserItemByUnionid(unionId)
-	if wxUserErr != nil{
+	wxUserItem, wxUserErr := models.GetWxUserItemByUnionid(unionId)
+	if wxUserErr != nil {
 		err = wxUserErr
 		return
 	}
 	//格式化返回用户数据
-	formatWxUser(wxUserItem,platform)
+	formatWxUser(wxUserItem, platform)
 	return
 }
 
 //通过用户 关系表记录  和  用户记录  格式化返回 用户数据
-func formatWxUserAndUserRecord(wxUser *models.WxUserItem,userRecord *models.UserRecord)  {
+func formatWxUserAndUserRecord(wxUser *models.WxUserItem, userRecord *models.UserRecord) {
 	wxUser.OpenId = userRecord.OpenId
 	wxUser.UnionId = userRecord.UnionId
 	wxUser.NickName = userRecord.NickName
@@ -120,14 +120,14 @@ func formatWxUserAndUserRecord(wxUser *models.WxUserItem,userRecord *models.User
 }
 
 //通过用户 用户记录  和  来源平台  格式化返回 用户数据
-func formatWxUser(wxUser *models.WxUserItem,platform int)  {
+func formatWxUser(wxUser *models.WxUserItem, platform int) {
 	//根据用户id和平台id获取用户关系
-	userRecord,userRecordErr := models.GetUserRecordByUserId(wxUser.UserId,platform)
-	if userRecordErr != nil{
-		if userRecordErr.Error() != utils.ErrNoRow(){
+	userRecord, userRecordErr := models.GetUserRecordByUserId(wxUser.UserId, platform)
+	if userRecordErr != nil {
+		if userRecordErr.Error() != utils.ErrNoRow() {
 			return
 		}
-		if userRecordErr.Error() == utils.ErrNoRow(){
+		if userRecordErr.Error() == utils.ErrNoRow() {
 			return
 		}
 	}
@@ -147,16 +147,17 @@ func formatWxUser(wxUser *models.WxUserItem,platform int)  {
 }
 
 //用户绑定
-func BindWxUser(openid,mobile,email string) (wxUser *models.WxUserItem,err error)  {
-	if mobile == "" && email == ""{
+func BindWxUser(openid, mobile, email string, registerPlatform int) (wxUser *models.WxUserItem, err error) {
+	source := 1 //绑定来源,1:微信端,2:pc网页端,3:查研观向小程序,4:每日咨询
+	if mobile == "" && email == "" {
 		err = errors.New("手机号或邮箱必填一个")
 		return
 	}
 	var bindAccount string
 	//根据手机号获取用户信息
-	if mobile != ""{
-		tmpWxUser,wxUserErr := models.GetWxUserItemByMobile(mobile)
-		if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow(){
+	if mobile != "" {
+		tmpWxUser, wxUserErr := models.GetWxUserItemByMobile(mobile)
+		if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow() {
 			err = wxUserErr
 			return
 		}
@@ -164,9 +165,9 @@ func BindWxUser(openid,mobile,email string) (wxUser *models.WxUserItem,err error
 		bindAccount = mobile
 	}
 	//根据邮箱获取用户信息
-	if wxUser == nil && email != ""{
-		tmpWxUser,wxUserErr := models.GetWxUserItemByEmail(email)
-		if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow(){
+	if wxUser == nil && email != "" {
+		tmpWxUser, wxUserErr := models.GetWxUserItemByEmail(email)
+		if wxUserErr != nil && wxUserErr.Error() != utils.ErrNoRow() {
 			err = wxUserErr
 			return
 		}
@@ -175,69 +176,79 @@ func BindWxUser(openid,mobile,email string) (wxUser *models.WxUserItem,err error
 	}
 
 	//查询openid的第三方(微信)信息
-	userRecord,err := models.GetUserRecordByOpenId(openid)
-	if err != nil{
+	userRecord, err := models.GetUserRecordByOpenId(openid)
+	if err != nil {
 		return
 	}
 
-
 	var userId int
 	//如果查询出来的用户是nil,那么需要新增用户
-	if wxUser == nil{
+	if wxUser == nil {
 		user := &models.WxUser{
-			CompanyId:1,
-			CreatedTime:time.Now(),
-			FirstLogin:1,
-			Enabled:1,
-			RegisterPlatform:1,
-			RegisterTime:time.Now(),
-			Mobile: mobile,
-			Email: email,
+			CompanyId:        1,
+			CreatedTime:      time.Now(),
+			FirstLogin:       1,
+			Enabled:          1,
+			RegisterPlatform: registerPlatform, //账号注册来源,注册平台,1:微信端,2:PC网页端
+			RegisterTime:     time.Now(),
+			Mobile:           mobile,
+			Email:            email,
+			IsRegister:       1,
+			Source:           source,
 		}
 		tmpUserId, addUserErr := models.AddWxUser(user)
-		if err != nil{
+		if err != nil {
 			err = addUserErr
 			return
 		}
 		user.UserId = int(tmpUserId)
 		userId = int(tmpUserId)
-		wxUser,err  = models.GetWxUserItemByUserId(userId)
-	}else{
+		wxUser, err = models.GetWxUserItemByUserId(userId)
+	} else {
 		userId = wxUser.UserId
 	}
 	//如果存在该手机号/邮箱,那么需要校验
-	if userRecord.UserId > 0 && userRecord.UserId != userId{
+	if userRecord.UserId > 0 && userRecord.UserId != userId {
 		err = errors.New("用户已绑定,不允许重复绑定")
 		return
 	}
-	if userRecord.UserId == 0{
-		err = models.BindUserRecordByOpenid(userId,openid,bindAccount)
-		if err != nil{
+	if userRecord.UserId == 0 {
+		err = models.BindUserRecordByOpenid(userId, openid, bindAccount)
+		if err != nil {
 			return
 		}
 		userRecord.UserId = userId
 	}
 
 	//如果当前该第三方用户信息的昵称为空串的话,那么需要去查询该用户的第一个绑定信息的数据作为来源做数据修复
-	if userRecord.NickName == ""{
+	if userRecord.NickName == "" {
 		oldUserRecord, err := models.GetUserThirdRecordByUserId(userId)
-		if err == nil && oldUserRecord != nil{
+		if err == nil && oldUserRecord != nil {
 			//如果该用户绑定的第一条数据的头像信息不为空串,那么就去做新数据的修复
-			if oldUserRecord.NickName != ""{
-				_ = models.ModifyUserRecordInfo(userRecord.OpenId,oldUserRecord.NickName, oldUserRecord.Headimgurl, oldUserRecord.City, oldUserRecord.Province, oldUserRecord.Country, oldUserRecord.Sex, userId)
+			if oldUserRecord.NickName != "" {
+				_ = models.ModifyUserRecordInfo(userRecord.OpenId, oldUserRecord.NickName, oldUserRecord.Headimgurl, oldUserRecord.City, oldUserRecord.Province, oldUserRecord.Country, oldUserRecord.Sex, userId)
 			}
 		}
 	}
+
+	//如果该用户 绑定注册状态 字段处于 未注册 的情况下,那么去修改该数据
+	if wxUser.IsRegister == 0 {
+		err = models.ModifyWxUserRegisterStatus(userId, 1, source, time.Now())
+		if err != nil {
+			return
+		}
+	}
+
 	//格式化用户数据
-	formatWxUserAndUserRecord(wxUser,userRecord)
+	formatWxUserAndUserRecord(wxUser, userRecord)
 	return
 }
 
 //微信登录
-func WxLogin(wxPlatform int,code string,wxAccessToken *WxAccessToken,wxUserInfo *WxUserInfo)(token string,userId,firstLogin,permission int,err error){
+func WxLogin(wxPlatform int, code string, wxAccessToken *WxAccessToken, wxUserInfo *WxUserInfo) (token string, userId, firstLogin, permission int, err error) {
 	openId := wxAccessToken.Openid
 	unionId := wxAccessToken.Unionid
-	if unionId == ""{
+	if unionId == "" {
 		unionId = wxUserInfo.Unionid
 	}
 
@@ -246,25 +257,25 @@ func WxLogin(wxPlatform int,code string,wxAccessToken *WxAccessToken,wxUserInfo
 
 QUERY_WX_USER:
 	wxUser, wxUserErr := GetWxUserItemByOpenId(openId)
-	if wxUserErr == ERR_NO_USER_RECORD{	//没有用户openid记录
-		_,recordErr := AddUserRecord(openId,unionId,wxUserInfo.Nickname,"",wxUserInfo.Province,wxUserInfo.City,wxUserInfo.Country,wxUserInfo.Headimgurl,"",wxPlatform,wxUserInfo.Sex,0)
+	if wxUserErr == ERR_NO_USER_RECORD { //没有用户openid记录
+		_, recordErr := AddUserRecord(openId, unionId, wxUserInfo.Nickname, "", wxUserInfo.Province, wxUserInfo.City, wxUserInfo.Country, wxUserInfo.Headimgurl, "", wxPlatform, wxUserInfo.Sex, 0)
 		//如果插入失败,那么直接将错误信息返回
-		if recordErr != nil{
+		if recordErr != nil {
 			err = recordErr
 			return
 		}
 		//插入成功后,需要重新查询该用户,并进入下面的逻辑
 		goto QUERY_WX_USER
-	}else if wxUserErr == ERR_USER_NOT_BIND{
+	} else if wxUserErr == ERR_USER_NOT_BIND {
 		//没有用户信息
 		//wxUser.FirstLogin = 1
-	}else if wxUserErr != nil{
+	} else if wxUserErr != nil {
 		err = wxUserErr
 		return
 	}
 
 	//如果已经登录注册绑定的情况下
-	if wxUser != nil && wxUserErr == nil{
+	if wxUser != nil && wxUserErr == nil {
 		//获取用户权限
 		firstLogin = wxUser.FirstLogin
 		userId = wxUser.UserId
@@ -276,7 +287,7 @@ QUERY_WX_USER:
 		}
 
 		if wxUserInfo != nil {
-			go models.ModifyUserRecordInfo(openId,wxUserInfo.Nickname, wxUserInfo.Headimgurl, wxUserInfo.City, wxUserInfo.Province, wxUserInfo.Country, wxUserInfo.Sex, userId)
+			go models.ModifyUserRecordInfo(openId, wxUserInfo.Nickname, wxUserInfo.Headimgurl, wxUserInfo.City, wxUserInfo.Province, wxUserInfo.Country, wxUserInfo.Sex, userId)
 		}
 
 		{
@@ -287,21 +298,20 @@ QUERY_WX_USER:
 			codeLog.FirstLogin = firstLogin
 			codeLog.Authorization = token
 			codeLog.UserPermission = permission
-			codeLog.CreateTime=time.Now()
+			codeLog.CreateTime = time.Now()
 			models.AddWxUserCode(codeLog)
 		}
 		if wxUser.Mobile == "" && wxUser.Email == "" {
 			firstLogin = 1
-		}else{
+		} else {
 			firstLogin = 0
 		}
 	}
 
-
 	//获取登录token
 	tokenItem, tokenErr := models.GetTokenByOpenId(openId)
 	if tokenErr != nil && tokenErr.Error() != utils.ErrNoRow() {
-		err  = errors.New("登录失败,获取token失败:" + tokenErr.Error())
+		err = errors.New("登录失败,获取token失败:" + tokenErr.Error())
 		return
 	}
 
@@ -320,15 +330,15 @@ QUERY_WX_USER:
 			session.AccessToken = token
 			sessionErr := models.AddSession(session)
 			if err != nil {
-				err  = errors.New("登录失败,新增用户session信息失败:" + sessionErr.Error())
+				err = errors.New("登录失败,新增用户session信息失败:" + sessionErr.Error())
 				return
 			}
 		}
 	} else {
 		token = tokenItem.AccessToken
 		//如果联系人编号不为空,且联系人编号与session里面的联系人编号不一致的时候,需要做session变更
-		if userId > 0 && tokenItem.UserId != userId{
-			_ = models.UpdateSession(tokenItem.SessionId,userId,time.Now().AddDate(0, 1, 0))
+		if userId > 0 && tokenItem.UserId != userId {
+			_ = models.UpdateSession(tokenItem.SessionId, userId, time.Now().AddDate(0, 1, 0))
 		}
 	}
 
@@ -346,36 +356,35 @@ QUERY_WX_USER:
 	return
 }
 
-
 //添加第三方用户(微信)记录
-func AddUserRecord(openId,unionId,nickName,realName,province,city,country,headimgurl,sessionKey string,platform,sex,subscribe int) (userRecord *models.UserRecord,err error) {
-	find,err := models.GetUserRecordByOpenId(openId)
-	if err != nil && err.Error() != utils.ErrNoRow(){
+func AddUserRecord(openId, unionId, nickName, realName, province, city, country, headimgurl, sessionKey string, platform, sex, subscribe int) (userRecord *models.UserRecord, err error) {
+	find, err := models.GetUserRecordByOpenId(openId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		return
 	}
-	if find != nil{
+	if find != nil {
 		userRecord = find
 		return
 	}
 	userRecord = &models.UserRecord{
-		OpenId :openId,	//用户open_id
-		UnionId :unionId,//用户union_id
-		Subscribe :subscribe,
-		NickName :nickName,	//用户昵称,最大长度:32
-		RealName :realName,	//用户实际名称,最大长度:32
-		Sex :sex,	//普通用户性别,1为男性,2为女性
-		Province :province,//普通用户个人资料填写的省份,最大长度:30
-		City :city,	//普通用户个人资料填写的城市,最大长度:30
-		Country :country,	//国家,如中国为CN,最大长度:30
-		Headimgurl :headimgurl,	//用户第三方(微信)头像,最大长度:512
-		CreateTime :time.Now(),	//创建时间,关系添加时间、用户授权时间
-		CreatePlatform :platform,	//注册平台,1:日度点评公众号,2:管理后台,3:pc端网站,4:查研观向小程序;默认:1
-		SessionKey :sessionKey,	//微信小程序会话密钥,最大长度:255
+		OpenId:         openId,  //用户open_id
+		UnionId:        unionId, //用户union_id
+		Subscribe:      subscribe,
+		NickName:       nickName,   //用户昵称,最大长度:32
+		RealName:       realName,   //用户实际名称,最大长度:32
+		Sex:            sex,        //普通用户性别,1为男性,2为女性
+		Province:       province,   //普通用户个人资料填写的省份,最大长度:30
+		City:           city,       //普通用户个人资料填写的城市,最大长度:30
+		Country:        country,    //国家,如中国为CN,最大长度:30
+		Headimgurl:     headimgurl, //用户第三方(微信)头像,最大长度:512
+		CreateTime:     time.Now(), //创建时间,关系添加时间、用户授权时间
+		CreatePlatform: platform,   //注册平台,1:日度点评公众号,2:管理后台,3:pc端网站,4:查研观向小程序;默认:1
+		SessionKey:     sessionKey, //微信小程序会话密钥,最大长度:255
 	}
 	recordId, err := models.AddUserRecord(userRecord)
-	if err !=nil{
+	if err != nil {
 		return
 	}
 	userRecord.UserRecordId = int(recordId)
 	return
-}
+}