195 lines
4.1 KiB
Go
195 lines
4.1 KiB
Go
|
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)
|
|||
|
}
|