319 lines
8.6 KiB
Go
Raw Permalink Normal View History

2019-04-22 02:59:20 +00:00
package favorite
import (
"strconv"
"go-common/app/interface/main/app-interface/model"
"go-common/app/interface/main/app-interface/model/audio"
"go-common/app/interface/main/app-interface/model/bplus"
"go-common/app/interface/main/app-interface/model/sp"
"go-common/app/interface/main/app-interface/model/topic"
article "go-common/app/interface/openplatform/article/model"
"go-common/app/service/main/archive/model/archive"
"time"
)
type MyFavorite struct {
Tab *Tab `json:"tab,omitempty"`
Favorite *FavList `json:"favorite,omitempty"`
}
type Tab struct {
Fav bool `json:"favorite"`
Topic bool `json:"topic"`
Article bool `json:"article"`
Clips bool `json:"clips"`
Albums bool `json:"albums"`
Specil bool `json:"specil"`
Cinema bool `json:"cinema"`
Audios bool `json:"audios"`
Menu bool `json:"menu"`
PGCMenu bool `json:"pgc_menu"`
Ticket bool `json:"ticket"`
Product bool `json:"product"`
}
type FavList struct {
Count int `json:"count"`
Items []*FavItem `json:"items"`
}
type FavideoList struct {
Count int `json:"count"`
Items []*FavideoItem `json:"items"`
}
type TopicList struct {
Count int `json:"count"`
Items []*TopicItem `json:"items"`
}
type ArticleList struct {
Count int `json:"count"`
Items []*ArticleItem `json:"items"`
}
type ClipsList struct {
*bplus.PageInfo
Items []*ClipsItem `json:"items"`
}
type AlbumsList struct {
*bplus.PageInfo
Items []*AlbumItem `json:"items"`
}
type SpList struct {
Count int `json:"count"`
Items []*SpItem `json:"items"`
}
type AudioList struct {
Count int `json:"count"`
Items []*AudioItem `json:"items"`
}
func (i *FavItem) FromFav(f *Folder) {
i.MediaID = f.MediaID
i.Fid = f.Fid
i.Mid = f.Mid
i.Name = f.Name
if f.Cover != nil {
i.Cover = f.Cover
}
i.CurCount = f.CurCount
i.State = f.State
}
type FavItem struct {
MediaID int64 `json:"media_id"`
Fid int `json:"fid"`
Mid int `json:"mid"`
Name string `json:"name"`
CurCount int `json:"cur_count"`
State int `json:"state"`
Cover []Cover `json:"cover"`
}
func (i *FavideoItem) FromFavideo(fv *Archive) {
i.Aid = fv.Aid
i.Title = fv.Title
i.Pic = fv.Pic
i.Name = fv.Author.Name
i.PlayNum = int(fv.Stat.View)
i.Danmaku = int(fv.Stat.Danmaku)
i.Param = strconv.FormatInt(int64(fv.Aid), 10)
i.Goto = model.GotoAv
i.URI = model.FillURI(i.Goto, i.Param, model.AvHandler(archive.BuildArchive3(fv.Arc)))
i.UGCPay = fv.Rights.UGCPay
}
type FavideoItem struct {
Aid int64 `json:"aid"`
Title string `json:"title"`
Pic string `json:"pic"`
Name string `json:"name"`
PlayNum int `json:"play_num"`
Danmaku int `json:"danmaku"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
UGCPay int32 `json:"ugc_pay"`
}
func (i *TopicItem) FromTopic(tp *topic.List) {
i.ID = tp.ID
i.MID = tp.MID
i.Name = tp.Name
i.PCCover = tp.PCCover
i.H5Cover = tp.H5Cover
i.FavAt = tp.FavAt
i.PCUrl = tp.PCUrl
i.H5Url = tp.H5Url
i.Desc = tp.Desc
i.Param = strconv.FormatInt(int64(tp.ID), 10)
i.Goto = model.GotoWeb
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type TopicItem struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
Name string `json:"name"`
PCCover string `json:"pc_cover"`
H5Cover string `json:"h5_cover"`
FavAt int64 `json:"fav_at"`
PCUrl string `json:"pc_url"`
H5Url string `json:"h5_url"`
Desc string `json:"desc"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *ArticleItem) FromArticle(af *article.Favorite) {
i.ID = af.ID
i.Title = af.Title
i.BannerURL = af.BannerURL
i.TemplateID = int(af.TemplateID)
i.Name = af.Author.Name
i.ImageURLs = af.ImageURLs
i.Summary = af.Summary
i.FTime = af.FavoriteTime
i.Param = strconv.FormatInt(int64(af.ID), 10)
i.Goto = model.GotoArticle
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type ArticleItem struct {
ID int64 `json:"id"`
Title string `json:"title"`
TemplateID int `json:"template_id"`
BannerURL string `json:"banner_url"`
Name string `json:"name"`
ImageURLs []string `json:"image_urls"`
Summary string `json:"summary"`
FTime int64 `json:"favorite_time"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *ClipsItem) FromClips(c *bplus.ClipList) {
i.ID = c.Content.Item.ID
i.Name = c.Content.User.Name
i.UID = c.Content.User.UID
i.HeadURL = c.Content.User.HeadURL
i.IsVIP = c.Content.User.IsVIP
i.IsFollowed = c.Content.User.IsFollowed
i.UploadTimeText = c.Content.Item.UploadTimeText
i.Tags = c.Content.Item.Tags
i.Cover = c.Content.Item.Cover
i.VideoTime = c.Content.Item.VideoTime
i.Desc = c.Content.Item.Desc
i.DanakuNum = c.Content.Item.DanakuNum
i.WatchedNum = c.Content.Item.WatchedNum
i.Param = strconv.FormatInt(int64(c.Content.Item.ID), 10)
i.Goto = model.GotoClip
i.URI = model.FillURI(i.Goto, i.Param, nil)
i.Status = c.Content.Item.ShowStatus
i.Reply = c.Content.Item.Reply
i.UploadTime = c.Content.Item.UploadTime
i.Width = c.Content.Item.Width
i.Height = c.Content.Item.Height
i.FirstPic = c.Content.Item.FirstPic
i.VideoPlayURL = c.Content.Item.VideoPlayURL
i.BackupPlayURL = c.Content.Item.BackupPlayURL
i.LikeNum = c.Content.Item.LikeNum
}
type ClipsItem struct {
ID int64 `json:"id,omitempty"`
Name string `json:"name,omitempty"`
UID int64 `json:"uid,omitempty"`
HeadURL string `json:"head_url,omitempty"`
IsVIP int `json:"is_vip,omitempty"`
UploadTimeText string `json:"upload_time_text,omitempty"`
Tags []string `json:"tags,omitempty"`
Cover struct {
Def string `json:"default,omitempty"`
} `json:"cover,omitempty"`
VideoTime int `json:"video_time,omitempty"`
Desc string `json:"description,omitempty"`
DanakuNum int `json:"damaku_num,omitempty"`
WatchedNum int `json:"watched_num,omitempty"`
Goto string `json:"goto,omitempty"`
Param string `json:"param,omitempty"`
URI string `json:"uri,omitempty"`
Status int `json:"status,omitempty"`
Reply int `json:"reply,omitempty"`
FirstPic string `json:"first_pic,omitempty"`
BackupPlayURL []string `json:"backup_playurl,omitempty"`
IsFollowed bool `json:"is_followed,omitempty"`
UploadTime string `json:"upload_time,omitempty"`
Width int `json:"width,omitempty"`
Height int `json:"height,omitempty"`
VideoPlayURL string `json:"video_playurl,omitempty"`
LikeNum int `json:"like_num,omitempty"`
}
func (i *AlbumItem) FromAlbum(bp *bplus.AlbumList) {
i.ID = bp.Content.ID
i.Pic = bp.Content.Pic
i.PicCount = bp.Content.PicCount
i.ShowStatus = bp.Content.ShowStatus
i.Param = strconv.FormatInt(int64(bp.Content.ID), 10)
i.Goto = model.GotoAlbum
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type AlbumItem struct {
ID int64 `json:"id"`
Pic []*bplus.Pictures `json:"pictures"`
ShowStatus int `json:"show_status"`
PicCount int `json:"pictures_count"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *SpItem) FromSp(s *sp.Item) {
i.SpID = s.SpID
i.Title = s.Title
i.Cover = s.Cover
i.MCover = s.MCover
i.SCover = s.SCover
timeTmp, _ := time.Parse("2006-01-02 15:04", s.CTime)
i.CTime = timeTmp.Unix()
i.Param = strconv.FormatInt(int64(s.SpID), 10)
i.Goto = model.GotoSp
i.URI = model.FillURI(i.Goto, i.Param, nil)
}
type SpItem struct {
SpID int64 `json:"spid"`
Title string `json:"title"`
Cover string `json:"cover"`
MCover string `json:"m_cover"`
SCover string `json:"s_cover"`
CTime int64 `json:"create_at"`
Goto string `json:"goto"`
Param string `json:"param"`
URI string `json:"uri"`
}
func (i *AudioItem) FromAudio(a *audio.FavAudio) {
i.ID = a.ID
i.Title = a.Title
i.IsOpen = a.IsOpen
i.Cover = a.ImgURL
i.Count = a.RecordsNum
}
type AudioItem struct {
ID int64 `json:"id"`
Title string `json:"title"`
Cover string `json:"cover"`
IsOpen int `json:"is_open"`
Count int `json:"count"`
}
type TabItem struct {
Name string `json:"name"`
Uri string `json:"uri"`
Tab string `json:"tab"`
}
type TabParam struct {
MobiApp string `form:"mobi_app"`
Device string `form:"device"`
Build int `form:"build"`
Platform string `form:"platform"`
Mid int64 `form:"mid"`
Business string `form:"business"`
AccessKey string `form:"access_key"`
ActionKey string `form:"actionKey"`
Filtered string `form:"filtered"`
}