- refactor defauther.UnionFindAuthBind

This commit is contained in:
gazebo
2019-03-08 15:55:51 +08:00
parent 7c3ad5ced6
commit 8bcf464193
6 changed files with 56 additions and 132 deletions

View File

@@ -4,8 +4,6 @@ import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/auth2"
"git.rosy.net.cn/jx-callback/business/auth2/authprovider"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
)
@@ -29,39 +27,10 @@ func (a *QRCodeAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthB
userQRInfo, err := api.DingDingQRCodeAPI.GetUserInfoByCode(code)
if err == nil {
globals.SugarLogger.Debugf("dingding qrcode VerifySecret code:%s, userQRInfo:%s", code, utils.Format4Output(userQRInfo, false))
db := dao.GetDB()
var authBind *model.AuthBind
if authBind, err = dao.GetAuthBind(db, "", AuthTypeQRCode, userQRInfo.OpenID); dao.IsNoRowsError(err) {
userHint := &auth2.UserBasic{
if authBindEx, err = a.UnionFindAuthBind(AuthTypeQRCode, []string{AuthTypeDingDing, AuthTypeStaff, AuthTypeQRCode}, userQRInfo.OpenID, userQRInfo.UnionID, userQRInfo); err == nil {
authBindEx.UserHint = &auth2.UserBasic{
Name: userQRInfo.Nickname,
}
if userQRInfo.UnionID != "" {
var authBindList []*model.AuthBind
if authBindList, err = dao.GetAuthBindsByAuthID2(db, userQRInfo.UnionID, []string{AuthTypeDingDing, AuthTypeStaff, AuthTypeQRCode}); err == nil && len(authBindList) > 0 {
authBind = authBindList[0]
authBind.Type = AuthTypeQRCode
authBind.AuthID = userQRInfo.OpenID
authBind.DetailData = string(utils.MustMarshal(userQRInfo))
authBindEx = &auth2.AuthBindEx{
AuthBind: *authBind,
UserHint: userHint,
}
err = a.AddAuthBind(authBindEx, "admin")
} else if dao.IsNoRowsError(err) {
err = nil
}
}
if err == nil && authBindEx == nil {
authBindEx = &auth2.AuthBindEx{
AuthBind: model.AuthBind{
Type: AuthTypeQRCode,
AuthID: userQRInfo.OpenID,
AuthID2: userQRInfo.UnionID,
DetailData: string(utils.MustMarshal(userQRInfo)),
},
UserHint: userHint,
}
}
}
}
return authBindEx, err