Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package playletser
|
|
|
|
import (
|
|
"fmt"
|
|
"videoweb/app/service/upstream"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
const chapterWatchReportPath = "/api/app/playlet/chapter/watch/report"
|
|
|
|
// PlayletChapterWatchReportReq 对应 swagger proto.PlayletChapterWatchReportReq
|
|
type PlayletChapterWatchReportReq struct {
|
|
ChapterID int64 `json:"chapterId"`
|
|
PlayletID int64 `json:"playletId,omitempty"`
|
|
}
|
|
|
|
// PlayletChapterWatchReportResp 对应 swagger proto.PlayletChapterWatchReportResp
|
|
type PlayletChapterWatchReportResp struct {
|
|
ChapterID int64 `json:"chapterId"`
|
|
PlayletID int64 `json:"playletId"`
|
|
CurrentEpisode int `json:"currentEpisode"`
|
|
LastChapterID int64 `json:"lastChapterId"`
|
|
LastEpisode int `json:"lastEpisode"`
|
|
WatchedCount int `json:"watchedCount"`
|
|
UnwatchedCount int `json:"unwatchedCount"`
|
|
}
|
|
|
|
// ChapterWatchReport 上报短剧剧集观看。
|
|
func ChapterWatchReport(c *gin.Context, req PlayletChapterWatchReportReq) (*APIEnvelope[PlayletChapterWatchReportResp], error) {
|
|
if req.ChapterID <= 0 {
|
|
return nil, fmt.Errorf("chapter watch report invalid chapterId")
|
|
}
|
|
var env APIEnvelope[PlayletChapterWatchReportResp]
|
|
if _, err := upstream.PostJSON(c, chapterWatchReportPath, req, &env); err != nil {
|
|
return nil, err
|
|
}
|
|
return &env, nil
|
|
}
|