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.
109 lines
2.3 KiB
109 lines
2.3 KiB
package http |
|
|
|
import ( |
|
"strconv" |
|
|
|
"go-common/app/interface/main/web/conf" |
|
artmdl "go-common/app/interface/openplatform/article/model" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/xstr" |
|
) |
|
|
|
func articleList(c *bm.Context) { |
|
var ( |
|
rid, mid int64 |
|
pn, ps, sort int |
|
aids []int64 |
|
err error |
|
) |
|
param := c.Request.Form |
|
pnStr := param.Get("pn") |
|
psStr := param.Get("ps") |
|
ridStr := param.Get("rid") |
|
aidsStr := param.Get("aids") |
|
sortStr := param.Get("sort") |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
if pn, err = strconv.Atoi(pnStr); err != nil || pn < 1 { |
|
pn = 1 |
|
} |
|
if ps, err = strconv.Atoi(psStr); err != nil || ps < 1 || ps > conf.Conf.Rule.MaxArtPageSize { |
|
ps = conf.Conf.Rule.MaxArtPageSize |
|
} |
|
if ridStr != "" { |
|
if rid, err = strconv.ParseInt(ridStr, 10, 64); err != nil || rid < 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
if aidsStr != "" { |
|
if aids, err = xstr.SplitInts(aidsStr); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
if sortStr != "" { |
|
if sort, err = strconv.Atoi(sortStr); err != nil || sort < 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
sortCheck := false |
|
for _, v := range artmdl.SortFields { |
|
if sort == v { |
|
sortCheck = true |
|
break |
|
} |
|
} |
|
if !sortCheck && sort != 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
c.JSON(webSvc.ArticleList(c, rid, mid, sort, pn, ps, aids)) |
|
} |
|
|
|
func articleUpList(c *bm.Context) { |
|
var mid int64 |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
c.JSON(webSvc.ArticleUpList(c, mid)) |
|
} |
|
|
|
func categories(c *bm.Context) { |
|
c.JSON(webSvc.Categories(c)) |
|
} |
|
|
|
func newCount(c *bm.Context) { |
|
var ( |
|
count, pubTime int64 |
|
err error |
|
) |
|
pubTimeStr := c.Request.Form.Get("pubtime") |
|
if pubTime, err = strconv.ParseInt(pubTimeStr, 10, 64); err != nil || pubTime < 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if count, err = webSvc.NewCount(c, pubTime); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(struct { |
|
NewCount int64 `json:"new_count"` |
|
}{NewCount: count}, nil) |
|
} |
|
|
|
func upMoreArts(c *bm.Context) { |
|
var ( |
|
aid int64 |
|
err error |
|
) |
|
aidStr := c.Request.Form.Get("aid") |
|
if aid, err = strconv.ParseInt(aidStr, 10, 64); err != nil || aid <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
c.JSON(webSvc.UpMoreArts(c, aid)) |
|
}
|
|
|