123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package dao
- import (
- "context"
- "errors"
- "net/url"
- "strconv"
- "go-common/app/interface/openplatform/article/model"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- const (
- _mediaURL = "http://api.bilibili.co/pgc/internal/review/score/card"
- _setScoreURL = "http://api.bilibili.co/pgc/internal/review/score/rating"
- _delScoreURL = "http://api.bilibili.co/pgc/internal/review/score/delete"
- )
- // Media get media score.
- func (d *Dao) Media(c context.Context, mediaID, mid int64) (res *model.MediaResult, err error) {
- if mediaID == 0 {
- return
- }
- params := url.Values{}
- params.Set("media_id", strconv.FormatInt(mediaID, 10))
- params.Set("mid", strconv.FormatInt(mid, 10))
- resp := &model.MediaResp{}
- err = d.httpClient.Get(c, _mediaURL, "", params, &resp)
- if err != nil {
- PromError("media:番剧信息接口")
- log.Error("media: d.client.Get(%s) error(%+v)", _mediaURL+"?"+params.Encode(), err)
- return
- }
- if resp.Code != 0 {
- PromError("media:番剧信息接口")
- log.Error("media: url(%s) res: %+v", _mediaURL+"?"+params.Encode(), resp)
- err = ecode.Int(resp.Code)
- return
- }
- res = resp.Result
- return
- }
- // SetScore set media score.
- func (d *Dao) SetScore(c context.Context, score, aid, mediaID, mid int64) (err error) {
- if score < 1 || score > 10 || score%2 != 0 {
- err = errors.New("评分分值错误")
- return
- }
- params := url.Values{}
- params.Set("media_id", strconv.FormatInt(mediaID, 10))
- params.Set("mid", strconv.FormatInt(mid, 10))
- params.Set("oid", strconv.FormatInt(aid, 10))
- params.Set("score", strconv.FormatInt(score, 10))
- params.Set("from", "1")
- var resp struct {
- Code int `json:"code"`
- Message string `json:"message"`
- }
- err = d.httpClient.Post(c, _setScoreURL, "", params, &resp)
- if err != nil {
- PromError("media:番剧评分接口")
- log.Error("media: d.client.Post(%s, data:%s) error(%+v)", _setScoreURL, params.Encode(), err)
- return
- }
- if resp.Code != 0 {
- PromError("media:番剧评分接口")
- log.Error("media: d.client.Post(%s, data:%s) res: %+v", _setScoreURL, params.Encode(), resp)
- err = ecode.Int(resp.Code)
- return
- }
- log.Info("media: set score success(media_id: %d, mid: %d, oid: %d, score: %d)", mediaID, mid, aid, score)
- return
- }
- // DelScore get media score.
- func (d *Dao) DelScore(c context.Context, aid, mediaID, mid int64) (err error) {
- if mediaID == 0 || mid == 0 || aid == 0 {
- return
- }
- params := url.Values{}
- params.Set("media_id", strconv.FormatInt(mediaID, 10))
- params.Set("mid", strconv.FormatInt(mid, 10))
- params.Set("oid", strconv.FormatInt(aid, 10))
- params.Set("from", "1")
- var resp struct {
- Code int `json:"code"`
- Message string `json:"message"`
- }
- err = d.httpClient.Post(c, _delScoreURL, "", params, &resp)
- if err != nil {
- PromError("media:番剧删除评分接口")
- log.Error("media: d.client.Post(%s, data:%s) error(%+v)", _delScoreURL, params.Encode(), err)
- return
- }
- if resp.Code != 0 {
- PromError("media:番剧删除评分接口")
- log.Error("media: d.client.Post(%s, data:%s) res: %+v", _delScoreURL, params.Encode(), resp)
- err = ecode.Int(resp.Code)
- }
- log.Info("media: del score success(media_id: %d, mid: %d, oid: %d)", mediaID, mid, aid)
- return
- }
|