You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
724 lines
18 KiB
724 lines
18 KiB
package http |
|
|
|
import ( |
|
"context" |
|
"fmt" |
|
"go-common/app/interface/main/creative/model/account" |
|
accmdl "go-common/app/interface/main/creative/model/account" |
|
"go-common/app/interface/main/creative/model/activity" |
|
"go-common/app/interface/main/creative/model/app" |
|
"go-common/app/interface/main/creative/model/archive" |
|
"go-common/app/interface/main/creative/model/data" |
|
"go-common/app/interface/main/creative/model/elec" |
|
"go-common/app/interface/main/creative/model/faq" |
|
"go-common/app/interface/main/creative/model/message" |
|
"go-common/app/interface/main/creative/model/newcomer" |
|
resMdl "go-common/app/interface/main/creative/model/resource" |
|
"go-common/app/interface/main/creative/model/search" |
|
"go-common/app/interface/main/creative/model/watermark" |
|
artmdl "go-common/app/interface/openplatform/article/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/net/metadata" |
|
"go-common/library/sync/errgroup" |
|
"strconv" |
|
"strings" |
|
"time" |
|
) |
|
|
|
func appIndex(c *bm.Context) { |
|
var ( |
|
err error |
|
rec *elec.RecentElecList |
|
recList []*elec.RecentElec |
|
stat *data.Stat |
|
archives []*archive.OldArchiveVideoAudit |
|
arcs *search.Result |
|
replies *search.Replies |
|
elecStat *elec.UserState |
|
dataStat *data.AppStatList |
|
topBanners, academyBanners []*resMdl.Banner |
|
portal []*app.Portal |
|
topMsgs []*message.Message |
|
appTasks *newcomer.AppIndexNewcomer |
|
artStat artmdl.UpStat |
|
artAuthor, build, coop int |
|
g = &errgroup.Group{} |
|
ctx = context.TODO() |
|
) |
|
req := c.Request |
|
header := c.Request.Header |
|
params := req.Form |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
mobiApp := params.Get("mobi_app") |
|
device := params.Get("device") |
|
platStr := params.Get("platform") |
|
network := params.Get("network") |
|
buvid := header.Get("Buvid") |
|
adExtra := params.Get("ad_extra") |
|
if coop, _ = strconv.Atoi(params.Get("coop")); coop > 0 { |
|
coop = 1 |
|
} |
|
if build, err = strconv.Atoi(params.Get("build")); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
resID, _ := strconv.Atoi(params.Get("resource_id")) |
|
resMdlPlat := resMdl.Plat(mobiApp, device) |
|
ck := c.Request.Header.Get("cookie") |
|
ak := params.Get("access_key") |
|
tmidStr := params.Get("tmid") |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
tmid, _ := strconv.ParseInt(tmidStr, 10, 64) |
|
if tmid > 0 && dataSvc.IsWhite(mid) { |
|
mid = tmid |
|
} |
|
g.Go(func() error { |
|
stat, _ = dataSvc.NewStat(ctx, mid, ip) |
|
if stat != nil { |
|
stat.Day30 = nil |
|
stat.Arcs = nil |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
if arcs, err = arcSvc.Archives(ctx, mid, 0, "", "", "is_pubing,pubed,not_pubed", ip, 1, 2, coop); err == nil && arcs.OldArchives != nil { |
|
archives = arcs.OldArchives |
|
} else { |
|
archives = make([]*archive.OldArchiveVideoAudit, 0) |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
replies, _ = replySvc.AppIndexReplies(ctx, ak, ck, mid, 0, 0, 0, search.All, resMdlPlat, "", "", "", ip, 1, 10) |
|
if replies == nil { |
|
replies = &search.Replies{} |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
elecStat, _ = elecSvc.UserState(ctx, mid, ip, ak, ck) |
|
if elecStat != nil && elecStat.State == "2" { |
|
rec, _ = elecSvc.RecentElec(ctx, mid, 1, 2, ip) |
|
if rec != nil { |
|
recList = rec.List |
|
} |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
academyBanners, _ = resSvc.AcademyBanner(ctx, mobiApp, device, network, metadata.String(c, metadata.RemoteIP), buvid, adExtra, build, resID, resMdlPlat, mid, false) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
topBanners, _ = resSvc.TopBanner(ctx, mobiApp, device, network, metadata.String(c, metadata.RemoteIP), buvid, adExtra, build, resID, resMdlPlat, mid, false) |
|
isAuthor, _ := artSvc.IsAuthor(ctx, mid, ip) |
|
if isAuthor { |
|
artAuthor = 1 |
|
} else { |
|
artAuthor = 0 |
|
} |
|
portal, _ = appSvc.Portals(ctx, mid, artAuthor, build, app.PortalIntro, platStr, resMdlPlat) |
|
dataStat, _ = dataSvc.AppStat(ctx, mid) |
|
if platStr == "android" && build < 510007 { |
|
dataStat.Show = 0 // android < 510007 close |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
artStat, _ = artSvc.ArticleStat(ctx, mid, ip) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
topMsgs, _ = appSvc.TopMsg(ctx, mid, build, platStr, mobiApp, ak, ck, ip) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
appTasks, _ = newcomerSvc.AppIndexNewcomer(ctx, mid, platStr) |
|
return nil |
|
}) |
|
g.Wait() |
|
up := &app.Up{ |
|
Art: artAuthor, |
|
} |
|
if len(archives) > 0 { |
|
up.Arc = 1 |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"stat": stat, |
|
"tasks": appTasks, |
|
"archives": archives, |
|
"replies": replies, |
|
"user_elec": elecStat, |
|
"recent_elec_rank": recList, |
|
"banner": topBanners, |
|
"aca_banner": academyBanners, |
|
"portal_list": portal, |
|
"data_stat": dataStat, |
|
"art_stat": artStat, |
|
"up": up, |
|
"tip": operSvc.NoticeStr, |
|
"top_acts": arcSvc.TopAct(), |
|
"top_msgs": topMsgs, |
|
"block_intros": appSvc.BlockIntros(build, platStr), |
|
}, nil) |
|
} |
|
|
|
func appArcView(c *bm.Context) { |
|
params := c.Request.Form |
|
aidStr := params.Get("aid") |
|
lang := params.Get("lang") |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
ck := c.Request.Header.Get("cookie") |
|
ak := params.Get("access_key") |
|
buildStr := params.Get("build") |
|
build, _ := strconv.Atoi(buildStr) |
|
mobiApp := params.Get("mobi_app") |
|
plat := params.Get("platform") |
|
// check user |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
// 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 |
|
} |
|
var ( |
|
arc *archive.Archive |
|
av *archive.ArcVideo |
|
video []*archive.Video |
|
white int |
|
elecStat *elec.UserState |
|
elecArc *elec.ArcState |
|
activities []*activity.Activity |
|
appFmt []*archive.AppFormat |
|
mf *account.MyInfo |
|
wm *watermark.Watermark |
|
g = &errgroup.Group{} |
|
ctx = context.TODO() |
|
faqs = make(map[string]*faq.Faq) |
|
lotteryCheck, lotteryBind bool |
|
recFriends []*accmdl.Friend |
|
) |
|
g.Go(func() error { |
|
if av, err = arcSvc.View(ctx, mid, aid, ip, plat); err == nil && av != nil { |
|
arc = av.Archive |
|
video = av.Videos |
|
if (mobiApp == "android" && build < 511001) || (mobiApp == "ios" && build < 6011) { |
|
av.Archive.Desc = archive.ShortDesc(av.Archive.Desc) |
|
} |
|
activities = arcSvc.Activities(ctx) |
|
if arc.MissionID > 0 { |
|
protectTagBeforeMission(ctx, arc, plat, build) |
|
actInList := false |
|
for _, v := range activities { |
|
if v.ID == arc.MissionID { |
|
actInList = true |
|
break |
|
} |
|
} |
|
if !actInList { |
|
activities = append(activities, &activity.Activity{ |
|
ID: arc.MissionID, |
|
Name: arc.MissionName, |
|
}) |
|
} |
|
} |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
elecStat, _ = elecSvc.UserState(ctx, mid, ip, ak, ck) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
elecArc, _ = elecSvc.ArchiveState(ctx, aid, mid, ip) |
|
if elecArc == nil { |
|
elecArc = &elec.ArcState{} |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
appFmt, _ = arcSvc.AppFormats(ctx) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
mf, _ = accSvc.MyInfo(ctx, mid, ip, time.Now()) |
|
_, white = whiteSvc.UploadInfoForMainApp(mf, plat, mid) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
wm, _ = wmSvc.WaterMark(ctx, mid) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
faqs = faqSvc.Pre(ctx) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
lotteryCheck, _ = dymcSvc.LotteryUserCheck(ctx, mid) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
lotteryBind, _ = dymcSvc.LotteryNotice(ctx, aid, mid) |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
recFriends, _ = accSvc.RecFollows(ctx, mid) |
|
return nil |
|
}) |
|
g.Wait() |
|
if arc == nil { |
|
c.JSON(nil, ecode.NothingFound) |
|
return |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"archive": arc, |
|
"videos": video, |
|
"user_elec": elecStat, |
|
"arc_elec": elecArc, |
|
"typelist": arcSvc.AppTypes(c, lang), |
|
"activities": activities, |
|
"desc_format": appFmt, |
|
"dpub": arcSvc.Dpub(), |
|
"rules": arcSvc.EditRules(c, white, arc.State, lotteryBind), |
|
"watermark": wm, |
|
"tip": vsSvc.AppManagerTip, |
|
"cus_tip": vsSvc.CusManagerTip, |
|
// common data |
|
"camera_cfg": appSvc.CameraCfg, |
|
"module_show": arcSvc.AppModuleShowMap(mid, lotteryCheck), |
|
"icons": appSvc.Icons(), |
|
"faqs": faqs, |
|
"rec_friends": recFriends, |
|
}, nil) |
|
} |
|
|
|
func appArcDel(c *bm.Context) { |
|
params := c.Request.Form |
|
aidStr := params.Get("aid") |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
// check user |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
// 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 |
|
} |
|
// del |
|
c.JSON(nil, arcSvc.Del(c, mid, aid, ip)) |
|
} |
|
|
|
func appArchives(c *bm.Context) { |
|
params := c.Request.Form |
|
pageStr := params.Get("pn") |
|
psStr := params.Get("ps") |
|
order := params.Get("order") |
|
tidStr := params.Get("tid") |
|
kw := params.Get("keyword") |
|
class := params.Get("class") |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
var ( |
|
pn, ps, coop int |
|
mid, tid int64 |
|
) |
|
midStr, _ := c.Get("mid") |
|
if mid = midStr.(int64); mid < 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
if pn, _ = strconv.Atoi(pageStr); pn <= 0 { |
|
pn = 1 |
|
} |
|
if ps, _ = strconv.Atoi(psStr); ps <= 0 || ps > 50 { |
|
ps = 10 |
|
} |
|
if tid, _ = strconv.ParseInt(tidStr, 10, 16); tid < 0 { |
|
tid = 0 |
|
} |
|
if coop, _ = strconv.Atoi(params.Get("coop")); coop > 0 { |
|
coop = 1 |
|
} |
|
arc, err := arcSvc.Archives(c, mid, int16(tid), kw, order, class, ip, pn, ps, coop) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
if arc != nil { |
|
arc.Tip = operSvc.CreativeStr |
|
} |
|
c.JSON(arc, nil) |
|
} |
|
|
|
func appReplyList(c *bm.Context) { |
|
req := c.Request |
|
params := req.Form |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
isReport, err := strconv.Atoi(params.Get("is_report")) |
|
if err != nil { |
|
isReport = 0 |
|
} |
|
tp, err := strconv.Atoi(params.Get("type")) |
|
if err != nil { |
|
tp = 1 |
|
} |
|
oid, err := strconv.ParseInt(params.Get("oid"), 10, 64) |
|
if err != nil { |
|
oid = 0 |
|
} |
|
pn, err := strconv.Atoi(params.Get("pn")) |
|
if err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
ps, err := strconv.Atoi(params.Get("ps")) |
|
if err != nil || ps <= 10 || ps > 100 { |
|
ps = 10 |
|
} |
|
resMdlPlat := resMdl.Plat(params.Get("mobi_app"), params.Get("device")) |
|
p := &search.ReplyParam{ |
|
Ak: params.Get("access_key"), |
|
Ck: c.Request.Header.Get("cookie"), |
|
OMID: mid, |
|
OID: oid, |
|
Pn: pn, |
|
Ps: ps, |
|
IP: metadata.String(c, metadata.RemoteIP), |
|
IsReport: int8(isReport), |
|
Type: int8(tp), |
|
FilterCtime: params.Get("filter"), |
|
Kw: params.Get("keyword"), |
|
Order: params.Get("order"), |
|
ResMdlPlat: resMdlPlat, |
|
} |
|
replies, err := replySvc.Replies(c, p) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSONMap(map[string]interface{}{ |
|
"pager": map[string]int{ |
|
"current": pn, |
|
"size": ps, |
|
"total": replies.Total, |
|
}, |
|
"data": replies.Result, |
|
}, nil) |
|
} |
|
|
|
func appUpInfo(c *bm.Context) { |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
params := c.Request.Form |
|
tmidStr := params.Get("tmid") |
|
// check user |
|
|
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
tmid, _ := strconv.ParseInt(tmidStr, 10, 64) |
|
if tmid > 0 && dataSvc.IsWhite(mid) { |
|
mid = tmid |
|
} |
|
v, err := accSvc.UpInfo(c, mid, ip) |
|
if err != nil { |
|
log.Error("memberSvc.UpInfo(%d) error(%v)", mid, err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(v, nil) |
|
} |
|
|
|
func appPre(c *bm.Context) { |
|
req := c.Request |
|
params := req.Form |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
buildStr := params.Get("build") |
|
platStr := params.Get("platform") |
|
tmidStr := params.Get("tmid") |
|
device := params.Get("device") |
|
mobiApp := params.Get("mobi_app") |
|
resMdlPlat := resMdl.Plat(mobiApp, device) |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
tmid, _ := strconv.ParseInt(tmidStr, 10, 64) |
|
if tmid > 0 && dataSvc.IsWhite(mid) { |
|
mid = tmid |
|
} |
|
var ( |
|
err error |
|
up *account.UpInfo |
|
portal []*app.Portal |
|
build, artAuthor, showCre int |
|
g = &errgroup.Group{} |
|
ctx = context.TODO() |
|
academyIntro = &app.AcademyIntro{} |
|
actIntro = &app.ActIntro{} |
|
mf *account.MyInfo |
|
) |
|
if buildStr != "" { |
|
build, err = strconv.Atoi(buildStr) |
|
if err != nil { |
|
log.Error("strconv.Atoi(%s) error(%v)", buildStr, err) |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
g.Go(func() error { |
|
mf, err = accSvc.MyInfo(ctx, mid, ip, time.Now()) |
|
if err != nil { |
|
log.Info("accSvc.MyInfo (%d) err(%v)", mid, err) |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
up, _ = accSvc.UpInfo(ctx, mid, ip) |
|
if up != nil && account.IsUper(up) { |
|
showCre = 1 |
|
} |
|
if showCre != 1 { |
|
if isAuthor, err := upSvc.ArcUpInfo(ctx, mid, ip); err == nil && isAuthor == 1 { |
|
showCre = 1 |
|
} |
|
} |
|
return nil |
|
}) |
|
g.Go(func() error { |
|
isAuthor, _ := artSvc.IsAuthor(ctx, mid, ip) |
|
if isAuthor { |
|
artAuthor = 1 |
|
} else { |
|
artAuthor = 0 |
|
} |
|
portal, _ = appSvc.Portals(ctx, mid, artAuthor, build, app.PortalNotice, platStr, resMdlPlat) |
|
return nil |
|
}) |
|
g.Wait() |
|
entranceGuidance := "成为UP主,分享你的创作" |
|
if platStr == "android" { |
|
entranceGuidance = "投稿" |
|
} |
|
if showCre == 0 { |
|
ccURL := appSvc.H5Page().CreativeCollege |
|
if (build >= 5350000 && platStr == "android") || (build >= 8240 && platStr == "ios") { |
|
ccURL = fmt.Sprintf("%s?from=my&navhide=1", ccURL) |
|
} else { |
|
ccURL = fmt.Sprintf("%s?from=my", ccURL) |
|
} |
|
academyIntro = &app.AcademyIntro{ |
|
Show: 1, |
|
Title: "创作学院", |
|
URL: ccURL, |
|
} |
|
} |
|
uploadinfo, _ := whiteSvc.UploadInfoForMainApp(mf, platStr, mid) |
|
if uploadinfo["info"] == 1 { |
|
actIntro = &app.ActIntro{ |
|
Show: 1, |
|
Title: "热门活动", |
|
URL: appSvc.H5Page().HotAct, |
|
} |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"creative": map[string]interface{}{ |
|
"portal_list": portal, |
|
"show": showCre, |
|
}, |
|
"entrance": map[string]interface{}{ |
|
"guidance": entranceGuidance, |
|
"show": 1, |
|
}, |
|
"academy": academyIntro, |
|
"act": actIntro, |
|
}, nil) |
|
} |
|
|
|
func appBanner(c *bm.Context) { |
|
params := c.Request.Form |
|
psStr := params.Get("ps") |
|
pnStr := params.Get("pn") |
|
tp := params.Get("type") |
|
_, ok := c.Get("mid") |
|
if !ok { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
pn, err := strconv.Atoi(pnStr) |
|
if err != nil || pn <= 0 { |
|
pn = 1 |
|
} |
|
ps, err := strconv.Atoi(psStr) |
|
if err != nil || ps <= 0 || ps > 20 { |
|
ps = 20 |
|
} |
|
oper, err := operSvc.AppOperationList(c, pn, ps, tp) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(oper, nil) |
|
} |
|
|
|
func appNewPre(c *bm.Context) { |
|
req := c.Request |
|
params := req.Form |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
midStr := params.Get("mid") |
|
tmidStr := params.Get("tmid") |
|
var ( |
|
err error |
|
mid, tmid int64 |
|
up *account.UpInfo |
|
isUp, showCreative, showAcademy int |
|
) |
|
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil { |
|
log.Error("strconv.ParseInt midStr(%s) error(%v)", midStr, err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
if tmidStr != "" { |
|
if tmid, err = strconv.ParseInt(tmidStr, 10, 64); err != nil { |
|
log.Error("strconv.ParseInt tmidStr(%s) error(%v)", tmidStr, err) |
|
c.JSON(nil, err) |
|
return |
|
} |
|
if tmid > 0 && dataSvc.IsWhite(mid) { |
|
mid = tmid |
|
} |
|
} |
|
up, _ = accSvc.UpInfo(c, mid, ip) |
|
if up != nil && account.IsUper(up) { |
|
isUp = 1 |
|
} |
|
if isUp != 1 { |
|
if isAuthor, err := upSvc.ArcUpInfo(c, mid, ip); err == nil && isAuthor == 1 { |
|
isUp = 1 |
|
} |
|
} |
|
if isUp == 0 { |
|
showAcademy = 1 |
|
} |
|
if dataSvc.IsForbidVideoup(mid) { |
|
showCreative = 0 |
|
} else { |
|
showCreative = 1 |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"academy": showAcademy, |
|
"show": showCreative, |
|
"is_up": isUp, |
|
}, nil) |
|
} |
|
|
|
func protectTagBeforeMission(c context.Context, arc *archive.Archive, plat string, build int) { |
|
if ((plat == "android" && build < 5260000) || (plat == "ios" && build <= 6680)) && len(arc.Tag) > 0 { |
|
var mp *activity.Protocol |
|
mp, _ = arcSvc.MissionProtocol(c, arc.MissionID) |
|
if len(mp.Tags) > 0 { |
|
sTags := strings.Split(mp.Tags, ",") |
|
missionTagMap := make(map[string]int8) |
|
for _, tag := range sTags { |
|
missionTagMap[tag] = 0 |
|
} |
|
arcTags := strings.Split(arc.Tag, ",") |
|
var splitedArcTags []string |
|
for _, arcTag := range arcTags { |
|
if _, ok := missionTagMap[arcTag]; !ok { |
|
splitedArcTags = append(splitedArcTags, arcTag) |
|
} |
|
} |
|
arc.Tag = strings.Join(splitedArcTags, ",") |
|
} |
|
} |
|
} |
|
|
|
func appSimpleArcVideos(c *bm.Context) { |
|
params := c.Request.Form |
|
pageStr := params.Get("pn") |
|
psStr := params.Get("ps") |
|
order := params.Get("order") |
|
kw := params.Get("keyword") |
|
class := params.Get("class") |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
var ( |
|
pn, ps, tid int |
|
) |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
if pn, _ = strconv.Atoi(pageStr); pn <= 0 { |
|
pn = 1 |
|
} |
|
if ps, _ = strconv.Atoi(psStr); ps <= 0 || ps > 50 { |
|
ps = 10 |
|
} |
|
if tid, _ = strconv.Atoi(params.Get("tid")); tid <= 0 { |
|
tid = 0 |
|
} |
|
mid = converTmid(c, mid) |
|
savs, err := arcSvc.SimpleArcVideos(c, mid, int16(tid), kw, order, class, ip, pn, ps, 0) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(savs, nil) |
|
} |
|
|
|
func appTaskBind(c *bm.Context) { |
|
// check user |
|
midI, ok := c.Get("mid") |
|
if !ok { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
mid, _ := midI.(int64) |
|
// check white list |
|
//if task := whiteSvc.TaskWhiteList(mid); task != 1 { |
|
// c.JSON(nil, ecode.RequestErr) |
|
// return |
|
//} |
|
id, err := newcomerSvc.TaskBind(c, mid) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"id": id, |
|
}, nil) |
|
}
|
|
|