stat.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package http
  2. import (
  3. "strconv"
  4. "go-common/app/service/main/relation/model"
  5. "go-common/library/ecode"
  6. bm "go-common/library/net/http/blademaster"
  7. "go-common/library/xstr"
  8. )
  9. // stat get stat.
  10. func stat(c *bm.Context) {
  11. var (
  12. err error
  13. mid int64
  14. params = c.Request.Form
  15. midStr = params.Get("mid")
  16. )
  17. if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil {
  18. c.JSON(nil, ecode.RequestErr)
  19. return
  20. }
  21. c.JSON(relationSvc.Stat(c, mid))
  22. }
  23. // stat get user's follower list.
  24. func stats(c *bm.Context) {
  25. var (
  26. err error
  27. params = c.Request.Form
  28. midsStr = params.Get("mids")
  29. )
  30. mids, err := xstr.SplitInts(midsStr)
  31. if err != nil || len(mids) > 20 {
  32. c.JSON(nil, ecode.RequestErr)
  33. return
  34. }
  35. c.JSON(relationSvc.Stats(c, mids))
  36. }
  37. // setStat set stat.
  38. func setStat(c *bm.Context) {
  39. var (
  40. err error
  41. mid int64
  42. f, w, b, fr int64
  43. st *model.Stat
  44. params = c.Request.Form
  45. midStr = params.Get("mid")
  46. fStr = params.Get("following")
  47. wStr = params.Get("whisper")
  48. bStr = params.Get("black")
  49. frStr = params.Get("follower")
  50. )
  51. if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil {
  52. c.JSON(nil, ecode.RequestErr)
  53. return
  54. }
  55. if fStr == "" {
  56. f = -1
  57. } else {
  58. if f, err = strconv.ParseInt(fStr, 10, 64); err != nil {
  59. c.JSON(nil, ecode.RequestErr)
  60. return
  61. }
  62. }
  63. if wStr == "" {
  64. w = -1
  65. } else {
  66. if w, err = strconv.ParseInt(wStr, 10, 64); err != nil {
  67. c.JSON(nil, ecode.RequestErr)
  68. return
  69. }
  70. }
  71. if bStr == "" {
  72. b = -1
  73. } else {
  74. if b, err = strconv.ParseInt(bStr, 10, 64); err != nil {
  75. c.JSON(nil, ecode.RequestErr)
  76. return
  77. }
  78. }
  79. if frStr == "" {
  80. fr = -1
  81. } else {
  82. if fr, err = strconv.ParseInt(frStr, 10, 64); err != nil {
  83. c.JSON(nil, ecode.RequestErr)
  84. return
  85. }
  86. }
  87. st = &model.Stat{Following: f, Whisper: w, Black: b, Follower: fr}
  88. if st.Following == -1 && st.Whisper == -1 && st.Black == -1 && st.Follower == -1 {
  89. c.JSON(nil, ecode.RequestErr)
  90. return
  91. }
  92. c.JSON(nil, relationSvc.SetStat(c, mid, st))
  93. }
  94. // delStatCache del stat cache.
  95. func delStatCache(c *bm.Context) {
  96. var (
  97. err error
  98. mid int64
  99. params = c.Request.Form
  100. midStr = params.Get("mid")
  101. )
  102. if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil {
  103. c.JSON(nil, ecode.RequestErr)
  104. return
  105. }
  106. c.JSON(nil, relationSvc.DelStatCache(c, mid))
  107. }