Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"archive.go",
"flow.go",
"http.go",
"local.go",
"netsafe.go",
"pgc.go",
"porder.go",
"reco.go",
"report.go",
"staff.go",
"ugc.go",
"video.go",
],
importpath = "go-common/app/service/main/videoup/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/videoup/conf:go_default_library",
"//app/service/main/videoup/model/archive:go_default_library",
"//app/service/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/middleware/antispam:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
"//library/sync/errgroup:go_default_library",
"//library/xstr: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"],
)

View File

@@ -0,0 +1,450 @@
package http
import (
"encoding/json"
"io/ioutil"
"strconv"
"time"
"go-common/app/service/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/sync/errgroup"
"go-common/library/xstr"
)
func simpleArchive(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
modeStr := params.Get("mode")
// check params
mode, _ := strconv.Atoi(modeStr)
if mode <= 0 || mode > 2 {
mode = 0 // 0 novideo 1 open video 2 all video
}
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
av, err := vdpSvc.SimpleArchive(c, aid, mode)
if err != nil {
log.Error(" vdpSvc.SimpleArchive(%d) error(%v)", aid, err)
c.JSON(nil, err)
return
}
c.JSON(av, nil)
}
func simpleVideos(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
// check params
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
vs, err := vdpSvc.SimpleVideos(c, aid)
if err != nil {
log.Error(" vdpSvc.SimpleVideos(%d) error(%v)", aid, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(vs, nil)
}
// viewArchive get archive info.
func viewArchive(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
withPOIStr := params.Get("need_poi")
withVoteStr := params.Get("need_vote")
// check params
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
av, err := vdpSvc.Archive(c, aid)
if err != nil {
log.Error(" vdpSvc.Archive(%d) error(%v)", aid, err)
c.JSON(nil, ecode.RequestErr)
return
}
//详情页展示LBS
var poi *archive.PoiObj
eg, errCtx := errgroup.WithContext(c)
if withPOIStr == "1" {
eg.Go(func() (err error) {
poi, _ = vdpSvc.ArchivePOI(errCtx, aid)
return nil
})
}
var vote *archive.Vote
if withVoteStr == "1" {
eg.Go(func() (err error) {
vote, _ = vdpSvc.ArchiveVote(errCtx, aid)
return nil
})
}
eg.Wait()
if poi != nil {
av.Archive.POI = poi
}
if vote != nil {
av.Archive.Vote = vote
}
//详情页展示staff
var staffs []*archive.StaffApply
if staffs, err = vdpSvc.ApplysByAID(c, aid); err != nil || staffs == nil || len(staffs) == 0 {
log.Error(" vdpSvc.ApplysByAID(%d) error(%v)", aid, err)
} else {
av.Archive.Staffs = staffs
}
c.JSON(av, nil)
}
// viewArchives get archive info.
func viewArchives(c *bm.Context) {
params := c.Request.Form
aidsStr := params.Get("aids")
// check params
aids, err := xstr.SplitInts(aidsStr)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidsStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
if len(aids) > 50 {
log.Error("viewArchives aids(%s) too long, appkey(%s)", aidsStr, params.Get("appkey"))
c.JSON(nil, ecode.RequestErr)
return
}
avm, err := vdpSvc.Archives(c, aids)
if err != nil {
log.Error(" vdpSvc.Archive(%d) error(%v)", aids, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(avm, nil)
}
// archivesByMid get archive list by mid.
func archivesByMid(c *bm.Context) {
params := c.Request.Form
// check params
midStr := params.Get("mid")
pnStr := params.Get("pn")
psStr := params.Get("ps")
groupStr := params.Get("group")
mid, _ := strconv.ParseInt(midStr, 10, 64)
if mid <= 0 {
log.Error("http.archivesByMid mid(%d) <=0 ", mid)
c.JSON(nil, ecode.RequestErr)
return
}
pn, _ := strconv.Atoi(pnStr)
if pn <= 0 {
pn = 1
}
ps, _ := strconv.Atoi(psStr)
if ps <= 0 || ps > 100 {
ps = 10
}
group, _ := strconv.Atoi(groupStr)
gp := int8(group)
if gp < 0 || gp > 2 {
gp = 0
}
uav, err := vdpSvc.UpArchives(c, mid, pn, ps, gp)
if err != nil {
log.Error(" vdpSvc.Archive(%d,%d,%d,%d) error(%v)", mid, pn, ps, gp, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(uav, nil)
}
// upArchiveTag add archive.
func upArchiveTag(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
tag := params.Get("tag")
// check params
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
return
}
c.JSON(nil, vdpSvc.UpTag(c, aid, tag))
}
// delArchive del archive.
func delArchive(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http delArchive() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Aid == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, vdpSvc.DelArchive(c, ap.Aid, ap.Mid))
}
// arcHistory get archive edit history.
func arcHistory(c *bm.Context) {
params := c.Request.Form
hidStr := params.Get("hid")
// check params
hid, err := strconv.ParseInt(hidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(hid(%s)) error(%v)", hidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(vdpSvc.ArcHistory(c, hid), nil)
}
// arcHistorys get archive edit history.
func arcHistorys(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
// check params
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(aid(%s)) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(vdpSvc.ArcHistorys(c, aid), nil)
}
// types get all types info
func types(c *bm.Context) {
c.JSON(vdpSvc.Types(c), nil)
}
// videoBycid get video bid cid
func videoBycid(c *bm.Context) {
params := c.Request.Form
cidStr := params.Get("cid")
// check params
cid, err := strconv.ParseInt(cidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(cid(%s)) error(%v)", cidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
v, err := vdpSvc.VideoBycid(c, cid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(v, nil)
}
// archivesByCids get archives by cids
func archivesByCids(c *bm.Context) {
params := c.Request.Form
cidsStr := params.Get("cids")
appkey := params.Get("appkey")
// check params
if appkey != config.DmVerifyKey {
log.Warn("appkey(%s) invalid", appkey)
c.JSON(nil, ecode.AppKeyInvalid)
return
}
cids, err := xstr.SplitInts(cidsStr)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", cidsStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
if len(cids) > 100 {
log.Error("cids(%d) number gt 100", len(cids))
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(vdpSvc.ArchivesByCids(c, cids), nil)
}
// flows get flow list
func flows(c *bm.Context) {
c.JSON(vdpSvc.Flows(c), nil)
}
// flows get specialUps list
func specialUps(c *bm.Context) {
params := c.Request.Form
groupStr := params.Get("group_id")
var err error
// check params
//default all groups
groupID := int64(0)
if groupStr != "" {
groupID, err = strconv.ParseInt(groupStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(groupStr(%s)) error(%v)", groupStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
}
c.JSON(vdpSvc.UpsByGroup(c, groupID), nil)
}
// arcReasonTag .
func arcReasonTag(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
var (
aid, tagID int64
err error
)
aid, err = strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(aidStr(%s)) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
tagID, err = vdpSvc.ArcTag(c, aid)
if err != nil {
log.Error("vdpSvc.ArcTag error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(map[string]interface{}{
"tag_id": tagID,
}, nil)
}
//flowForbid
func flowForbid(c *bm.Context) {
c.JSON(vdpSvc.UpsForbid(c), nil)
}
func appFeedAids(c *bm.Context) {
aids, err := vdpSvc.AppFeedAids(c)
if err != nil {
log.Error("vdpSvc.AppFeedAids() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(aids, nil)
}
func descFormats(c *bm.Context) {
dfs, err := vdpSvc.DescFormats(c)
if err != nil {
log.Error("vdpSvc.DescFormats() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(dfs, nil)
}
// videoJam video check traffic jam time
func videoJam(c *bm.Context) {
level, _ := vdpSvc.VideoJamLevel(c)
c.JSON(map[string]interface{}{
"level": level,
}, nil)
}
// archiveAddit get archive addit
func archiveAddit(c *bm.Context) {
var (
err error
addit *archive.Addit
)
params := c.Request.Form
aidStr := params.Get("aid")
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
if addit, err = vdpSvc.ArchiveAddit(c, aid); err != nil {
log.Error("vdpSvc.archiveAddit(%d) error(%v)", aid, err)
c.JSON(nil, err)
return
}
if addit == nil {
err = ecode.NothingFound
c.JSON(nil, err)
return
}
c.JSON(addit, nil)
}
func rejectedArchives(c *bm.Context) {
params := c.Request.Form
midStr := params.Get("mid")
pnStr := params.Get("pn")
psStr := params.Get("ps")
stateStr := params.Get("state")
startStr := params.Get("start")
state, _ := strconv.Atoi(stateStr)
if state >= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
start, err := getTimeFromSecStr(startStr)
if err != nil || start == nil {
c.JSON(nil, ecode.RequestErr)
return
}
mid, _ := strconv.ParseInt(midStr, 10, 64)
pn, _ := strconv.Atoi(pnStr)
ps, _ := strconv.Atoi(psStr)
if pn < 1 {
pn = 1
}
if ps < 1 {
ps = 20
}
arcs, count, err := vdpSvc.RejectedArchives(c, mid, int32(state), int32(pn), int32(ps), start)
if err != nil {
c.JSON(nil, err)
return
}
data := map[string]interface{}{
"page": map[string]int{
"num": pn,
"size": ps,
"total": int(count),
},
"archives": arcs,
}
c.JSON(data, nil)
}
func getTimeFromSecStr(secStr string) (t *time.Time, err error) {
sec, err := strconv.ParseInt(secStr, 10, 64)
if err != nil || sec <= 0 {
return
}
ti := time.Unix(sec, 0)
t = &ti
return
}

View File

@@ -0,0 +1,88 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func addByMid(c *bm.Context) {
v := new(struct {
Business int8 `form:"business"`
Mid int64 `form:"mid" validate:"required"`
Oid int64 `form:"oid" validate:"required"`
State int8 `form:"state"`
})
if err := c.Bind(v); err != nil {
return
}
log.Info("flowDesign data(%v)", v)
c.JSON(nil, vdpSvc.AddByMid(c, v.Business, v.Mid, v.Oid, v.State))
}
func addByOid(c *bm.Context) {
v := new(struct {
Business int8 `form:"business" validate:"required"`
OID int64 `form:"oid" validate:"required"`
UID int64 `form:"uid" default:"399"`
NoTimeline int32 `form:"no_timeline" default:"-1"`
NoOtt int32 `form:"no_ott" default:"-1"`
NoRank int32 `form:"no_rank" default:"-1"`
NoRecommend int32 `form:"no_recommend" default:"-1"`
})
if err := c.Bind(v); err != nil {
return
}
log.Info("flowDesign data(%v)", v)
c.JSON(nil, vdpSvc.AddByOid(c, v.Business, v.OID, v.UID, map[string]int32{
"notimeline": v.NoTimeline,
"noott": v.NoOtt,
"norank": v.NoRank,
"norecommend": v.NoRecommend,
}))
}
func queryByOid(c *bm.Context) {
v := new(struct {
Business int8 `form:"business" validate:"required"`
Oid int64 `form:"oid" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
log.Info("flowDesign data(%v)", v)
c.JSON(vdpSvc.HitFlowGroups(c, v.Oid, []int8{v.Business}))
}
func listJudgeFlows(c *bm.Context) {
//按照禁止项过滤 对外 一个禁止项属于一个groupId
v := new(struct {
Business int64 `form:"business" validate:"required"`
Gid int64 `form:"gid" validate:"required"`
Oids []int64 `form:"oids,split" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
if len(v.Oids) > 200 {
c.JSON(nil, ecode.RequestErr)
return
}
log.Info("flowDesign data(%v)", v)
c.JSON(vdpSvc.TagrgetFlows(c, v.Business, v.Gid, v.Oids))
}
func listFlows(c *bm.Context) {
//按照禁止项过滤 对外 一个禁止项属于一个groupId
v := new(struct {
Business int64 `form:"business" validate:"required"`
Gid int64 `form:"gid" validate:"required"`
Pn int64 `form:"page" default:"1"`
Ps int64 `form:"pagesize" default:"100" validate:"max=1000"`
})
if err := c.Bind(v); err != nil {
return
}
log.Info("flowDesign data(%v)", v)
c.JSON(vdpSvc.FlowPage(c, v.Business, v.Gid, v.Pn, v.Ps))
}

View File

@@ -0,0 +1,138 @@
package http
import (
"go-common/app/service/main/videoup/conf"
"go-common/app/service/main/videoup/service"
"go-common/library/log"
"go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/antispam"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
vfySvc *verify.Verify
anti *antispam.Antispam
vdpSvc *service.Service
config *conf.Config
)
// Init init server.
func Init(c *conf.Config, s *service.Service) {
vfySvc = verify.New(nil)
anti = antispam.New(c.AntispamConf)
vdpSvc = s
config = c
eng := blademaster.DefaultServer(c.BM)
route(eng)
if err := eng.Start(); err != nil {
log.Error("eng.Start error(%v)", err)
panic(err)
}
}
func route(e *blademaster.Engine) {
e.Ping(ping)
vp := e.Group("/videoup", vfySvc.Verify)
{
// ugc && pgc
vp.GET("/simplearchive", simpleArchive)
vp.GET("/simplevideos", simpleVideos)
vp.GET("/view", viewArchive)
vp.GET("/views", viewArchives)
vp.GET("/up/archives", archivesByMid)
vp.GET("/cid/archives", archivesByCids)
vp.GET("/archives/rejected", rejectedArchives)
vp.GET("/history/view", arcHistory)
vp.GET("/history/list", arcHistorys)
vp.GET("/types", types)
vp.GET("/flows", flows)
vp.GET("/flow/forbid", flowForbid)
vp.GET("/query/cid", queryCid)
vp.GET("/up/special", specialUps)
vp.GET("/feed/aids", appFeedAids)
vp.GET("/desc/format", descFormats)
vp.POST("/archive/report", anti.Handler(), arcReport)
vp.GET("/archive/reason/tag", arcReasonTag)
vp.GET("/archive/addit", archiveAddit)
vp.POST("/del", delArchive)
// recommend archive
vp.GET("/recos", Recos)
vp.POST("/reco/update", RecoUpdate)
// obtain cid
vp.POST("/obtain/cid", obtainCid)
// ugc
vp.GET("/cid", videoBycid)
vp.POST("/add", addArchive)
vp.POST("/edit", editArchive)
vp.POST("/tag/up", upArchiveTag)
//setting output
setting := vp.Group("/setting")
{
setting.GET("/dynamic", queryDynamic)
}
//ugc only
ugc := vp.Group("/ugc")
{
ugc.POST("/edit/mission", editMissionByUGC)
}
// pgc
pgc := vp.Group("/pgc")
{
pgc.POST("/add", addByPGC)
pgc.POST("/edit", editByPGC)
pgc.POST("/add/secret", saddByPGC)
pgc.POST("/add/coopera", caddByPGC)
pgc.POST("/edit/coopera", ceditByPGC)
}
vp.POST("/ns/md5", nsMd5)
// Get video traffic jam level
vp.GET("/video/jam", videoJam)
//ad
porder := vp.Group("/porder")
{
porder.GET("/config/list", porderCfgList)
porder.GET("/arc/list", porderArcList)
}
flow := vp.Group("/flow")
{
flow.POST("/entry/mid", addByMid)
flow.POST("/entry/oid", addByOid)
//分页查询
flow.GET("/list", listFlows)
//指定查询
flow.GET("/list/judge", listJudgeFlows)
flow.GET("/info", queryByOid)
}
staff := vp.Group("/staff")
{
/*
1. up主申请(添加/修改) staff member edit其中涉及到 可能已经accept 变成 staffON 的case
2. 生成多个apply list
3. 受邀请者 查看 applys
4.同意 accept 拒绝 refuse
5.up主自己可以继续编辑 覆盖式
发起人维度 稿件页 是批量的
具体申请单页 是单个操作
*/
//查看apply
staff.GET("/apply", viewApply)
//mid applys 计数
staff.GET("/mid/applys", checkMid)
//管理后台
staff.POST("/apply/batch", batchApplys)
//apply申请单交互
staff.POST("/apply/submit", addApply)
//apply申请单列表
staff.GET("/apply/list", applys)
staff.GET("/apply/filter", filterApplys)
staff.GET("/archive/applys/", archiveApplys)
//staff正式列表
staff.GET("", staffs)
}
}
}

View File

@@ -0,0 +1,16 @@
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 err := vdpSvc.Ping(c); err != nil {
log.Error("videoup-service ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}

View File

@@ -0,0 +1,35 @@
package http
import (
"strconv"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func nsMd5(c *bm.Context) {
params := c.Request.Form
nidStr := params.Get("nid")
nid, err := strconv.ParseInt(nidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", nidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
md5 := params.Get("md5")
if len(md5) != 32 {
log.Error("strconv.ParseInt(%s) error(%v)", md5, err)
c.JSON(nil, ecode.RequestErr)
return
}
err = vdpSvc.AddNetSafeMd5(c, nid, md5)
if err != nil {
log.Error(" vdpSvc.AddNetSafeMd5(%d) error(%v)|nid(%v)|md5(%v)", nid, md5, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(map[string]interface{}{
"nid": nid,
}, nil)
}

View File

@@ -0,0 +1,215 @@
package http
import (
"encoding/json"
"io/ioutil"
"go-common/app/service/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
// addByPGC add archive info by PGC.
func addByPGC(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http addByPGC() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" || ap.Desc == "" || len(ap.Videos) == 0 {
log.Error("addByPGC func param is empty (%v)", ap)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
ap.UpFrom = archive.UpFromPGC
aid, err := vdpSvc.AddByPGC(c, ap)
if err != nil {
log.Error("vdpSvc.AddByPGC() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(map[string]int64{
"aid": aid,
}, nil)
}
// saddByPGC add secret archive info by PGC.
func saddByPGC(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http addByPGC() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" || ap.Desc == "" || len(ap.Videos) == 0 {
log.Error("addByPGC func param is empty (%v)", ap)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
ap.UpFrom = archive.UpFromSecretPGC
aid, err := vdpSvc.AddByPGC(c, ap)
if err != nil {
log.Error("vdpSvc.AddByPGC() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(map[string]int64{
"aid": aid,
}, nil)
}
// editByPGC edit archive info by PGC.
func editByPGC(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http editByPGC() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Aid == 0 || ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" || ap.Desc == "" {
log.Error("editByPGC func param is empty (%v)", ap)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
ap.UpFrom = archive.UpFromPGC
c.JSON(nil, vdpSvc.EditByPGC(c, ap))
}
// caddByPGC add coopera archive info by PGC.
func caddByPGC(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http addByPGC() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" || ap.Desc == "" || len(ap.Videos) == 0 {
log.Error("addByPGC func param is empty (%v)", ap)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
ap.UpFrom = archive.UpFromCoopera
aid, err := vdpSvc.AddByPGC(c, ap)
if err != nil {
log.Error("vdpSvc.AddByPGC() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(map[string]int64{
"aid": aid,
}, nil)
}
// ceditByPGC edit coopera archive info by PGC.
func ceditByPGC(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http editByPGC() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Aid == 0 || ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" || ap.Desc == "" {
log.Error("editByPGC func param is empty (%v)", ap)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
ap.UpFrom = archive.UpFromCoopera
c.JSON(nil, vdpSvc.EditByPGC(c, ap))
}

View File

@@ -0,0 +1,29 @@
package http
import (
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func porderCfgList(c *bm.Context) {
cfgList, err := vdpSvc.PorderCfgList(c)
if err != nil {
log.Error("vdpSvc.porderCfgList() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(cfgList, nil)
}
func porderArcList(c *bm.Context) {
params := c.Request.Form
begin := params.Get("begin")
end := params.Get("end")
data, err := vdpSvc.PorderArcList(c, begin, end)
if err != nil {
log.Error("vdpSvc.PorderArcList() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}

View File

@@ -0,0 +1,68 @@
package http
import (
"strconv"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
)
// Recos fn
func Recos(c *bm.Context) {
params := c.Request.Form
aidStr := params.Get("aid")
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
recos, err := vdpSvc.Recos(c, aid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(recos, nil)
}
// RecoUpdate fn
func RecoUpdate(c *bm.Context) {
params := c.Request.Form
recoIdsStr := params.Get("ids")
aidStr := params.Get("aid")
midStr := params.Get("mid")
mid, _ := strconv.ParseInt(midStr, 10, 64)
if mid <= 0 {
log.Error("http.archivesByMid mid(%d) <=0 ", mid)
c.JSON(nil, ecode.RequestErr)
return
}
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
recoIds := []int64{}
if len(recoIdsStr) > 0 {
recoIds, err = xstr.SplitInts(recoIdsStr)
}
if err != nil {
log.Error("idsStr splitInts error(%v) | recoIdsStr(%s)", err, recoIdsStr)
c.JSON(nil, ecode.RequestErr)
return
}
if len(recoIds) > 8 {
log.Error("length of idsStr has over Max 8, error(%v) | recoIdsStr(%s)", err, recoIdsStr)
c.JSON(nil, ecode.CreativeRecommendOverMax)
return
}
err = vdpSvc.RecoUpdate(c, mid, aid, recoIds)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}

View File

@@ -0,0 +1,52 @@
package http
import (
"strconv"
"time"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
// viewArchive get archive info.
func arcReport(c *bm.Context) {
params := c.Request.Form
midStr := params.Get("mid")
aidStr := params.Get("aid")
tpStr := params.Get("type")
reason := params.Get("reason")
pics := params.Get("pics")
// check params
mid, err := strconv.ParseInt(midStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", midStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
aid, err := strconv.ParseInt(aidStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
tp, err := strconv.ParseInt(tpStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt(%s) error(%v)", tpStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
if tp < 0 || tp > 9 {
log.Error("type(%d) or question empty error(%v)", tp, err)
c.JSON(nil, ecode.RequestErr)
return
}
err = vdpSvc.ArcReport(c, mid, aid, int8(tp), reason, pics, time.Now())
if err != nil {
log.Error(" vdpSvc.ArcReport(%d,%d,%d,%s,%s) error(%v)", mid, aid, int8(tp), reason, pics, err)
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, nil)
}

View File

@@ -0,0 +1,132 @@
package http
import (
"encoding/json"
"go-common/app/service/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"io/ioutil"
)
func addApply(c *bm.Context) {
//1.同意 拒绝 忽略
//2.申请解除
v := new(archive.ApplyParam)
if err := c.Bind(v); err != nil {
return
}
log.Info("addApply data(%v)", v)
c.JSON(vdpSvc.DoApply(c, v, "申请单"))
}
//批量修改
func batchApplys(c *bm.Context) {
var (
req = c.Request
bs []byte
err error
aps archive.StaffBatchParam
)
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()
if err = json.Unmarshal(bs, &aps); err != nil {
log.Error("http batchApplys() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if aps.AID == 0 {
log.Error("http batchApplys() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
//允许为空 就是删除
if ok := vdpSvc.CheckStaff(aps.Staffs); !ok {
c.JSON(nil, ecode.RequestErr)
return
}
if err = vdpSvc.HandleArchiveApplys(c, aps.AID, aps.Staffs, "admin_edit", true); err != nil {
log.Error("vdaSvc.batchApplys() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
func viewApply(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
log.Info("viewApply data(%v)", v)
c.JSON(vdpSvc.Apply(c, v.ID))
}
func checkMid(c *bm.Context) {
v := new(struct {
ID int64 `form:"mid" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
log.Info("checkMid data(%v)", v)
c.JSON(vdpSvc.MidCount(c, v.ID))
}
func applys(c *bm.Context) {
v := new(struct {
IDS []int64 `form:"ids,split" validate:"required" `
})
if err := c.Bind(v); err != nil {
return
}
if len(v.IDS) > 200 {
c.JSON(nil, ecode.RequestErr)
return
}
log.Info("applys data(%v)", v)
c.JSON(vdpSvc.Applys(c, v.IDS))
}
func filterApplys(c *bm.Context) {
v := new(struct {
ADS []int64 `form:"aids,split" validate:"required" `
MID int64 `form:"mid" validate:"required" `
})
if err := c.Bind(v); err != nil {
return
}
if len(v.ADS) > 200 {
c.JSON(nil, ecode.RequestErr)
return
}
log.Info("filterApplys data(%v)", v)
c.JSON(vdpSvc.FilterApplys(c, v.ADS, v.MID))
}
func archiveApplys(c *bm.Context) {
v := new(struct {
AID int64 `form:"aid" validate:"required" `
})
if err := c.Bind(v); err != nil {
return
}
log.Info("archiveApplys data(%v)", v)
c.JSON(vdpSvc.ApplysByAID(c, v.AID))
}
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(vdpSvc.Staffs(c, v.AID))
}

View File

@@ -0,0 +1,123 @@
package http
import (
"encoding/json"
"io/ioutil"
"go-common/app/service/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
// addArchive add archive.
func addArchive(c *bm.Context) {
req := c.Request
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()
var ap = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http addArchive() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" || len(ap.Videos) == 0 {
log.Error("http addArchive() func param is empty (%d)|(%d)|(%d)|(%s)|(%s)|(%s)|(%v)", ap.Mid, ap.TypeID, ap.Copyright, ap.Title, ap.Tag, ap.Desc, ap.Videos)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
aid, err := vdpSvc.AddByUGC(c, ap)
if err != nil {
log.Error("vdpSvc.AddArchive() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(map[string]int64{
"aid": aid,
}, nil)
}
// editArchive edit archive.
func editArchive(c *bm.Context) {
req := c.Request
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 = &archive.ArcParam{}
if err = json.Unmarshal(bs, ap); err != nil {
log.Error("http editArchive() json.Unmarshal(%s) error(%v)", string(bs), err)
c.JSON(nil, ecode.RequestErr)
return
}
if ap.Aid == 0 || ap.Mid == 0 || ap.TypeID == 0 || ap.Copyright == 0 || ap.Title == "" || ap.Tag == "" {
log.Error("http editArchive() func param is empty (%v)", ap)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := vdpSvc.AllowType(c, ap.TypeID); !ok {
log.Error("typeId (%d) not exist", ap.TypeID)
c.JSON(nil, ecode.RequestErr)
return
}
if ok := archive.InCopyrights(ap.Copyright); !ok {
log.Error("Copyright (%d) not in (1,2)", ap.Copyright)
c.JSON(nil, ecode.RequestErr)
return
}
if err = vdpSvc.EditByUGC(c, ap); err != nil {
log.Error("vdpSvc.EditByUGC() error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}
// editMissionByUGC edit archive mission by UGC.
func editMissionByUGC(c *bm.Context) {
v := &archive.ArcMissionParam{}
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, vdpSvc.EditMissionByUGC(c, v))
}
// queryDynamic edit archive mission by UGC.
func queryDynamic(c *bm.Context) {
v := &archive.ArcDynamicParam{}
if err := c.Bind(v); err != nil {
return
}
can, err := vdpSvc.QueryDynamicSetting(c, v)
if err != nil {
c.JSON(nil, err)
return
}
var repostBanned = int8(0)
if !can {
repostBanned = 1
}
c.JSON(map[string]int8{
"repost_banned": repostBanned,
}, err)
}

View File

@@ -0,0 +1,43 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func obtainCid(c *bm.Context) {
params := c.Request.Form
fn := params.Get("filename")
if fn == "" {
log.Error("filename not exist")
c.JSON(nil, ecode.NothingFound)
return
}
cid, err := vdpSvc.ObtainCid(c, fn)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(map[string]int64{
"cid": cid,
}, nil)
}
func queryCid(c *bm.Context) {
params := c.Request.Form
fn := params.Get("filename")
if fn == "" {
log.Error("filename not exist")
c.JSON(nil, ecode.NothingFound)
return
}
cid, err := vdpSvc.FindCidByFn(c, fn)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(map[string]int64{
"cid": cid,
}, nil)
}