article.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package http
  2. import (
  3. "strconv"
  4. "go-common/app/interface/main/space/conf"
  5. "go-common/app/interface/main/space/model"
  6. artmdl "go-common/app/interface/openplatform/article/model"
  7. "go-common/library/ecode"
  8. bm "go-common/library/net/http/blademaster"
  9. )
  10. func article(c *bm.Context) {
  11. var (
  12. mid int64
  13. pn, ps, sort int
  14. ok bool
  15. err error
  16. )
  17. params := c.Request.Form
  18. midStr := params.Get("mid")
  19. pnStr := params.Get("pn")
  20. psStr := params.Get("ps")
  21. sortStr := params.Get("sort")
  22. if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil || mid <= 0 {
  23. c.JSON(nil, ecode.RequestErr)
  24. return
  25. }
  26. if pn, err = strconv.Atoi(pnStr); err != nil || pn < 1 {
  27. pn = 1
  28. }
  29. if ps, err = strconv.Atoi(psStr); err != nil || ps < 1 || ps > conf.Conf.Rule.MaxArticlePs {
  30. ps = conf.Conf.Rule.MaxArticlePs
  31. }
  32. if sortStr != "" {
  33. if sort, ok = model.ArticleSortType[sortStr]; !ok {
  34. c.JSON(nil, ecode.RequestErr)
  35. return
  36. }
  37. } else {
  38. sort = artmdl.FieldDefault
  39. }
  40. c.JSON(spcSvc.Article(c, mid, pn, ps, sort))
  41. }