cc
This commit is contained in:
74
api/user.go
74
api/user.go
@@ -31,6 +31,7 @@ func InitUser(group *gin.RouterGroup) {
|
||||
userPublicGroup.GET("test", u.Test)
|
||||
userPublicGroup.POST("log", u.Log)
|
||||
userPublicGroup.POST("login", u.Login)
|
||||
userPublicGroup.POST("tydata_login", u.TyDataLogin)
|
||||
userPublicGroup.POST("h5_login", u.H5Login)
|
||||
userPublicGroup.POST("phone_login", u.PhoneLogin)
|
||||
userPublicGroup.POST("verify", u.GetVerify)
|
||||
@@ -128,6 +129,79 @@ func (u *User) Login(c *gin.Context) {
|
||||
u.TokenNext(c, user, authIdentifier, model.AUTHTYPE_WECHAT_MP)
|
||||
}
|
||||
|
||||
// 天远数据登录
|
||||
func (u *User) TyDataLogin(c *gin.Context) {
|
||||
var reqBody request.UserLoginReq
|
||||
|
||||
// 尝试将请求的 JSON body 绑定到 reqBody 结构体
|
||||
if err := c.ShouldBindJSON(&reqBody); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// 检查请求体中是否包含 code 字段
|
||||
if reqBody.Code == "" {
|
||||
response.FailWithMessage("code is required", c)
|
||||
return
|
||||
}
|
||||
|
||||
// Code获取用户信息
|
||||
wxResponse, err := userService.RequestWxTyData(reqBody.Code)
|
||||
if err != nil {
|
||||
response.FailWithMessage(fmt.Errorf("request weixin err:%w", err).Error(), c)
|
||||
return
|
||||
}
|
||||
authIdentifier := model.AuthIdentifier{
|
||||
OpenID: wxResponse.OpenId,
|
||||
UnionID: wxResponse.Unionid,
|
||||
}
|
||||
// 是否有匹配的校验信息
|
||||
authentications, err := userService.MatchingAuthentications(authIdentifier)
|
||||
|
||||
if err != nil {
|
||||
log.Printf("MatchingAuthentications Error:%v", err)
|
||||
response.FailWithMessage("系统错误,请稍后再试", c)
|
||||
return
|
||||
}
|
||||
var authentication model.Authentication
|
||||
if len(authentications) == 0 {
|
||||
authentication, err = userService.Register(model.User{}, model.AUTHTYPE_TYDATA, authIdentifier)
|
||||
if err != nil {
|
||||
log.Printf("注册用户错误:%v", err)
|
||||
response.FailWithMessage("系统错误,请稍后再试", c)
|
||||
return
|
||||
}
|
||||
//成功创建用户
|
||||
} else {
|
||||
// 校验信息是否有该平台
|
||||
hasWechatMP := false
|
||||
for _, auth := range authentications {
|
||||
if auth.AuthType == model.AUTHTYPE_TYDATA {
|
||||
hasWechatMP = true
|
||||
authentication = auth
|
||||
}
|
||||
}
|
||||
// 没有则创建该平台校验并关联用户
|
||||
if !hasWechatMP {
|
||||
userid := authentication.UserID
|
||||
authentication, err = userService.CreateAuthentications(userid, authIdentifier, model.AUTHTYPE_TYDATA)
|
||||
if err != nil {
|
||||
log.Printf("创建平台校验错误:%v", err)
|
||||
response.FailWithMessage("系统错误,请稍后再试", c)
|
||||
return
|
||||
}
|
||||
//成功校验该平台成功
|
||||
}
|
||||
}
|
||||
user, err := userService.GetUser(authentication.UserID)
|
||||
if err != nil {
|
||||
log.Printf("authentication获取关联用户失败:%v", err)
|
||||
response.FailWithMessage("系统错误,请稍后再试", c)
|
||||
return
|
||||
}
|
||||
u.TokenNext(c, user, authIdentifier, model.AUTHTYPE_TYDATA)
|
||||
}
|
||||
|
||||
// 公众号h5登录
|
||||
func (u *User) H5Login(c *gin.Context) {
|
||||
var reqBody request.H5UserLoginReq
|
||||
|
||||
Reference in New Issue
Block a user