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.
194 lines
4.1 KiB
194 lines
4.1 KiB
package http |
|
|
|
import ( |
|
"strconv" |
|
|
|
"go-common/app/interface/main/creative/model/article" |
|
"go-common/app/interface/openplatform/article/model" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/net/metadata" |
|
) |
|
|
|
func creatorArticlePre(c *bm.Context) { |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
// check user |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
var ( |
|
isAuthor int |
|
reason string |
|
) |
|
ia, err := artSvc.IsAuthor(c, mid, ip) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
if ia { |
|
isAuthor = 1 |
|
} else { |
|
isAuthor = 0 |
|
reason = "您还未开通专栏权限,请先在PC上进行申请" |
|
} |
|
c.JSON(map[string]interface{}{ |
|
"is_author": isAuthor, |
|
"reason": reason, |
|
"submit_url": "https://member.bilibili.com/article-text/mobile", |
|
}, nil) |
|
} |
|
|
|
func creatorArticleList(c *bm.Context) { |
|
params := c.Request.Form |
|
pnStr := params.Get("pn") |
|
psStr := params.Get("ps") |
|
sortStr := params.Get("sort") |
|
groupStr := params.Get("group") |
|
categoryStr := params.Get("category") |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
// check user |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
pn, err := strconv.Atoi(pnStr) |
|
if err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
ps, err := strconv.Atoi(psStr) |
|
if err != nil || ps <= 10 { |
|
ps = 20 |
|
} |
|
sort, err := strconv.Atoi(sortStr) |
|
if err != nil || sort < 0 { |
|
sort = 0 |
|
} |
|
group, err := strconv.Atoi(groupStr) |
|
if err != nil || group < 0 { |
|
group = 0 |
|
} |
|
category, err := strconv.Atoi(categoryStr) |
|
if err != nil || category < 0 { |
|
category = 0 |
|
} |
|
arts, err := artSvc.Articles(c, mid, int(pn), int(ps), sort, group, category, ip) |
|
if ecode.Cause(err) == ecode.ArtCreationNoPrivilege { |
|
err = nil |
|
} |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
if arts == nil { |
|
arts = &article.ArtList{ |
|
Articles: []*article.Meta{}, |
|
Type: &model.CreationArtsType{}, |
|
Page: &model.ArtPage{}, |
|
} |
|
} |
|
c.JSON(arts, nil) |
|
} |
|
|
|
func creatorArticle(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 |
|
} |
|
aid, err := strconv.ParseInt(aidStr, 10, 64) |
|
if err != nil || aid <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
art, err := artSvc.View(c, aid, mid, ip) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(art, nil) |
|
} |
|
|
|
func creatorDelArticle(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 |
|
} |
|
aid, err := strconv.ParseInt(aidStr, 10, 64) |
|
if err != nil || aid <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(nil, artSvc.DelArticle(c, aid, mid, ip)) |
|
} |
|
|
|
func creatorWithDrawArticle(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 |
|
} |
|
aid, err := strconv.ParseInt(aidStr, 10, 64) |
|
if err != nil || aid <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(nil, artSvc.WithDrawArticle(c, aid, mid, ip)) |
|
} |
|
|
|
func creatorDraftList(c *bm.Context) { |
|
params := c.Request.Form |
|
pnStr := params.Get("pn") |
|
psStr := params.Get("ps") |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
// check user |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
if mid <= 0 { |
|
c.JSON(nil, ecode.CreativeNotLogin) |
|
return |
|
} |
|
pn, err := strconv.Atoi(pnStr) |
|
if err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
ps, err := strconv.Atoi(psStr) |
|
if err != nil || ps <= 10 { |
|
ps = 20 |
|
} |
|
arts, err := artSvc.Drafts(c, mid, pn, ps, ip) |
|
if ecode.Cause(err) == ecode.ArtCreationNoPrivilege { |
|
err = nil |
|
} |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
if arts == nil { |
|
arts = &article.DraftList{ |
|
Drafts: []*article.Meta{}, |
|
Page: &model.ArtPage{}, |
|
} |
|
} |
|
c.JSON(arts, nil) |
|
}
|
|
|