go-common/app/interface/main/account/service/vip/associate_outer.go

101 lines
2.8 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package vip
import (
"bytes"
"context"
"go-common/app/interface/main/account/model"
v1 "go-common/app/service/main/vip/api"
"go-common/library/log"
)
// ElemeOAuthURI get ele oauth uri.
func (s *Service) ElemeOAuthURI(c context.Context, csrf string) string {
var buf bytes.Buffer
buf.WriteString(s.c.Vipproperty.EleOAuthURI)
buf.WriteString("?consumer_key=")
buf.WriteString(s.c.Vipproperty.EleConsumerKey)
buf.WriteString("&scope=user_basic_info&redirect_uri=")
buf.WriteString(s.c.Vipproperty.EleOAuthCallBackURI)
buf.WriteString("&state=")
buf.WriteString(csrf)
return buf.String()
}
// OpenIDByAuthCode third get open_id by auth code.
func (s *Service) OpenIDByAuthCode(c context.Context, a *model.ArgAuthCode) (res *model.OpenIDResp, err error) {
var (
data *model.OAuth2InfoResp
r *v1.RegisterOpenIDReply
)
//oauth2 token.
if data, err = s.vipDao.OAuth2ByCode(c, a); err != nil {
return
}
res = new(model.OpenIDResp)
if r, err = s.vipgRPC.RegisterOpenID(c, &v1.RegisterOpenIDReq{Mid: data.Mid, AppId: a.APPID}); err != nil {
return
}
res.OpenID = r.OpenId
return
}
// OpenAuthCallBack open auth callback[third->bilibili].
func (s *Service) OpenAuthCallBack(c context.Context, a *model.ArgOpenAuthCallBack) (uri string) {
var (
ret = "0"
err error
)
if _, err = s.vipgRPC.OpenAuthCallBack(c, &v1.OpenAuthCallBackReq{
Mid: a.Mid,
ThirdCode: a.ThirdCode,
AppId: a.AppID,
}); err != nil {
log.Error("vipSvc.OpenAuthCallBack(%+v) err(%+v)", a, err)
ret = "1"
}
uri = s.c.Vipproperty.ActivityURI + "?bind_ret=" + ret
return
}
// BilibiliPrizeGrant vip prize grant.
func (s *Service) BilibiliPrizeGrant(c context.Context, a *model.ArgBilibiliPrizeGrant) (res *v1.BilibiliPrizeGrantReply, err error) {
return s.vipgRPC.BilibiliPrizeGrant(c, &v1.BilibiliPrizeGrantReq{
PrizeKey: a.PrizeKey,
UniqueNo: a.UniqueNo,
OpenId: a.OpenID,
AppId: a.AppID,
})
}
// BilibiliVipGrant vip grant.
func (s *Service) BilibiliVipGrant(c context.Context, a *model.ArgBilibiliVipGrant) (err error) {
_, err = s.vipgRPC.BilibiliVipGrant(c, &v1.BilibiliVipGrantReq{
OpenId: a.OpenID,
AppId: a.AppID,
OutOpenId: a.OutOpenID,
OutOrderNo: a.OutOrderNO,
Duration: a.Duration,
})
return
}
// OpenBindByOutOpenID associate user bind by out_open_id [third -> bilibili].
func (s *Service) OpenBindByOutOpenID(c context.Context, a *model.ArgBind) (err error) {
_, err = s.vipgRPC.OpenBindByOutOpenID(c, &v1.OpenBindByOutOpenIDReq{
OpenId: a.OpenID,
OutOpenId: a.OutOpenID,
AppId: a.AppID,
})
return
}
// UserInfoByOpenID get userinfo by open_id.
func (s *Service) UserInfoByOpenID(c context.Context, a *model.ArgUserInfoByOpenID) (res *v1.UserInfoByOpenIDReply, err error) {
return s.vipgRPC.UserInfoByOpenID(c, &v1.UserInfoByOpenIDReq{
OpenId: a.OpenID,
Ip: a.IP,
AppId: a.AppID,
})
}