bilibili-backup/app/service/main/tv/internal/dao/main_vip.go
2019-04-22 02:59:20 +00:00

65 lines
1.6 KiB
Go

package dao
import (
"context"
"net/url"
"strconv"
"go-common/app/service/main/tv/internal/model"
mvip "go-common/app/service/main/vipinfo/api"
"go-common/library/ecode"
"go-common/library/log"
)
const (
_mvipGiftRemark = "电视大会员赠送"
)
// MainVip returns main vip info.
func (d *Dao) MainVip(c context.Context, mid int64) (mv *model.MainVip, err error) {
var (
res *mvip.InfoReply
)
res, err = d.mvipCli.Info(c, &mvip.InfoReq{Mid: int64(mid)})
if err != nil {
log.Error("d.MainVip(%d) err(%v)", mid, err)
return
}
mv = &model.MainVip{
Mid: int64(mid),
VipType: int8(res.Res.Type),
VipStatus: int8(res.Res.Status),
VipDueDate: res.Res.DueDate,
}
log.Info("d.MainVip(%d) res(%+v)", mid, res)
return
}
// GiveMVipGift gives bilibili vip to user.
func (d *Dao) GiveMVipGift(c context.Context, mid int64, batchId int, orderNo string) error {
var (
err error
)
res := new(struct {
Code int `json:"code"`
Message string `json:"message"`
TTL int `json:"ttl"`
})
params := url.Values{}
params.Set("batchId", strconv.Itoa(batchId))
params.Set("mid", strconv.Itoa(int(mid)))
params.Set("orderNo", orderNo)
params.Set("remark", _mvipGiftRemark)
url := d.c.MVIP.BatchUserInfoUrl
if err = d.mvipHttpCli.Post(c, url, "", params, res); err != nil {
log.Error("d.mvipHttpCli.Post(%s, %+v) err(%+v)", url, params, err)
return err
}
if res.Code != 0 {
log.Error("d.mvipHttpCli.Post(%s, %+v) res(%+v)", url, params, res)
return ecode.TVIPGiveMVipFailed
}
log.Info("d.GiveMVipGift(%d, %d, %s) res(%+v)", mid, batchId, orderNo, res)
return nil
}