Create & Init Project...
This commit is contained in:
64
app/admin/main/videoup/http/BUILD
Normal file
64
app/admin/main/videoup/http/BUILD
Normal file
@ -0,0 +1,64 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_library",
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"archive.go",
|
||||
"cm.go",
|
||||
"flow.go",
|
||||
"http.go",
|
||||
"local.go",
|
||||
"monitor.go",
|
||||
"music.go",
|
||||
"oversea.go",
|
||||
"pgc.go",
|
||||
"search.go",
|
||||
"staff.go",
|
||||
"stats.go",
|
||||
"task.go",
|
||||
"track.go",
|
||||
"video.go",
|
||||
],
|
||||
importpath = "go-common/app/admin/main/videoup/http",
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//app/admin/main/videoup/conf:go_default_library",
|
||||
"//app/admin/main/videoup/model/archive:go_default_library",
|
||||
"//app/admin/main/videoup/model/monitor:go_default_library",
|
||||
"//app/admin/main/videoup/model/music:go_default_library",
|
||||
"//app/admin/main/videoup/model/oversea:go_default_library",
|
||||
"//app/admin/main/videoup/model/search:go_default_library",
|
||||
"//app/admin/main/videoup/service:go_default_library",
|
||||
"//library/ecode:go_default_library",
|
||||
"//library/log:go_default_library",
|
||||
"//library/net/http/blademaster:go_default_library",
|
||||
"//library/net/http/blademaster/binding:go_default_library",
|
||||
"//library/net/http/blademaster/middleware/permit:go_default_library",
|
||||
"//library/net/http/blademaster/middleware/verify:go_default_library",
|
||||
"//library/net/http/blademaster/render:go_default_library",
|
||||
"//library/time:go_default_library",
|
||||
"//library/xstr:go_default_library",
|
||||
"//vendor/github.com/jinzhu/gorm:go_default_library",
|
||||
"//vendor/github.com/pkg/errors:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
332
app/admin/main/videoup/http/archive.go
Normal file
332
app/admin/main/videoup/http/archive.go
Normal file
@ -0,0 +1,332 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"go-common/library/xstr"
|
||||
)
|
||||
|
||||
// submit second_round submit.
|
||||
func submit(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap = &archive.ArcParam{}
|
||||
if err = json.Unmarshal(bs, ap); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if err = vdaSvc.Submit(c, ap); err != nil {
|
||||
log.Error("vdaSvc.Submit() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// batchSubmit batch submit by async.
|
||||
func batchArchive(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
aps []*archive.ArcParam
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
if err = json.Unmarshal(bs, &aps); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ok := vdaSvc.CheckArchive(aps); !ok {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if err = vdaSvc.BatchArchive(c, aps, archive.ActionArchiveSubmit); err != nil {
|
||||
log.Error("vdaSvc.BatchSubmit() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// batchArchiveSecondRound batch submit by async.
|
||||
func batchArchiveSecondRound(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
aps []*archive.ArcParam
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
if err = json.Unmarshal(bs, &aps); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ok := vdaSvc.CheckArchive(aps); !ok {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if err = vdaSvc.BatchArchive(c, aps, archive.ActionArchiveSecondRound); err != nil {
|
||||
log.Error("vdaSvc.BatchSubmit() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// batchAttrs batch attr by async.
|
||||
func batchAttrs(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
aps []*archive.ArcParam
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
if err = json.Unmarshal(bs, &aps); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ok := vdaSvc.CheckArchive(aps); !ok {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if err = vdaSvc.BatchArchive(c, aps, archive.ActionArchiveAttr); err != nil {
|
||||
log.Error("vdaSvc.BatchSubmit() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// batchTypeIDs batch typeid by async.
|
||||
func batchTypeIDs(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
aps []*archive.ArcParam
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
if err = json.Unmarshal(bs, &aps); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ok := vdaSvc.CheckArchive(aps); !ok {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if err = vdaSvc.BatchArchive(c, aps, archive.ActionArchiveTypeID); err != nil {
|
||||
log.Error("vdaSvc.BatchSubmit() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// // batchZlimit batch modify zlimit.
|
||||
// func batchZlimit(c wctx.Context) {
|
||||
// var (
|
||||
// req = c.Request()
|
||||
// res = c.Result()
|
||||
// bs []byte
|
||||
// err error
|
||||
// )
|
||||
// if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
// log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
// res["code"] = ecode.RequestErr
|
||||
// return
|
||||
// }
|
||||
// req.Body.Close()
|
||||
// // params
|
||||
// var ap = &archive.ArcParam{}
|
||||
// if err = json.Unmarshal(bs, ap); err != nil {
|
||||
// log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
// res["code"] = ecode.RequestErr
|
||||
// return
|
||||
// }
|
||||
// if len(ap.Aids) == 0 {
|
||||
// res["code"] = ecode.RequestErr
|
||||
// return
|
||||
// }
|
||||
// if err = vdaSvc.BatchZlimit(c, ap); err != nil {
|
||||
// log.Error("vdaSvc.submit() error(%v)", err)
|
||||
// res["code"] = err
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
|
||||
// upAuther batch modify zlimit.
|
||||
func upAuther(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap = &archive.ArcParam{}
|
||||
if err = json.Unmarshal(bs, ap); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if err = vdaSvc.UpAuther(c, ap); err != nil {
|
||||
log.Error("vdaSvc.UpAuther() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// upAuther batch modify zlimit.
|
||||
func upAccess(c *bm.Context) {
|
||||
var (
|
||||
req = c.Request
|
||||
bs []byte
|
||||
err error
|
||||
)
|
||||
if bs, err = ioutil.ReadAll(req.Body); err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap = &archive.ArcParam{}
|
||||
if err = json.Unmarshal(bs, ap); err != nil {
|
||||
log.Error("http submit() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if err = vdaSvc.UpAccess(c, ap); err != nil {
|
||||
log.Error("vdaSvc.UpAccess() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
func upArcTag(c *bm.Context) {
|
||||
pm := new(archive.TagParam)
|
||||
if err := c.Bind(pm); err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
uid, _ := getUIDName(c)
|
||||
c.JSON(nil, vdaSvc.UpArcTag(c, uid, pm))
|
||||
}
|
||||
|
||||
//通用批量tag接口 添加tag或者删除tag接口
|
||||
// a.支持频道回查 form_list = channel_review
|
||||
// b.支持adminBind/upBind(默认走adminBind) is_up_bind=true
|
||||
// c.支持同步隐藏tag sync_hidden_tag=true
|
||||
//todo 因为稿件服务不cache tags 也不需要发force_sync.未来计划砍掉审核库archive.tag
|
||||
func batchTag(c *bm.Context) {
|
||||
var err error
|
||||
pm := new(archive.BatchTagParam)
|
||||
if err = c.Bind(pm); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
//仅同步隐藏tag时 批量tag操作 pm.tags为空 && SyncHiddenTag = true
|
||||
if (pm.Action != "" && pm.Action != "add" && pm.Action != "delete") || (pm.Action != "" && pm.Tags == "" && !pm.SyncHiddenTag) {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if pm.Action == "" && pm.Tags == "" && pm.FromList != archive.FromListChannelReview {
|
||||
c.JSON(nil, nil)
|
||||
return
|
||||
}
|
||||
|
||||
uid, _ := getUIDName(c)
|
||||
data := map[string]interface{}{}
|
||||
data["message"], err = vdaSvc.BatchUpTag(c, uid, pm)
|
||||
c.JSONMap(data, err)
|
||||
}
|
||||
|
||||
func channelInfo(c *bm.Context) {
|
||||
aid := c.Request.Form.Get("aid")
|
||||
aids, err := xstr.SplitInts(aid)
|
||||
if err != nil {
|
||||
log.Error("channelInfo xstr.SplitInts(%s) error(%v)", aid, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
//批量上线50个
|
||||
if len(aids) > 50 || len(aids) <= 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
data := map[string]interface{}{}
|
||||
data["data"], err = vdaSvc.GetChannelInfo(c, aids)
|
||||
if err != nil {
|
||||
data["message"] = "频道查询API异常"
|
||||
}
|
||||
c.JSONMap(data, err)
|
||||
}
|
||||
|
||||
func aiTrack(c *bm.Context) {
|
||||
v := new(struct {
|
||||
Aid []int64 `form:"aid,split" validate:"required"`
|
||||
})
|
||||
if err := c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(vdaSvc.AITrack(c, v.Aid))
|
||||
}
|
104
app/admin/main/videoup/http/cm.go
Normal file
104
app/admin/main/videoup/http/cm.go
Normal file
@ -0,0 +1,104 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
xtime "go-common/library/time"
|
||||
)
|
||||
|
||||
// upArchiveArr update archive attribute.
|
||||
func upCMArr(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap struct {
|
||||
Aid int64 `json:"aid"`
|
||||
AdminID int64 `json:"admin_id"`
|
||||
RankAttr struct {
|
||||
Main int32 `json:"main"`
|
||||
RecentArc int32 `json:"recent_arc"`
|
||||
AllArc int32 `json:"all_arc"`
|
||||
} `json:"rank_attr"`
|
||||
DynamicAttr struct {
|
||||
Main int32 `json:"main"`
|
||||
} `json:"dynamic_attr"`
|
||||
RecommendAttr struct {
|
||||
Main int32 `json:"main"`
|
||||
} `json:"recommend_attr"`
|
||||
}
|
||||
if err = json.Unmarshal(bs, &ap); err != nil {
|
||||
log.Error("http upArchiveArr() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ap.Aid == 0 {
|
||||
log.Error("aid==0")
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
attrs := make(map[uint]int32, 6)
|
||||
attrs[archive.AttrBitNoRank] = ap.RankAttr.Main
|
||||
attrs[archive.AttrBitNoDynamic] = ap.DynamicAttr.Main
|
||||
attrs[archive.AttrBitNoRecommend] = ap.RecommendAttr.Main
|
||||
// forbid
|
||||
forbidAttrs := make(map[string]map[uint]int32, 3)
|
||||
forbidAttrs[archive.ForbidRank] = map[uint]int32{
|
||||
archive.ForbidRankMain: ap.RankAttr.Main,
|
||||
archive.ForbidRankRecentArc: ap.RankAttr.RecentArc,
|
||||
archive.ForbidRankAllArc: ap.RankAttr.AllArc,
|
||||
}
|
||||
forbidAttrs[archive.ForbidDynamic] = map[uint]int32{
|
||||
archive.ForbidDynamicMain: ap.DynamicAttr.Main,
|
||||
}
|
||||
forbidAttrs[archive.ForbidRecommend] = map[uint]int32{
|
||||
archive.ForbidRecommendMain: ap.RecommendAttr.Main,
|
||||
}
|
||||
// update attrs and forbid
|
||||
c.JSON(nil, vdaSvc.UpArchiveAttr(c, ap.Aid, ap.AdminID, attrs, forbidAttrs, ""))
|
||||
}
|
||||
|
||||
// upCMArrDelay up cm archive delaytime
|
||||
func upCMArcDelay(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap struct {
|
||||
Aid int64 `json:"aid"`
|
||||
Dtime xtime.Time `json:"dtime"`
|
||||
}
|
||||
if err = json.Unmarshal(bs, &ap); err != nil {
|
||||
log.Error("http struct aid json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ap.Aid == 0 {
|
||||
log.Error("aid==0")
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if err = vdaSvc.UpArcDtime(c, ap.Aid, ap.Dtime); err != nil {
|
||||
log.Error("vdaSvc.UpArcDtime() error(%v)", err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
20
app/admin/main/videoup/http/flow.go
Normal file
20
app/admin/main/videoup/http/flow.go
Normal file
@ -0,0 +1,20 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
//查询某个资源所命中的所有流量套餐
|
||||
func hitFlows(c *bm.Context) {
|
||||
pm := new(struct {
|
||||
OID int64 `form:"aid" validate:"required"`
|
||||
})
|
||||
if err := c.Bind(pm); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(vdaSvc.HitFlowGroups(c, pm.OID, []int8{archive.PoolArcForbid}))
|
||||
}
|
139
app/admin/main/videoup/http/http.go
Normal file
139
app/admin/main/videoup/http/http.go
Normal file
@ -0,0 +1,139 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"go-common/app/admin/main/videoup/conf"
|
||||
"go-common/app/admin/main/videoup/service"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"go-common/library/net/http/blademaster/middleware/permit"
|
||||
"go-common/library/net/http/blademaster/middleware/verify"
|
||||
)
|
||||
|
||||
var (
|
||||
vfySvc *verify.Verify
|
||||
authSrc *permit.Permit
|
||||
vdaSvc *service.Service
|
||||
)
|
||||
|
||||
// Init http server
|
||||
func Init(c *conf.Config, s *service.Service) {
|
||||
vdaSvc = s
|
||||
vfySvc = verify.New(nil)
|
||||
authSrc = permit.New(c.Auth)
|
||||
engine := bm.DefaultServer(c.BM)
|
||||
innerRouter(engine)
|
||||
// init internal server
|
||||
if err := engine.Start(); err != nil {
|
||||
log.Error("engine.Start error(%v)", err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// innerRouter
|
||||
func innerRouter(e *bm.Engine) {
|
||||
e.Ping(ping)
|
||||
|
||||
group2 := e.Group("/x/admin/videoup", authSrc.Permit(""))
|
||||
{
|
||||
task := group2.Group("/task")
|
||||
{
|
||||
task.GET("/weightconfig/maxweight", authSrc.Permit("TASKWEIGHT"), maxweight)
|
||||
task.POST("/weightconfig/add", authSrc.Permit("TASKWEIGHT"), addwtconf)
|
||||
task.POST("/weightconfig/del", authSrc.Permit("TASKWEIGHT"), delwtconf)
|
||||
task.GET("/weightconfig/list", authSrc.Permit("TASKWEIGHT"), listwtconf)
|
||||
task.GET("/weightlog/list", authSrc.Permit("TASKWEIGHT"), listwtlog)
|
||||
task.GET("/wcv/show", authSrc.Permit("TASKWEIGHT"), show)
|
||||
task.POST("/wcv/set", authSrc.Permit("TASKWEIGHT"), set)
|
||||
|
||||
// 用户在线
|
||||
task.GET("/consumer/on", checkgroup(), on)
|
||||
task.GET("/consumer/off", checkgroup(), off) //自己退出
|
||||
task.POST("/consumer/forceoff", forceoff) //强制踢出
|
||||
task.GET("/online", authSrc.Permit("ONLINE"), online)
|
||||
task.GET("/inoutlist", inoutlist)
|
||||
// 任务状态
|
||||
task.POST("/delay", checkowner(), delay)
|
||||
task.POST("/free", taskfree)
|
||||
}
|
||||
oversea := group2.Group("/oversea")
|
||||
{
|
||||
oversea.GET("/policy/groups", policyGroups) //策略组列表
|
||||
oversea.POST("/policy/group/add", authSrc.Permit("POLICY_GROUP_EDIT"), addPolicyGroup) //新增策略组
|
||||
oversea.POST("/policy/group/edit", authSrc.Permit("POLICY_GROUP_EDIT"), editPolicyGroup) //编辑策略组
|
||||
oversea.POST("/policy/groups/del", authSrc.Permit("POLICY_GROUP_EDIT"), delPolicyGroups) //删除策略组
|
||||
oversea.POST("/policy/groups/restore", authSrc.Permit("POLICY_GROUP_EDIT"), restorePolicyGroups) //恢复被删除的策略组
|
||||
oversea.GET("/policies", policies) //获取策略列表
|
||||
oversea.GET("/archive/groups", archiveGroups) //稿件策略组列表
|
||||
oversea.POST("/policies/add", authSrc.Permit("POLICY_ITEM_EDIT"), addPolicies) //给组添加策略
|
||||
oversea.POST("/policies/del", authSrc.Permit("POLICY_ITEM_EDIT"), delPolicies) //删除策略
|
||||
}
|
||||
search := group2.Group("/search")
|
||||
{
|
||||
search.GET("video", searchVideo)
|
||||
search.GET("archive", searchArchive)
|
||||
search.POST("copyright", searchCopyright)
|
||||
}
|
||||
staff := group2.Group("/staff")
|
||||
{
|
||||
staff.GET("", staffs)
|
||||
staff.POST("/batch/submit", authSrc.Permit("ARC_STAFF"), batchStaff)
|
||||
}
|
||||
|
||||
//监控规则
|
||||
monitor := group2.Group("/monitor")
|
||||
{
|
||||
monitor.GET("/rule/result", authSrc.Permit("MONITOR_RULE_READ"), monitorRuleResult) //查看监控规则结果
|
||||
monitor.GET("/rule/result/oids", monitorRuleResultOids)
|
||||
monitor.POST("/rule/update", authSrc.Permit("MONITOR_RULE_EDIT"), monitorRuleUpdate) //修改监控规则
|
||||
monitor.GET("/notify", monitorNotify)
|
||||
}
|
||||
|
||||
group2.POST("/archive/uptag", upArcTag)
|
||||
group2.POST("/archive/batch/tag", authSrc.Permit("BATCH_ARC_CHANNEL"), batchTag)
|
||||
group2.GET("/archive/channel/info", channelInfo)
|
||||
}
|
||||
group := e.Group("/va", vfySvc.Verify)
|
||||
{
|
||||
group.POST("/video/audit", videoAudit)
|
||||
group.POST("/video/batch/video", batchVideo)
|
||||
group.POST("/video/add", upVideo)
|
||||
group.POST("/video/change/index", changeIndex)
|
||||
group.POST("/video/del", delVideo)
|
||||
group.POST("/video/weblink/up", upWebLink)
|
||||
|
||||
group.POST("/archive/submit", submit)
|
||||
group.POST("/archive/batch/archive", batchArchive)
|
||||
group.POST("/archive/batch/databus", batchArchiveSecondRound)
|
||||
group.POST("/archive/batch/attrs", batchAttrs)
|
||||
group.POST("/archive/batch/types", batchTypeIDs)
|
||||
group.POST("/archive/auther/up", upAuther)
|
||||
group.POST("/archive/access/up", upAccess)
|
||||
group.GET("/archive/flow/hit", hitFlows)
|
||||
group.GET("/archive/aitrack", aiTrack)
|
||||
|
||||
group.POST("/cm/attr/up", upCMArr)
|
||||
group.POST("/cm/dtime/up", upCMArcDelay)
|
||||
|
||||
group.POST("/pgc/pass", passByPGC)
|
||||
group.POST("/pgc/modify", modifyByPGC)
|
||||
group.POST("/pgc/lock", lockByPGC)
|
||||
|
||||
group.GET("/track/archive", trackArchive)
|
||||
group.GET("/track/video", trackVideo)
|
||||
group.GET("/track/detail", trackDetail)
|
||||
|
||||
group.GET("/task/tooks", taskTooks)
|
||||
group.GET("/stats/points", statsPoints)
|
||||
|
||||
group.GET("/task/next", next)
|
||||
group.GET("/task/list", list)
|
||||
//同步音乐库 add,edit,delete ,log full sync tools
|
||||
group.POST("/music/sync", syncMusic)
|
||||
group.GET("/task/info", info)
|
||||
|
||||
monitor := group.Group("/monitor")
|
||||
{
|
||||
monitor.GET("/notify", monitorNotify)
|
||||
}
|
||||
}
|
||||
}
|
17
app/admin/main/videoup/http/local.go
Normal file
17
app/admin/main/videoup/http/local.go
Normal file
@ -0,0 +1,17 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
// ping check server ok.
|
||||
func ping(c *bm.Context) {
|
||||
|
||||
if vdaSvc.Ping(c) != nil {
|
||||
log.Error("videoup-admin service ping error")
|
||||
c.AbortWithStatus(http.StatusServiceUnavailable)
|
||||
}
|
||||
}
|
117
app/admin/main/videoup/http/monitor.go
Normal file
117
app/admin/main/videoup/http/monitor.go
Normal file
@ -0,0 +1,117 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go-common/app/admin/main/videoup/model/monitor"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
// monitorRuleResult 获取监控规则的监控结果
|
||||
func monitorRuleResult(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
res []*monitor.RuleResultData
|
||||
p = &monitor.RuleResultParams{}
|
||||
)
|
||||
if err = c.Bind(p); err != nil {
|
||||
return
|
||||
}
|
||||
if p == nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if p.Type == 0 || p.Business == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if res, err = vdaSvc.MonitorResult(c, p); err != nil {
|
||||
log.Error("vdaSvc.MonitorResult(%v) error(%v)", p, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(res, nil)
|
||||
}
|
||||
|
||||
// monitorRuleUpdate 更新/添加监控规则
|
||||
func monitorRuleUpdate(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
p = new(struct {
|
||||
Rule string `form:"rule" validate:"required"`
|
||||
})
|
||||
rule = &monitor.Rule{}
|
||||
)
|
||||
if err = c.Bind(p); err != nil {
|
||||
log.Error("c.Bind(%v) error(%v)", p, err)
|
||||
return
|
||||
}
|
||||
if p == nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if err = json.Unmarshal([]byte(p.Rule), rule); err != nil {
|
||||
log.Error("json.Unmarshal(%s) error(%v)", p.Rule, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if rule.Type == 0 || rule.Business == 0 || rule.RuleConf == nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
UID, _ := getUIDName(c)
|
||||
rule.UID = UID
|
||||
if err = vdaSvc.MonitorRuleUpdate(c, rule); err != nil {
|
||||
log.Error("vdaSvc.MonitorRuleUpdate(%v) error(%v)", rule, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
func monitorRuleResultOids(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
p = new(struct {
|
||||
Type int8 `form:"type" validate:"required"`
|
||||
Business int8 `form:"business" validate:"required"`
|
||||
ID int64 `form:"id" validate:"required"`
|
||||
})
|
||||
total int
|
||||
oidMap map[int64]int
|
||||
)
|
||||
if err = c.Bind(p); err != nil {
|
||||
log.Error("c.Bind(%v) error(%v)", p, err)
|
||||
return
|
||||
}
|
||||
if p.Type == 0 || p.Business == 0 || p.ID == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if total, oidMap, _, err = vdaSvc.MoniStayOids(c, p.Type, p.Business, p.ID); err != nil {
|
||||
log.Error("vdaSvc.MoniStatsOids(%v) error(%v)", p, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
r := new(struct {
|
||||
Total int `json:"total"`
|
||||
Oids map[int64]int `json:"oids"`
|
||||
})
|
||||
r.Total = total
|
||||
r.Oids = oidMap
|
||||
c.JSON(r, nil)
|
||||
}
|
||||
|
||||
func monitorNotify(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
res []*monitor.RuleResultData
|
||||
)
|
||||
if res, err = vdaSvc.MonitorNotifyResult(c); err != nil {
|
||||
log.Error("vdaSvc.MonitorNotifyResult() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(res, nil)
|
||||
}
|
71
app/admin/main/videoup/http/music.go
Normal file
71
app/admin/main/videoup/http/music.go
Normal file
@ -0,0 +1,71 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"github.com/jinzhu/gorm"
|
||||
"github.com/pkg/errors"
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/app/admin/main/videoup/model/music"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"go-common/library/net/http/blademaster/binding"
|
||||
)
|
||||
|
||||
const ()
|
||||
|
||||
func getUIDName(c *bm.Context) (uid int64, uname string) {
|
||||
unamei, ok := c.Get("username")
|
||||
if ok {
|
||||
uname = unamei.(string)
|
||||
}
|
||||
uidi, ok := c.Get("uid")
|
||||
if ok {
|
||||
uid = uidi.(int64)
|
||||
}
|
||||
return
|
||||
}
|
||||
func syncMusic(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
)
|
||||
mp := &music.Param{}
|
||||
if err = c.BindWith(mp, binding.Form); err != nil {
|
||||
log.Error("vdaSvc.syncMusic bind error(%+v)", err)
|
||||
log.Error("vdaSvc.syncMusic bind error trace(%+v)", errors.Wrap(err, "sync bind error"))
|
||||
return
|
||||
}
|
||||
m := &music.Music{Sid: mp.Sid, Name: mp.Name, Cover: mp.Cover, Stat: mp.Stat, Mid: mp.Mid, Musicians: mp.Musicians, Categorys: mp.Categorys, Playurl: mp.Playurl, PubTime: mp.PubTime, Duration: mp.Duration, Filesize: mp.Filesize, State: mp.State}
|
||||
if m.State != music.MusicDelete {
|
||||
m.State = music.MusicOpen
|
||||
}
|
||||
exist := music.Music{}
|
||||
if err = vdaSvc.DB.Where("sid=?", mp.Sid).First(&exist).Error; err != nil && err != gorm.ErrRecordNotFound {
|
||||
log.Error("vdaSvc.syncMusic find error(%+v)", err)
|
||||
c.JSON(nil, errors.Wrap(err, "sync find sid error"))
|
||||
return
|
||||
}
|
||||
uid, uname := getUIDName(c)
|
||||
if exist.ID > 0 {
|
||||
m.ID = exist.ID
|
||||
if err = vdaSvc.DB.Model(&music.Music{}).Where("sid=?", mp.Sid).Update(m).Update(map[string]int8{"state": m.State}).Error; err != nil {
|
||||
log.Error("vdaSvc.syncMusic update error(%+v)", err)
|
||||
c.JSON(nil, errors.Wrap(err, "sync update error"))
|
||||
return
|
||||
}
|
||||
if m.State == music.MusicDelete {
|
||||
vdaSvc.SendMusicLog(c, archive.LogClientArchiveMusicTypeMusic, &music.LogParam{ID: m.ID, UID: uid, UName: uname, Action: "del", Name: m.Name})
|
||||
} else {
|
||||
vdaSvc.SendMusicLog(c, archive.LogClientArchiveMusicTypeMusic, &music.LogParam{ID: m.ID, UID: uid, UName: uname, Action: "update", Name: m.Name})
|
||||
}
|
||||
|
||||
} else {
|
||||
if err = vdaSvc.DB.Create(m).Error; err != nil {
|
||||
log.Error("vdaSvc.syncMusic Create error(%+v)", err)
|
||||
c.JSON(nil, errors.Wrap(err, "sync add error"))
|
||||
return
|
||||
}
|
||||
vdaSvc.SendMusicLog(c, archive.LogClientArchiveMusicTypeMusic, &music.LogParam{ID: m.ID, UID: uid, UName: uname, Action: "add", Name: m.Name})
|
||||
}
|
||||
c.JSON(map[string]int64{
|
||||
"id": m.ID,
|
||||
}, nil)
|
||||
}
|
279
app/admin/main/videoup/http/oversea.go
Normal file
279
app/admin/main/videoup/http/oversea.go
Normal file
@ -0,0 +1,279 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go-common/app/admin/main/videoup/model/oversea"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// policyGroups 策略组列表
|
||||
func policyGroups(c *bm.Context) {
|
||||
var (
|
||||
uid int64
|
||||
err error
|
||||
data *oversea.PolicyGroupData
|
||||
)
|
||||
v := new(struct {
|
||||
UName string `form:"username"`
|
||||
GroupID int64 `form:"group_id"`
|
||||
Type int8 `form:"type"`
|
||||
State int8 `form:"state" default:"-1"`
|
||||
Pn int64 `form:"pn" default:"1"`
|
||||
Ps int64 `form:"ps" default:"20"`
|
||||
Order string `form:"order"`
|
||||
Sort string `form:"sort"`
|
||||
})
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if v.UName != "" {
|
||||
if uid, err = vdaSvc.GetUID(c, v.UName); err != nil {
|
||||
log.Warn("vdaSvc.GetUID(%s) error(%v)", v.UName, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
}
|
||||
data, err = vdaSvc.PolicyGroups(c, uid, v.GroupID, v.Type, v.State, v.Ps, v.Pn, v.Order, v.Sort)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.PolicyGroups() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(data, err)
|
||||
}
|
||||
|
||||
// archiveGroups 稿件的策略组
|
||||
func archiveGroups(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
)
|
||||
v := new(struct {
|
||||
Aid int64 `form:"aid" validate:"required"`
|
||||
})
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
groups, err := vdaSvc.ArchiveGroups(c, v.Aid)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.ArchiveGroups() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(groups, err)
|
||||
}
|
||||
|
||||
// addPolicyGroup 添加策略组
|
||||
func addPolicyGroup(c *bm.Context) {
|
||||
var (
|
||||
v = new(struct {
|
||||
Name string `form:"name" validate:"required"`
|
||||
Type int8 `form:"type" validate:"required"`
|
||||
Remark string `form:"remark" default:""`
|
||||
})
|
||||
group = &oversea.PolicyGroup{}
|
||||
uid, _ = getUIDName(c)
|
||||
err error
|
||||
)
|
||||
if uid == 0 {
|
||||
c.JSON(nil, ecode.Unauthorized)
|
||||
return
|
||||
}
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if v.Name == "" {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
group.Name = v.Name
|
||||
group.Type = v.Type
|
||||
group.UID = uid
|
||||
group.Remark = v.Remark
|
||||
err = vdaSvc.AddPolicyGroup(c, group)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.AddPolicyGroup() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(group, nil)
|
||||
}
|
||||
|
||||
// editPolicyGroup 编辑策略组
|
||||
func editPolicyGroup(c *bm.Context) {
|
||||
var (
|
||||
v = new(struct {
|
||||
ID int64 `form:"id" validate:"required"`
|
||||
Name string `form:"name" validate:"required"`
|
||||
Remark string `form:"remark" default:""`
|
||||
})
|
||||
attrs = make(map[string]interface{})
|
||||
uid, _ = getUIDName(c)
|
||||
err error
|
||||
)
|
||||
if uid == 0 {
|
||||
c.JSON(nil, ecode.Unauthorized)
|
||||
return
|
||||
}
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
attrs["name"] = v.Name
|
||||
attrs["uid"] = uid
|
||||
attrs["remark"] = v.Remark
|
||||
err = vdaSvc.UpdatePolicyGroup(c, v.ID, attrs)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.UpdatePolicyGroup() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// delPolicyGroups 删除策略组
|
||||
func delPolicyGroups(c *bm.Context) {
|
||||
upPolicyGroupStates(c, oversea.StateDeleted)
|
||||
}
|
||||
|
||||
// restorePolicyGroups 恢复策略组
|
||||
func restorePolicyGroups(c *bm.Context) {
|
||||
upPolicyGroupStates(c, oversea.StateOK)
|
||||
}
|
||||
|
||||
// upPolicyGroupStates 修改策略组状态
|
||||
func upPolicyGroupStates(c *bm.Context, state int8) {
|
||||
var (
|
||||
v = new(struct {
|
||||
IDStr string `form:"ids" validate:"required"`
|
||||
})
|
||||
attrs = make(map[string]interface{})
|
||||
intIDs []int64
|
||||
strIDs []string
|
||||
uid, _ = getUIDName(c)
|
||||
err error
|
||||
)
|
||||
if uid == 0 {
|
||||
c.JSON(nil, ecode.Unauthorized)
|
||||
return
|
||||
}
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
strIDs = strings.Split(v.IDStr, ",")
|
||||
intIDs = make([]int64, len(strIDs))
|
||||
for i, id := range strIDs {
|
||||
intIDs[i], err = strconv.ParseInt(id, 10, 64)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
}
|
||||
attrs["state"] = state
|
||||
attrs["uid"] = uid
|
||||
err = vdaSvc.UpdatePolicyGroups(c, intIDs, attrs)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// policies 策略组下的策略
|
||||
func policies(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
v = new(struct {
|
||||
Gid int64 `form:"group_id" validate:"required"`
|
||||
})
|
||||
)
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if v.Gid == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
items, err := vdaSvc.PolicyItems(c, v.Gid)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.PolicyItems() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(items, nil)
|
||||
}
|
||||
|
||||
// addPolicies 添加策略
|
||||
func addPolicies(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
v = new(struct {
|
||||
Gid int64 `form:"group_id" validate:"required"`
|
||||
JSON string `form:"items" validate:"required"`
|
||||
})
|
||||
items []*oversea.PolicyParams
|
||||
uid, _ = getUIDName(c)
|
||||
)
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if err = json.Unmarshal([]byte(v.JSON), &items); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if v.Gid == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
err = vdaSvc.AddPolicies(c, uid, v.Gid, items)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.AddPolicies() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// delPolicies 删除策略
|
||||
func delPolicies(c *bm.Context) {
|
||||
var (
|
||||
v = new(struct {
|
||||
Gid int64 `form:"group_id" validate:"required"`
|
||||
IDStr string `form:"ids" validate:"required"`
|
||||
})
|
||||
uid, _ = getUIDName(c)
|
||||
intIDs []int64
|
||||
strIDs []string
|
||||
err error
|
||||
)
|
||||
if err = c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
strIDs = strings.Split(v.IDStr, ",")
|
||||
intIDs = make([]int64, len(strIDs))
|
||||
for i, id := range strIDs {
|
||||
intIDs[i], err = strconv.ParseInt(id, 10, 64)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
}
|
||||
err = vdaSvc.DelPolices(c, uid, v.Gid, intIDs)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.DelPolices() err(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
135
app/admin/main/videoup/http/pgc.go
Normal file
135
app/admin/main/videoup/http/pgc.go
Normal file
@ -0,0 +1,135 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"time"
|
||||
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
// passByPGC update archive state pass by pgc
|
||||
func passByPGC(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap struct {
|
||||
Aid int64 `json:"aid"`
|
||||
Gid int64 `json:"gid"`
|
||||
IsJump int32 `json:"is_jump"`
|
||||
AllowBp int32 `json:"allow_bp"`
|
||||
IsBangumi int32 `json:"is_bangumi"`
|
||||
IsMovie int32 `json:"is_movie"`
|
||||
BadgePay int32 `json:"is_pay"`
|
||||
IsPGC int32 `json:"is_pgc"`
|
||||
RedirectURL string `json:"redirect_url"`
|
||||
}
|
||||
if err = json.Unmarshal(bs, &ap); err != nil {
|
||||
log.Error("http upArchiveArr() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ap.Aid == 0 {
|
||||
log.Error("aid==0")
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
attrs := make(map[uint]int32, 7)
|
||||
attrs[archive.AttrBitJumpURL] = ap.IsJump
|
||||
attrs[archive.AttrBitAllowBp] = ap.AllowBp
|
||||
attrs[archive.AttrBitIsBangumi] = ap.IsBangumi
|
||||
attrs[archive.AttrBitIsMovie] = ap.IsMovie
|
||||
attrs[archive.AttrBitBadgepay] = ap.BadgePay
|
||||
attrs[archive.AttrBitIsPGC] = ap.IsPGC
|
||||
attrs[archive.AttrBitLimitArea] = 0
|
||||
if ap.Gid > 1 {
|
||||
attrs[archive.AttrBitLimitArea] = 1
|
||||
}
|
||||
c.JSON(nil, vdaSvc.PassByPGC(c, ap.Aid, ap.Gid, attrs, ap.RedirectURL, time.Now()))
|
||||
}
|
||||
|
||||
// modifyByPGC update archive attr by pgc
|
||||
func modifyByPGC(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap struct {
|
||||
Aid int64 `json:"aid"`
|
||||
Gid int64 `json:"gid"`
|
||||
IsJump int32 `json:"is_jump"`
|
||||
AllowBp int32 `json:"allow_bp"`
|
||||
IsBangumi int32 `json:"is_bangumi"`
|
||||
IsMovie int32 `json:"is_movie"`
|
||||
BadgePay int32 `json:"is_pay"`
|
||||
IsPGC int32 `json:"is_pgc"`
|
||||
RedirectURL string `json:"redirect_url"`
|
||||
}
|
||||
if err = json.Unmarshal(bs, &ap); err != nil {
|
||||
log.Error("http modArchiveArr() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ap.Aid == 0 {
|
||||
log.Error("aid==0")
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
attrs := make(map[uint]int32, 7)
|
||||
attrs[archive.AttrBitJumpURL] = ap.IsJump
|
||||
attrs[archive.AttrBitAllowBp] = ap.AllowBp
|
||||
attrs[archive.AttrBitIsBangumi] = ap.IsBangumi
|
||||
attrs[archive.AttrBitIsMovie] = ap.IsMovie
|
||||
attrs[archive.AttrBitBadgepay] = ap.BadgePay
|
||||
attrs[archive.AttrBitIsPGC] = ap.IsPGC
|
||||
attrs[archive.AttrBitLimitArea] = 0
|
||||
if ap.Gid > 1 {
|
||||
attrs[archive.AttrBitLimitArea] = 1
|
||||
}
|
||||
|
||||
c.JSON(nil, vdaSvc.ModifyByPGC(c, ap.Aid, ap.Gid, attrs, ap.RedirectURL))
|
||||
}
|
||||
|
||||
// lockByPGC update archive state to lockbid by pgc
|
||||
func lockByPGC(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var ap struct {
|
||||
Aid int64 `json:"aid"`
|
||||
}
|
||||
if err = json.Unmarshal(bs, &ap); err != nil {
|
||||
log.Error("http struct aid json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ap.Aid == 0 {
|
||||
log.Error("aid==0")
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.LockByPGC(c, ap.Aid))
|
||||
}
|
92
app/admin/main/videoup/http/search.go
Normal file
92
app/admin/main/videoup/http/search.go
Normal file
@ -0,0 +1,92 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go-common/app/admin/main/videoup/model/search"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
// searchVideo search video entrance
|
||||
func searchVideo(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
)
|
||||
p := &search.VideoParams{}
|
||||
|
||||
if err = c.Bind(p); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
if p.Action == "trash" {
|
||||
authSrc.Permit("VIDEO_TRASH")(c)
|
||||
} else if p.Action == "list" {
|
||||
authSrc.Permit("VIDEO_LIST")(c)
|
||||
}
|
||||
if c.IsAborted() {
|
||||
return
|
||||
}
|
||||
if p.MonitorList != "" { //如果是监控列表,则去掉其他筛选条件(监控列表没有接搜索)
|
||||
p = &search.VideoParams{
|
||||
MonitorList: p.MonitorList,
|
||||
Pn: p.Pn,
|
||||
Ps: p.Ps,
|
||||
}
|
||||
}
|
||||
videoData, err := vdaSvc.SearchVideo(c, p)
|
||||
if err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(videoData, nil)
|
||||
}
|
||||
|
||||
// searchCopyright search copyright entrance
|
||||
func searchCopyright(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
p struct {
|
||||
Kw string `form:"text"`
|
||||
}
|
||||
)
|
||||
if err = c.Bind(&p); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
copyright, err := vdaSvc.SearchCopyright(c, p.Kw)
|
||||
if err != nil {
|
||||
log.Error("searchCopyright(%v) error(%v)", p, err)
|
||||
c.JSONMap(map[string]interface{}{
|
||||
"message": fmt.Sprintf("版权接口请求失败error(%v)。找谷安-Kwan", err),
|
||||
}, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(copyright.Result, nil)
|
||||
}
|
||||
|
||||
func searchArchive(c *bm.Context) {
|
||||
var (
|
||||
err error
|
||||
)
|
||||
p := &search.ArchiveParams{}
|
||||
|
||||
if err = c.Bind(p); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
archiveData, err := vdaSvc.SearchArchive(c, p)
|
||||
if c.IsAborted() {
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
log.Error("searchArchive(%v) error(%v)", p, err)
|
||||
c.JSONMap(map[string]interface{}{
|
||||
"message": fmt.Sprintf("搜索接口请求失败error(%v)。", err),
|
||||
}, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(archiveData, nil)
|
||||
}
|
59
app/admin/main/videoup/http/staff.go
Normal file
59
app/admin/main/videoup/http/staff.go
Normal file
@ -0,0 +1,59 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
func staffs(c *bm.Context) {
|
||||
v := new(struct {
|
||||
AID int64 `form:"aid" validate:"required"`
|
||||
})
|
||||
if err := c.Bind(v); err != nil {
|
||||
return
|
||||
}
|
||||
log.Info("staffs data(%v)", v)
|
||||
c.JSON(vdaSvc.Staffs(c, v.AID))
|
||||
}
|
||||
|
||||
//batchStaff .
|
||||
func batchStaff(c *bm.Context) {
|
||||
v := new(struct {
|
||||
AID int64 `form:"aid" validate:"required"`
|
||||
DelAll int8 `form:"del_all"`
|
||||
Staffs string `form:"staffs"`
|
||||
})
|
||||
if err := c.Bind(v); err != nil {
|
||||
return
|
||||
}
|
||||
log.Info("batchStaff data(%v)", v)
|
||||
var err error
|
||||
var aps = &archive.StaffBatchParam{}
|
||||
if err = json.Unmarshal([]byte(v.Staffs), &aps.Staffs); err != nil {
|
||||
log.Error("http batchStaff Staffs json.Unmarshal(%s) error(%v)", v.Staffs, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if v.AID == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if len(aps.Staffs) == 0 && v.DelAll != 1 {
|
||||
log.Info("batchStaff del_all data is wrong(%v) staffs(%+v)", v, aps)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if aps.Staffs == nil {
|
||||
aps.Staffs = []*archive.StaffParam{}
|
||||
}
|
||||
if ok := vdaSvc.CheckStaff(aps.Staffs); !ok {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
aps.AID = v.AID
|
||||
c.JSON(nil, vdaSvc.StaffApplyBatchSubmit(c, aps))
|
||||
}
|
49
app/admin/main/videoup/http/stats.go
Normal file
49
app/admin/main/videoup/http/stats.go
Normal file
@ -0,0 +1,49 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"go-common/library/ecode"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// statsPoints get stats points data
|
||||
func statsPoints(c *bm.Context) {
|
||||
req := c.Request
|
||||
params := req.Form
|
||||
stimeStr := params.Get("stime")
|
||||
etimeStr := params.Get("etime")
|
||||
typeStr := params.Get("type")
|
||||
if stimeStr == "" {
|
||||
stimeStr = time.Now().Format("2006-01-02") + " 00:00:00"
|
||||
}
|
||||
if etimeStr == "" {
|
||||
etimeStr = time.Now().Format("2006-01-02 15:04:05")
|
||||
}
|
||||
if typeStr == "" {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
local, _ := time.LoadLocation("Local")
|
||||
stime, err := time.ParseInLocation("2006-01-02 15:04:05", stimeStr, local)
|
||||
if stime.Unix() < 1 || err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
etime, err := time.ParseInLocation("2006-01-02 15:04:05", etimeStr, local)
|
||||
if etime.Unix() < 1 || err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
typeInt, err := strconv.Atoi(typeStr)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
points, err := vdaSvc.StatsPoints(c, stime, etime, int8(typeInt))
|
||||
if err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(points, nil)
|
||||
}
|
320
app/admin/main/videoup/http/task.go
Normal file
320
app/admin/main/videoup/http/task.go
Normal file
@ -0,0 +1,320 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
"go-common/library/net/http/blademaster/render"
|
||||
)
|
||||
|
||||
func taskTooks(c *bm.Context) {
|
||||
req := c.Request
|
||||
params := req.Form
|
||||
stimeStr := params.Get("stime")
|
||||
etimeStr := params.Get("etime")
|
||||
if stimeStr == "" {
|
||||
stimeStr = time.Now().Format("2006-01-02") + " 00:00:00"
|
||||
}
|
||||
if etimeStr == "" {
|
||||
etimeStr = time.Now().Format("2006-01-02 15:04:05")
|
||||
}
|
||||
local, _ := time.LoadLocation("Local")
|
||||
stime, err := time.ParseInLocation("2006-01-02 15:04:05", stimeStr, local)
|
||||
if stime.Unix() < 1 || err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
etime, err := time.ParseInLocation("2006-01-02 15:04:05", etimeStr, local)
|
||||
if etime.Unix() < 1 || err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
tooks, err := vdaSvc.TaskTooksByHalfHour(c, stime, etime)
|
||||
if err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(tooks, nil)
|
||||
}
|
||||
|
||||
func next(c *bm.Context) {
|
||||
uidS := c.Request.Form.Get("uid")
|
||||
uid, err := strconv.Atoi(uidS)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
task, err := vdaSvc.Next(c, int64(uid))
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.Next(uid=%d) error(%v)", uid, err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(task, nil)
|
||||
}
|
||||
|
||||
func list(c *bm.Context) {
|
||||
v := new(struct {
|
||||
UID int64 `form:"uid" default:"0"`
|
||||
IsLeader int8 `form:"isleader" default:"0"`
|
||||
Lt int8 `form:"listtype" default:"0"`
|
||||
Pn int `form:"page" default:"1"`
|
||||
Ps int `form:"pagesize" default:"20"`
|
||||
})
|
||||
|
||||
err := c.Bind(v)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
tasks, err := vdaSvc.List(c, v.UID, v.Pn, v.Ps, v.Lt, v.IsLeader)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.List(uid=%d,page=%d, pagesize=%d, listtype=%d, isleader=%d) error(%v)",
|
||||
v.UID, v.Pn, v.Ps, v.Lt, v.IsLeader, err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(tasks, nil)
|
||||
}
|
||||
|
||||
func info(c *bm.Context) {
|
||||
tidS := c.Request.Form.Get("taskid")
|
||||
tid, err := strconv.Atoi(tidS)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
task, err := vdaSvc.Info(c, int64(tid))
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.Info(taskid=%d) error(%v)", tid, err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(task, nil)
|
||||
}
|
||||
|
||||
// 权重管理
|
||||
func addwtconf(c *bm.Context) {
|
||||
var err error
|
||||
cfg := &archive.WeightConf{}
|
||||
if err = c.Bind(cfg); err != nil {
|
||||
log.Error("addwtconf error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
uid, uname := getUIDName(c)
|
||||
err = vdaSvc.AddWeightConf(c, cfg, uid, uname)
|
||||
if err != nil {
|
||||
data := map[string]interface{}{
|
||||
"code": ecode.RequestErr,
|
||||
"message": err.Error(),
|
||||
}
|
||||
c.Render(http.StatusOK, render.MapJSON(data))
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
func delwtconf(c *bm.Context) {
|
||||
var err error
|
||||
ids := c.Request.Form.Get("id")
|
||||
id, err := strconv.Atoi(ids)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(vdaSvc.DelWeightConf(c, int64(id)), nil)
|
||||
}
|
||||
|
||||
func listwtconf(c *bm.Context) {
|
||||
v := new(archive.Confs)
|
||||
if err := c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(vdaSvc.ListWeightConf(c, v))
|
||||
}
|
||||
|
||||
func maxweight(c *bm.Context) {
|
||||
c.JSON(vdaSvc.MaxWeight(c))
|
||||
}
|
||||
|
||||
func listwtlog(c *bm.Context) {
|
||||
v := new(struct {
|
||||
Taskid int64 `form:"taskid" validate:"required"`
|
||||
Pn int `form:"page" default:"1"`
|
||||
Ps int `form:"ps" default:"20"`
|
||||
})
|
||||
if err := c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
cfg, count, err := vdaSvc.ListWeightLogs(c, v.Taskid, v.Pn)
|
||||
if err != nil {
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
data := make(map[string]interface{})
|
||||
data["data"] = cfg
|
||||
data["pager"] = map[string]int{
|
||||
"current_page": v.Pn,
|
||||
"total_items": int(count),
|
||||
"page_size": 20,
|
||||
}
|
||||
c.JSONMap(data, err)
|
||||
}
|
||||
|
||||
func show(c *bm.Context) {
|
||||
c.JSON(vdaSvc.ShowWeightVC(c))
|
||||
}
|
||||
|
||||
func set(c *bm.Context) {
|
||||
v := new(archive.WeightVC)
|
||||
if err := c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.SetWeightVC(c, v))
|
||||
}
|
||||
|
||||
// 登录管理
|
||||
func on(c *bm.Context) {
|
||||
uid, uname := getUIDName(c)
|
||||
err := vdaSvc.HandsUp(c, uid, uname)
|
||||
if err != nil {
|
||||
data := map[string]interface{}{
|
||||
"code": ecode.RequestErr,
|
||||
"message": err.Error(),
|
||||
}
|
||||
c.Render(http.StatusOK, render.MapJSON(data))
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
// 踢出
|
||||
func forceoff(c *bm.Context) {
|
||||
uidS := c.Request.Form.Get("uid")
|
||||
uid, _ := strconv.ParseInt(uidS, 10, 64)
|
||||
if uid == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
adminuid, _ := getUIDName(c)
|
||||
err := vdaSvc.HandsOff(c, adminuid, uid)
|
||||
if err != nil {
|
||||
data := map[string]interface{}{
|
||||
"code": ecode.RequestErr,
|
||||
"message": err.Error(),
|
||||
}
|
||||
c.Render(http.StatusOK, render.MapJSON(data))
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
func off(c *bm.Context) {
|
||||
adminuid, _ := getUIDName(c)
|
||||
err := vdaSvc.HandsOff(c, adminuid, 0)
|
||||
if err != nil {
|
||||
data := map[string]interface{}{
|
||||
"code": ecode.RequestErr,
|
||||
"message": err.Error(),
|
||||
}
|
||||
c.Render(http.StatusOK, render.MapJSON(data))
|
||||
return
|
||||
}
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
func online(c *bm.Context) {
|
||||
c.JSON(vdaSvc.Online(c))
|
||||
}
|
||||
|
||||
func inoutlist(c *bm.Context) {
|
||||
v := new(struct {
|
||||
Unames string `form:"unames" default:""`
|
||||
Bt string `form:"bt" default:""`
|
||||
Et string `form:"et" default:""`
|
||||
})
|
||||
if err := c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(vdaSvc.InOutList(c, v.Unames, v.Bt, v.Et))
|
||||
}
|
||||
|
||||
// 任务管理
|
||||
func delay(c *bm.Context) {
|
||||
v := new(struct {
|
||||
Taskid int64 `form:"task_id" validate:"required"`
|
||||
Reason string `form:"reason"`
|
||||
})
|
||||
if err := c.Bind(v); err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
uid, _ := getUIDName(c)
|
||||
c.JSON(nil, vdaSvc.Delay(c, v.Taskid, uid, v.Reason))
|
||||
}
|
||||
|
||||
func taskfree(c *bm.Context) {
|
||||
var uid, rows int64
|
||||
uid, _ = getUIDName(c)
|
||||
rows = vdaSvc.Free(c, uid)
|
||||
log.Info("释放任务(uid=%d,rows=%d)", uid, rows)
|
||||
c.JSON(nil, nil)
|
||||
}
|
||||
|
||||
func checkgroup() bm.HandlerFunc {
|
||||
return func(ctx *bm.Context) {
|
||||
uid, _ := getUIDName(ctx)
|
||||
role, err := vdaSvc.CheckGroup(ctx, uid)
|
||||
if err != nil || role == 0 {
|
||||
data := map[string]interface{}{
|
||||
"code": ecode.RequestErr,
|
||||
"message": "权限错误",
|
||||
}
|
||||
ctx.Render(http.StatusOK, render.MapJSON(data))
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 校验任务操作权限
|
||||
func checkowner() bm.HandlerFunc {
|
||||
return func(ctx *bm.Context) {
|
||||
tidS := ctx.Request.Form.Get("task_id")
|
||||
tid, err := strconv.Atoi(tidS)
|
||||
if err != nil {
|
||||
ctx.JSON(nil, ecode.RequestErr)
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
uid, _ := getUIDName(ctx)
|
||||
if err := vdaSvc.CheckOwner(ctx, int64(tid), uid); err != nil {
|
||||
data := map[string]interface{}{
|
||||
"code": ecode.RequestErr,
|
||||
"message": err.Error(),
|
||||
}
|
||||
ctx.Render(http.StatusOK, render.MapJSON(data))
|
||||
ctx.Abort()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
69
app/admin/main/videoup/http/track.go
Normal file
69
app/admin/main/videoup/http/track.go
Normal file
@ -0,0 +1,69 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
// trackArchive get archive list.
|
||||
func trackArchive(c *bm.Context) {
|
||||
params := c.Request.Form
|
||||
aidStr := params.Get("aid")
|
||||
aid, err := strconv.ParseInt(aidStr, 10, 64)
|
||||
if err != nil {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
arcTrack, err := vdaSvc.TrackArchiveInfo(c, aid)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.TrackArchiveInfo (aid(%d)) error(%v)", aid, err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(arcTrack, nil)
|
||||
}
|
||||
|
||||
//trackDetail 稿件信视频息追踪详情页
|
||||
func trackDetail(c *bm.Context) {
|
||||
params := c.Request.Form
|
||||
hidStr := params.Get("hid")
|
||||
hid, err := strconv.ParseInt(hidStr, 10, 64)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.trackDetail strconv.ParseInt(%s) error(%v)", hidStr, err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
history, err := vdaSvc.TrackHistoryDetail(c, hid)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.TrackHistoryDetail (hid(%d)) error(%v)", hid, err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(history, nil)
|
||||
}
|
||||
|
||||
// trackVideo get video process.
|
||||
func trackVideo(c *bm.Context) {
|
||||
params := c.Request.Form
|
||||
fn := params.Get("filename")
|
||||
aid, err := strconv.ParseInt(params.Get("aid"), 10, 64)
|
||||
if err != nil {
|
||||
log.Error("trackVideo strconv.ParseInt error(%v) aid(%s)", err, params.Get("aid"))
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
|
||||
// video
|
||||
video, err := vdaSvc.TrackVideo(c, fn, aid)
|
||||
if err != nil {
|
||||
log.Error("vdaSvc.TrackVideo(%s, aid(%d)) error(%v)", fn, aid, err)
|
||||
c.JSON(nil, err)
|
||||
return
|
||||
}
|
||||
c.JSON(video, nil)
|
||||
}
|
175
app/admin/main/videoup/http/video.go
Normal file
175
app/admin/main/videoup/http/video.go
Normal file
@ -0,0 +1,175 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
|
||||
"go-common/app/admin/main/videoup/model/archive"
|
||||
"go-common/library/ecode"
|
||||
"go-common/library/log"
|
||||
bm "go-common/library/net/http/blademaster"
|
||||
)
|
||||
|
||||
// videoAudit up firstRound info.
|
||||
func videoAudit(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var vp = &archive.VideoParam{}
|
||||
if err = json.Unmarshal(bs, &vp); err != nil {
|
||||
log.Error("http firstRound() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if vp.ID == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
attrs := make(map[uint]int32, 6)
|
||||
attrs[archive.AttrBitNoRank] = vp.Attrs.NoRank
|
||||
attrs[archive.AttrBitNoDynamic] = vp.Attrs.NoDynamic
|
||||
attrs[archive.AttrBitNoSearch] = vp.Attrs.NoSearch
|
||||
attrs[archive.AttrBitNoRecommend] = vp.Attrs.NoRecommend
|
||||
attrs[archive.AttrBitOverseaLock] = vp.Attrs.OverseaLock
|
||||
attrs[archive.AttrBitPushBlog] = vp.Attrs.PushBlog
|
||||
if vp.TagID > 0 && vp.Status >= 0 {
|
||||
attrs[archive.AttrBitParentMode] = 1
|
||||
}
|
||||
c.JSON(nil, vdaSvc.VideoAudit(c, vp, attrs))
|
||||
}
|
||||
|
||||
func batchVideo(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var vps = []*archive.VideoParam{}
|
||||
if err = json.Unmarshal(bs, &vps); err != nil {
|
||||
log.Error("http firstRound() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if len(vps) == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if ok := vdaSvc.CheckVideo(vps); !ok {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.BatchVideo(c, vps, archive.ActionVideoSubmit))
|
||||
}
|
||||
|
||||
func upVideo(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var vp = &archive.VideoParam{}
|
||||
if err = json.Unmarshal(bs, &vp); err != nil {
|
||||
log.Error("http firstRound() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if vp.Aid == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.UpVideo(c, vp))
|
||||
}
|
||||
|
||||
func upWebLink(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var vp = &archive.VideoParam{}
|
||||
if err = json.Unmarshal(bs, &vp); err != nil {
|
||||
log.Error("http firstRound() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if vp.ID == 0 || vp.WebLink == "" {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.UpWebLink(c, vp))
|
||||
}
|
||||
|
||||
func delVideo(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var vp = &archive.VideoParam{}
|
||||
if err = json.Unmarshal(bs, &vp); err != nil {
|
||||
log.Error("http firstRound() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
// TODO check data.
|
||||
if vp.ID == 0 {
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.DelVideo(c, vp))
|
||||
}
|
||||
|
||||
func changeIndex(c *bm.Context) {
|
||||
req := c.Request
|
||||
// read
|
||||
bs, err := ioutil.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
log.Error("ioutil.ReadAll() error(%v)", err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
req.Body.Close()
|
||||
// params
|
||||
var lo = &archive.IndexParam{}
|
||||
if err = json.Unmarshal(bs, &lo); err != nil {
|
||||
log.Error("http changeIndex() json.Unmarshal(%s) error(%v)", string(bs), err)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
if lo.Aid == 0 {
|
||||
log.Error("aid==%d", lo.Aid)
|
||||
c.JSON(nil, ecode.RequestErr)
|
||||
return
|
||||
}
|
||||
c.JSON(nil, vdaSvc.ChangeIndex(c, lo))
|
||||
}
|
Reference in New Issue
Block a user