You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
244 lines
8.8 KiB
244 lines
8.8 KiB
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 |
|
}
|
|
|