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.
294 lines
6.5 KiB
294 lines
6.5 KiB
package model |
|
|
|
import ( |
|
"fmt" |
|
"strconv" |
|
|
|
"go-common/library/database/elastic" |
|
"go-common/library/time" |
|
) |
|
|
|
const ( |
|
_TimeFormat = ("2006-01-02 15:04:05") |
|
_mtimeDesc = "2" |
|
_pubtimeDesc = "1" |
|
_pagesize = 20 |
|
) |
|
|
|
// EPRes def. |
|
type EPRes struct { |
|
ID int64 `json:"id"` |
|
Title string `json:"title"` |
|
Subtitle string `json:"subtitle"` |
|
STitle string `json:"season_title" gorm:"column:stitle"` |
|
Category int `json:"category"` |
|
SeasonID int `json:"season_id"` |
|
EPID int `json:"epid" gorm:"column:epid"` |
|
State int `json:"state"` |
|
Valid int `json:"valid"` |
|
Reason string `json:"reason"` |
|
} |
|
|
|
// EPResDB defines the result structure of ep audit |
|
type EPResDB struct { |
|
EPRes |
|
InjectTime time.Time `json:"inject_time" gorm:"column:inject_time"` |
|
CTime time.Time `json:"ctime" gorm:"column:ctime"` |
|
} |
|
|
|
// EPResItem def. |
|
type EPResItem struct { |
|
EPRes |
|
InjectTime string `json:"inject_time"` |
|
CTime string `json:"ctime"` |
|
} |
|
|
|
// ToItem def. |
|
func (v *EPResDB) ToItem() *EPResItem { |
|
res := &EPResItem{ |
|
EPRes: v.EPRes, |
|
CTime: v.CTime.Time().Format(_TimeFormat), |
|
} |
|
switch v.State { |
|
case 3: // passed |
|
res.State = 1 |
|
case 4: // rejected |
|
res.State = 2 |
|
default: |
|
res.State = 0 |
|
} |
|
if v.InjectTime > 0 { |
|
res.InjectTime = v.InjectTime.Time().Format(_TimeFormat) |
|
} |
|
return res |
|
} |
|
|
|
// Page represents the standard page structure |
|
type Page struct { |
|
Num int `json:"num"` |
|
Size int `json:"size"` |
|
Total int `json:"total"` |
|
} |
|
|
|
// SnCount def. |
|
type SnCount struct { |
|
Count int |
|
} |
|
|
|
// TableName tv_content |
|
func (*EPResDB) TableName() string { |
|
return "tv_content" |
|
} |
|
|
|
// EPResultPager def. |
|
type EPResultPager struct { |
|
Items []*EPResItem `json:"items"` |
|
Page *Page `json:"page"` |
|
} |
|
|
|
// SeasonRes def. |
|
type SeasonRes struct { |
|
ID int64 `json:"id"` |
|
Title string `json:"title"` |
|
Check int `json:"check"` |
|
Category int `json:"category"` |
|
Valid int `json:"valid"` |
|
Reason string `json:"reason"` |
|
} |
|
|
|
// SeasonResDB defines the result structure of ep audit |
|
type SeasonResDB struct { |
|
SeasonRes |
|
InjectTime time.Time `json:"inject_time" gorm:"column:inject_time"` |
|
CTime time.Time `json:"ctime" gorm:"column:ctime"` |
|
} |
|
|
|
// SeasonResItem def. |
|
type SeasonResItem struct { |
|
SeasonRes |
|
InjectTime string `json:"inject_time"` |
|
CTime string `json:"ctime"` |
|
} |
|
|
|
// ToItem Transforms to item |
|
func (v *SeasonResDB) ToItem() *SeasonResItem { |
|
res := &SeasonResItem{ |
|
CTime: v.CTime.Time().Format(_TimeFormat), |
|
SeasonRes: v.SeasonRes, |
|
} |
|
switch v.Check { |
|
case 0: // reject |
|
res.Check = 2 |
|
case 1: // passed |
|
res.Check = 1 |
|
default: |
|
res.Check = 0 |
|
} |
|
if v.InjectTime > 0 { |
|
res.InjectTime = v.InjectTime.Time().Format(_TimeFormat) |
|
} |
|
return res |
|
} |
|
|
|
// TableName tv_content |
|
func (*SeasonResDB) TableName() string { |
|
return "tv_ep_season" |
|
} |
|
|
|
// SeasonResultPager def. |
|
type SeasonResultPager struct { |
|
Items []*SeasonResItem `json:"items"` |
|
Page *Page `json:"page"` |
|
} |
|
|
|
// ReqArcCons def. |
|
type ReqArcCons struct { |
|
Order int `form:"order" json:"order;Min(1)" default:"1"` // 1 default, desc; 2 asc |
|
FirstCat int32 `form:"first_cat"` |
|
SecondCat int32 `form:"second_cat"` |
|
Status string `form:"status"` |
|
Title string `form:"title"` |
|
AVID int64 `form:"avid"` |
|
Pn int `form:"pn" default:"1"` |
|
} |
|
|
|
// ReqVideoCons def. |
|
type ReqVideoCons struct { |
|
AVID int64 `form:"avid" validate:"required"` |
|
Order int `form:"order" json:"order;Min(1)" default:"1"` // 1 default, desc; 2 asc |
|
Title string `form:"title"` |
|
CID int64 `form:"cid"` |
|
Status string `form:"status"` |
|
Pn int `form:"pn"` |
|
} |
|
|
|
// PageCfg def. |
|
type PageCfg struct { |
|
Pn int `form:"pn" default:"1" json:"pn"` |
|
Ps int `form:"ps" default:"20" json:"ps"` |
|
} |
|
|
|
// ReqArcES def. |
|
type ReqArcES struct { |
|
AID string |
|
Mids []int64 |
|
Title string |
|
Typeids []int32 |
|
Valid string |
|
Result string |
|
MtimeOrder string |
|
PubtimeOrder string |
|
PageCfg |
|
} |
|
|
|
// MtimeSort def. |
|
func (v *ReqArcES) MtimeSort() string { |
|
if v.MtimeOrder == _mtimeDesc { |
|
return elastic.OrderDesc |
|
} |
|
return elastic.OrderAsc |
|
} |
|
|
|
// PubtimeSort def. |
|
func (v *ReqArcES) PubtimeSort() string { |
|
if v.PubtimeOrder == _pubtimeDesc { |
|
return elastic.OrderDesc |
|
} |
|
return elastic.OrderAsc |
|
} |
|
|
|
// FromArcListParam build |
|
func (v *ReqArcES) FromArcListParam(param *ArcListParam, tids []int32) { |
|
v.Title = param.Title |
|
v.Valid = param.Valid |
|
v.MtimeOrder = strconv.Itoa(param.Order) |
|
v.PageCfg = param.PageCfg |
|
v.AID = param.CID |
|
v.Typeids = tids |
|
v.Result = "1" |
|
} |
|
|
|
// FromAuditConsult def. |
|
func (v *ReqArcES) FromAuditConsult(param *ReqArcCons, tids []int32) { |
|
v.PubtimeOrder = strconv.Itoa(param.Order) |
|
v.Typeids = tids |
|
v.Result = param.Status |
|
v.Title = param.Title |
|
if param.AVID != 0 { |
|
v.AID = fmt.Sprintf("%d", param.AVID) |
|
} |
|
v.Pn = param.Pn |
|
v.Ps = _pagesize |
|
} |
|
|
|
// ArcRes def. |
|
type ArcRes struct { |
|
AVID int64 `json:"avid"` |
|
Title string `json:"title"` |
|
FirstCat string `json:"first_cat"` |
|
SecondCat string `json:"second_cat"` |
|
Status int `json:"status"` |
|
InjectTime string `json:"inject_time"` |
|
PubTime string `json:"pubtime"` |
|
Reason string `json:"reason"` |
|
} |
|
|
|
// VideoRes def. |
|
type VideoRes struct { |
|
CID int64 `json:"cid"` |
|
Title string `json:"title"` |
|
Page int `json:"page"` |
|
Status int `json:"status"` |
|
Ctime string `json:"ctime"` |
|
InjectTime string `json:"inject_time"` |
|
Reason string `json:"reason"` |
|
} |
|
|
|
// ArcResPager def. |
|
type ArcResPager struct { |
|
Items []*ArcRes `json:"items"` |
|
Page *Page `json:"page"` |
|
} |
|
|
|
// VideoResPager def. |
|
type VideoResPager struct { |
|
Items []*VideoRes `json:"items"` |
|
Page *Page `json:"page"` |
|
} |
|
|
|
// EsUgcConsult def. |
|
type EsUgcConsult struct { |
|
Fields []string `json:"fields"` |
|
From string `json:"from"` |
|
Highlight bool `json:"highlight"` |
|
Pn int `json:"pn"` |
|
Ps int `json:"ps"` |
|
Where *Where `json:"where,omitempty"` |
|
Order []map[string]string `json:"order"` |
|
} |
|
|
|
// Where def. |
|
type Where struct { |
|
Eq map[string]string `json:"eq,omitempty"` |
|
Or map[string][]interface{} `json:"or,omitempty"` |
|
In map[string][]int32 `json:"in,omitempty"` |
|
Range map[string]string `json:"range,omitempty"` |
|
} |
|
|
|
// EsArc def. |
|
type EsArc struct { |
|
AID int64 `json:"aid"` |
|
MID int64 `json:"mid"` |
|
Deleted int `json:"deleted"` |
|
Mtime string `json:"mtime"` |
|
Pubtime string `json:"pubtime"` |
|
Result int `json:"result"` |
|
Typeid int32 `json:"typeid"` |
|
Valid int `json:"valid"` |
|
} |
|
|
|
// EsUgcResult def. |
|
type EsUgcResult struct { |
|
Result []*EsArc |
|
Page *Page |
|
}
|
|
|