...
|
...
|
@@ -13,6 +13,7 @@ import ( |
|
|
"ability/models"
|
|
|
"ability/protocol"
|
|
|
s_sms "ability/services/sms"
|
|
|
s_im "ability/services/im"
|
|
|
|
|
|
"github.com/astaxie/beego"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/gocomm/common"
|
...
|
...
|
@@ -51,6 +52,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login |
|
|
user *models.Users
|
|
|
userInfo *models.UserInfo
|
|
|
result bool
|
|
|
checkImResponse *protocol.CheckImResponse
|
|
|
)
|
|
|
user, err = UserRepository.GetUsersByMobile(request.Phone)
|
|
|
if err != nil {
|
...
|
...
|
@@ -87,7 +89,18 @@ Success: |
|
|
if userInfo.Auth == "" {
|
|
|
userInfo.Auth = uid.NewV1().StringNoDash()
|
|
|
}
|
|
|
//TODO:更新
|
|
|
if checkImResponse,err=CheckIm(&protocol.CheckImRequest{
|
|
|
Uid:fmt.Sprintf("%v",userInfo.Id),
|
|
|
Uname:userInfo.Uname,
|
|
|
Icon:userInfo.Icon,
|
|
|
IsCreated:userInfo.ImToken=="",
|
|
|
});err!=nil{
|
|
|
return
|
|
|
}
|
|
|
userInfo.ImToken = checkImResponse.ImToken
|
|
|
if userInfo.CsAccount==0{
|
|
|
userInfo.CsAccount = checkImResponse.CsAccount
|
|
|
}
|
|
|
userInfo.AuthExp = time.Now().Add(time.Second*protocol.TokenExpire)
|
|
|
if err = UserRepository.UpdateUserInfoById(userInfo); err != nil {
|
|
|
return
|
...
|
...
|
@@ -312,3 +325,96 @@ Fail: |
|
|
}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func CheckIm(request *protocol.CheckImRequest)(rsp *protocol.CheckImResponse,err error){
|
|
|
var (
|
|
|
|
|
|
)
|
|
|
if beego.BConfig.RunMode != "prod" {
|
|
|
return
|
|
|
}
|
|
|
rsp =&protocol.CheckImResponse{}
|
|
|
if !request.IsCreated{
|
|
|
if err = imUserCreate(request,rsp);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
}else{
|
|
|
if err = imUserInfoUpdate(request,rsp);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
if err = imUserRefreshToken(request,rsp);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
//create
|
|
|
func imUserCreate(request *protocol.CheckImRequest,rsp *protocol.CheckImResponse)(err error){
|
|
|
var(
|
|
|
param s_im.UserCreate=s_im.UserCreate{
|
|
|
Accid:request.Uid,
|
|
|
Name:request.Uname,
|
|
|
Icon:request.Icon,
|
|
|
}
|
|
|
resp []byte
|
|
|
out s_im.UserCreateResult
|
|
|
)
|
|
|
if resp,err=s_im.DefaultImClient.Call(param);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
if err = json.Unmarshal(resp,&out);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
if out.Code!=200 || (out.Info.Accid!=request.Uid){
|
|
|
return s_im.ErrorFailCall
|
|
|
}
|
|
|
rsp.ImToken = out.Info.Token
|
|
|
return
|
|
|
}
|
|
|
//update user info
|
|
|
func imUserInfoUpdate(request *protocol.CheckImRequest,rsp *protocol.CheckImResponse)(err error){
|
|
|
var(
|
|
|
param s_im.UserUpdateUinfo=s_im.UserUpdateUinfo{
|
|
|
s_im.UserCreate{
|
|
|
Accid:request.Uid,
|
|
|
Name:request.Uname,
|
|
|
Icon:request.Icon,
|
|
|
},
|
|
|
}
|
|
|
resp []byte
|
|
|
out s_im.BaseResp
|
|
|
)
|
|
|
if resp,err=s_im.DefaultImClient.Call(param);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
if err = json.Unmarshal(resp,&out);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
if out.Code!=200{
|
|
|
return s_im.ErrorFailCall
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
//refresh token
|
|
|
func imUserRefreshToken(request *protocol.CheckImRequest,rsp *protocol.CheckImResponse)(err error){
|
|
|
var(
|
|
|
param s_im.UserRefreshToken=s_im.UserRefreshToken{
|
|
|
Accid:request.Uid,
|
|
|
}
|
|
|
resp []byte
|
|
|
out s_im.UserCreateResult
|
|
|
)
|
|
|
if resp,err=s_im.DefaultImClient.Call(param);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
if err = json.Unmarshal(resp,&out);err!=nil{
|
|
|
return
|
|
|
}
|
|
|
if out.Code!=200 || (out.Info.Accid!=request.Uid){
|
|
|
return s_im.ErrorFailCall
|
|
|
}
|
|
|
rsp.ImToken = out.Info.Token
|
|
|
return
|
|
|
}
|
|
|
|
|
|
|
...
|
...
|
|