207 lines
4.7 KiB
Go
207 lines
4.7 KiB
Go
package http
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"go-common/app/admin/main/tv/model"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
func contList(c *bm.Context) {
|
|
var (
|
|
req = c.Request.Form
|
|
err error
|
|
items []*model.ContentRepo
|
|
count int64
|
|
order = atoi(req.Get("order"))
|
|
page = atoi(req.Get("page"))
|
|
size = 20
|
|
)
|
|
if page == 0 {
|
|
page = 1
|
|
}
|
|
db := contWhere(c)
|
|
db.Model(&model.ContentRepo{}).Count(&count)
|
|
if order == 1 {
|
|
db = db.Order("tv_content.mtime ASC")
|
|
} else {
|
|
db = db.Order("tv_content.mtime DESC")
|
|
}
|
|
if err = db.Model(&model.ContentRepo{}).Offset((page - 1) * size).Limit(size).Find(&items).Error; err != nil {
|
|
log.Error("%v\n", err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
for _, v := range items {
|
|
v.MtimeFormat = tvSrv.TimeFormat(v.Mtime)
|
|
v.Mtime = 0
|
|
}
|
|
pager := &model.ContentRepoPager{
|
|
TotalCount: count,
|
|
Pn: page,
|
|
Ps: size,
|
|
Items: items,
|
|
}
|
|
c.JSON(pager, nil)
|
|
}
|
|
|
|
func contInfo(c *bm.Context) {
|
|
var (
|
|
req = c.Request.Form
|
|
epid = parseInt(req.Get("id"))
|
|
err error
|
|
)
|
|
exist := model.Content{}
|
|
if err = tvSrv.DB.Where("epid=?", epid).Where("is_deleted=?", 0).First(&exist).Error; err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(exist, nil)
|
|
}
|
|
|
|
func saveCont(c *bm.Context) {
|
|
var (
|
|
req = c.Request.PostForm
|
|
epid = atoi(req.Get("id"))
|
|
err error
|
|
)
|
|
exist := model.Content{}
|
|
if err = tvSrv.DB.Where("epid=?", epid).Where("is_deleted=?", 0).First(&exist).Error; err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
title := req.Get("title")
|
|
cover := req.Get("cover")
|
|
if cover == "" {
|
|
renderErrMsg(c, ecode.RequestErr.Code(), "封面不能为空")
|
|
return
|
|
}
|
|
if err := tvSrv.DB.Model(&model.Content{}).Where("epid = ?", epid).Update(map[string]string{"title": title, "cover": cover}).Error; err != nil {
|
|
log.Error("tvSrv.saveCont error(%v)", err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
if err := tvSrv.DB.Model(&model.TVEpContent{}).Where("id = ?", epid).Update(map[string]string{"long_title": title, "cover": cover}).Error; err != nil {
|
|
log.Error("tvSrv.saveCont error(%v)", err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(nil, nil)
|
|
}
|
|
|
|
func preview(c *bm.Context) {
|
|
var (
|
|
req = c.Request.Form
|
|
err error
|
|
epid = atoi(req.Get("id"))
|
|
)
|
|
exist := model.Content{}
|
|
if err = tvSrv.DB.Where("epid=?", epid).Where("is_deleted=?", 0).First(&exist).Error; err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
url, err := tvSrv.Playurl(exist.CID)
|
|
if err != nil {
|
|
log.Error("tvSrv.Playurl error(%v)", err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(url, nil)
|
|
}
|
|
|
|
func contOptions(id string, valid int) (ret bool) {
|
|
var (
|
|
epid = atoi(id)
|
|
exist = model.Content{}
|
|
)
|
|
ret = false
|
|
if err := tvSrv.DB.Where("epid=?", epid).Where("is_deleted=?", 0).First(&exist).Error; err != nil {
|
|
log.Error("tvSrv.contOptions error(%v)", err)
|
|
return
|
|
}
|
|
if err := tvSrv.DB.Model(&model.Content{}).Where("epid=?", epid).Update(map[string]int{"valid": valid}).Error; err != nil {
|
|
log.Error("tvSrv.contOptions error(%v)", err)
|
|
return
|
|
}
|
|
return true
|
|
}
|
|
|
|
func contOnline(c *bm.Context) {
|
|
var (
|
|
req = c.Request.PostForm
|
|
|
|
ids = req.Get("ids")
|
|
)
|
|
idList := strings.Split(ids, ",")
|
|
if len(idList) == 0 {
|
|
renderErrMsg(c, ecode.RequestErr.Code(), _errIDNotFound)
|
|
return
|
|
}
|
|
for _, val := range idList {
|
|
if !contOptions(val, 1) {
|
|
renderErrMsg(c, ecode.RequestErr.Code(), "Online("+val+") fail")
|
|
return
|
|
}
|
|
}
|
|
c.JSON(nil, nil)
|
|
}
|
|
|
|
func contHidden(c *bm.Context) {
|
|
var (
|
|
req = c.Request.PostForm
|
|
|
|
ids = req.Get("ids")
|
|
)
|
|
idList := strings.Split(ids, ",")
|
|
if len(idList) == 0 {
|
|
renderErrMsg(c, ecode.RequestErr.Code(), _errIDNotFound)
|
|
return
|
|
}
|
|
for _, val := range idList {
|
|
if !contOptions(val, 0) {
|
|
renderErrMsg(c, ecode.RequestErr.Code(), "Hide ("+val+") fail")
|
|
return
|
|
}
|
|
}
|
|
c.JSON(nil, nil)
|
|
}
|
|
|
|
func contWhere(c *bm.Context) *gorm.DB {
|
|
var (
|
|
req = c.Request.Form
|
|
sid = atoi(req.Get("sid"))
|
|
cat = atoi(req.Get("category"))
|
|
epid = atoi(req.Get("epid"))
|
|
validStr = req.Get("valid")
|
|
)
|
|
db := tvSrv.DB.
|
|
Joins("LEFT OUTER JOIN tv_ep_season ON tv_content.season_id=tv_ep_season.id").
|
|
Select("tv_content.*, tv_ep_season.category, tv_ep_season.title AS season_title").
|
|
Where("tv_content.state=?", 3).
|
|
Where("tv_content.is_deleted=?", 0).
|
|
Where("tv_ep_season.check=?", 1).
|
|
Where("tv_ep_season.is_deleted=?", 0)
|
|
if sid != 0 {
|
|
db = db.Where("tv_content.season_id=?", sid)
|
|
}
|
|
if epid != 0 {
|
|
db = db.Where("tv_content.epid=?", epid)
|
|
}
|
|
if cat != 0 {
|
|
db = db.Where("tv_ep_season.category=?", cat)
|
|
}
|
|
if validStr == "" {
|
|
return db
|
|
}
|
|
if valid := atoi(validStr); valid == 0 {
|
|
db = db.Where("tv_content.valid=?", 0)
|
|
} else if valid == 1 {
|
|
db = db.Where("tv_content.valid=?", 1)
|
|
}
|
|
return db
|
|
}
|