✨ 重新初始化项目
This commit is contained in:
68
oauth2/handle/user.go
Normal file
68
oauth2/handle/user.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package handle
|
||||
|
||||
import (
|
||||
"Lee-WineList/common/constant"
|
||||
"Lee-WineList/model/entity"
|
||||
"Lee-WineList/repository"
|
||||
"Lee-WineList/utils"
|
||||
"errors"
|
||||
"git.echol.cn/loser/logger/log"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// 获取普通用户信息
|
||||
func getUser(account string, loginType constant.LoginType, nikeName string, avatarUrl string) (userId string, err error) {
|
||||
// 根据登录类型获取用户信息
|
||||
|
||||
// 定义微信小程序信息
|
||||
//var unionId, openId, sessionKey string
|
||||
var mobile string
|
||||
// 定义用户信息
|
||||
var user entity.User
|
||||
switch loginType {
|
||||
case constant.LoginTypeWeChatMiniApp:
|
||||
mobile, err = utils.WeChatUtils().GetPhoneNumber(account)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if mobile == "" {
|
||||
err = errors.New("获取手机号失败")
|
||||
return
|
||||
}
|
||||
user.Phone = mobile
|
||||
user.Nickname = nikeName
|
||||
user.Avatar = avatarUrl
|
||||
default:
|
||||
user.Phone = account
|
||||
user.Nickname = nikeName
|
||||
user.Avatar = avatarUrl
|
||||
}
|
||||
|
||||
// 查询用户信息
|
||||
if err = repository.User().GetOrCreate(&user); err != nil {
|
||||
log.Errorf("获取用户信息或创建用户失败,错误信息:%s", err.Error())
|
||||
err = errors.New("登录失败,请联系管理员")
|
||||
return
|
||||
}
|
||||
|
||||
// 校验用户状态
|
||||
if user.Status == constant.UserStatusDisabled {
|
||||
err = errors.New("账户已被禁用")
|
||||
return
|
||||
}
|
||||
|
||||
// 异步缓存小程序SessionKey
|
||||
//go func() {
|
||||
// if loginType == constant.LoginTypeWeChatMiniApp {
|
||||
// // 缓存SessionKey
|
||||
// if client.Redis.Set(context.Background(), constant.WeChatSessionKey+user.Id, sessionKey, 3*24*time.Hour).Err() != nil {
|
||||
// log.Errorf("缓存SessionKey失败,用户Id:%s", user.Id)
|
||||
// }
|
||||
// }
|
||||
//}()
|
||||
|
||||
// 返回用户Id
|
||||
userId = strconv.Itoa(user.Id)
|
||||
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user