245 lines
8.8 KiB
Go
245 lines
8.8 KiB
Go
|
package dao
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
eleclient "go-common/app/service/main/vip/dao/ele-api-client"
|
||
|
"go-common/app/service/main/vip/model"
|
||
|
"go-common/library/ecode"
|
||
|
"go-common/library/log"
|
||
|
)
|
||
|
|
||
|
// api name
|
||
|
const (
|
||
|
_oauthGenerateAccessTokenURI = "/base.openservice/oauth_generate_access_token"
|
||
|
_unionReceivePrizesURI = "/member/bilibili/union/receive_prizes"
|
||
|
_unionUpdateOpenIDURI = "/member/bilibili/union/update_open_id"
|
||
|
_bindUnionURI = "/member/bilibili/bind_union"
|
||
|
_canPurchaseURI = "/member/bilibili/union/can_purchase"
|
||
|
_getUnionMobileURI = "/member/bilibili/union/get_union_mobile"
|
||
|
_hongbaosURI = "/member/bilibili/union/hongbaos"
|
||
|
_specailFoodsURI = "/member/bilibili/union/special_foods"
|
||
|
)
|
||
|
|
||
|
// EleOauthGenerateAccessToken get access_token by auth_code.
|
||
|
func (d *Dao) EleOauthGenerateAccessToken(c context.Context, a *model.ArgEleAccessToken) (data *model.EleAccessTokenResp, err error) {
|
||
|
args := new(struct {
|
||
|
Request *model.ArgEleAccessToken `json:"request"`
|
||
|
})
|
||
|
args.Request = a
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data *model.EleAccessTokenResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _oauthGenerateAccessTokenURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s) a(%+v) resp(%+v) error(%+v)", _oauthGenerateAccessTokenURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) a(%+v) resp(%+v) error(%+v)", _oauthGenerateAccessTokenURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
log.Info("ele success api(%s) a(%+v) resp(%+v) data(%+v)", _oauthGenerateAccessTokenURI, a, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleUnionReceivePrizes union receive prizes.
|
||
|
func (d *Dao) EleUnionReceivePrizes(c context.Context, a *model.ArgEleReceivePrizes) (data []*model.EleReceivePrizesResp, err error) {
|
||
|
args := new(struct {
|
||
|
Request *model.ArgEleReceivePrizes `json:"request"`
|
||
|
})
|
||
|
args.Request = a
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data []*model.EleReceivePrizesResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _unionReceivePrizesURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s) a(%+v) resp(%+v) error(%+v)", _unionReceivePrizesURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) a(%+v) resp(%+v) error(%+v)", _unionReceivePrizesURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
log.Info("ele success api(%s) a(%+v) resp(%+v) data(%+v)", _unionReceivePrizesURI, a, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleUnionUpdateOpenID update_open_id req.
|
||
|
func (d *Dao) EleUnionUpdateOpenID(c context.Context, a *model.ArgEleUnionUpdateOpenID) (data *model.EleUnionUpdateOpenIDResp, err error) {
|
||
|
args := new(struct {
|
||
|
Request *model.ArgEleUnionUpdateOpenID `json:"request"`
|
||
|
})
|
||
|
args.Request = a
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data *model.EleUnionUpdateOpenIDResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _unionUpdateOpenIDURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s) a(%+v) resp(%+v) error(%+v)", _unionUpdateOpenIDURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) a(%+v) resp(%+v) error(%+v)", _unionUpdateOpenIDURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
log.Info("ele success api(%s) a(%+v) resp(%+v) data(%+v)", _unionUpdateOpenIDURI, a, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleBindUnion ele bind union salary vip.
|
||
|
func (d *Dao) EleBindUnion(c context.Context, a *model.ArgEleBindUnion) (data *model.EleBindUnionResp, err error) {
|
||
|
args := new(struct {
|
||
|
Request *model.ArgEleBindUnion `json:"request"`
|
||
|
})
|
||
|
args.Request = a
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data *model.EleBindUnionResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _bindUnionURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s) a(%+v) resp(%+v) error(%+v)", _bindUnionURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) a(%+v) resp(%+v) error(%+v)", _bindUnionURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
// 1.发放成功
|
||
|
if data.Status != 1 && data.Status != 6 {
|
||
|
log.Error("ele status faild api(%s) a(%+v) resp(%+v) data(%+v) error(%+v)", _bindUnionURI, a, resp, data, err)
|
||
|
err = ecode.VipOrderEleVipGrantFaildErr
|
||
|
}
|
||
|
log.Info("ele success api(%s) a(%+v) resp(%+v) data(%+v)", _bindUnionURI, a, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleCanPurchase ele can purchase.
|
||
|
func (d *Dao) EleCanPurchase(c context.Context, a *model.ArgEleCanPurchase) (data *model.EleCanPurchaseResp, err error) {
|
||
|
args := new(struct {
|
||
|
Request *model.ArgEleCanPurchase `json:"request"`
|
||
|
})
|
||
|
args.Request = a
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data *model.EleCanPurchaseResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _canPurchaseURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s) a(%+v) resp(%+v) error(%+v)", _canPurchaseURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
// 系统请求是否有误
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) a(%+v) resp(%+v) error(%+v)", _canPurchaseURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
// 业务逻辑是否有误
|
||
|
data = resp.Data
|
||
|
if data.Status != 1 {
|
||
|
log.Error("ele status faild api(%s) a(%+v) resp(%+v) data(%+v) error(%+v)", _canPurchaseURI, a, resp, data, err)
|
||
|
err = ecode.VipEleUnionBuyCanPurchaseErr
|
||
|
return
|
||
|
}
|
||
|
log.Info("ele success api(%s) a(%+v) resp(%+v) data(%+v)", _canPurchaseURI, a, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleUnionMobile get ele union mobile.
|
||
|
func (d *Dao) EleUnionMobile(c context.Context, a *model.ArgEleUnionMobile) (data *model.EleUnionMobileResp, err error) {
|
||
|
args := new(struct {
|
||
|
Request *model.ArgEleUnionMobile `json:"request"`
|
||
|
})
|
||
|
args.Request = a
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data *model.EleUnionMobileResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _getUnionMobileURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s) a(%+v) resp(%+v) error(%+v)", _getUnionMobileURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) a(%+v) resp(%+v) error(%+v)", _getUnionMobileURI, a, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
log.Info("ele success api(%s) a(%+v) resp(%+v) data(%+v)", _getUnionMobileURI, a, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleRedPackages get ele red packages.
|
||
|
func (d *Dao) EleRedPackages(c context.Context) (data []*model.EleRedPackagesResp, err error) {
|
||
|
args := new(struct{})
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data []*model.EleRedPackagesResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _hongbaosURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s)resp(%+v) error(%+v)", _hongbaosURI, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) resp(%+v) error(%+v)", _hongbaosURI, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
log.Info("ele success api(%s) resp(%+v) data(%+v)", _hongbaosURI, resp, data)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// EleSpecailFoods get ele specail foods.
|
||
|
func (d *Dao) EleSpecailFoods(c context.Context) (data []*model.EleSpecailFoodsResp, err error) {
|
||
|
args := new(struct{})
|
||
|
resp := new(struct {
|
||
|
Message string `json:"message"`
|
||
|
Name string `json:"name"`
|
||
|
Data []*model.EleSpecailFoodsResp `json:"data"`
|
||
|
})
|
||
|
err = d.eleclient.Post(c, d.c.Host.Ele, _specailFoodsURI, args, resp)
|
||
|
if err != nil {
|
||
|
log.Error("ele faild api(%s)resp(%+v) error(%+v)", _specailFoodsURI, resp, err)
|
||
|
err = ecode.VipEleUnionReqErr
|
||
|
return
|
||
|
}
|
||
|
if !eleclient.IsSuccess(resp.Message) {
|
||
|
log.Error("ele message faild api(%s) resp(%+v) error(%+v)", _specailFoodsURI, resp, err)
|
||
|
err = ecode.VipEleUnionRespCodeErr
|
||
|
return
|
||
|
}
|
||
|
data = resp.Data
|
||
|
log.Info("ele success api(%s) resp(%+v) data(%+v)", _specailFoodsURI, resp, data)
|
||
|
return
|
||
|
}
|