archive.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package http
  2. import (
  3. "strconv"
  4. "go-common/app/interface/main/space/conf"
  5. "go-common/app/interface/main/space/model"
  6. "go-common/library/ecode"
  7. bm "go-common/library/net/http/blademaster"
  8. "strings"
  9. )
  10. func topArc(c *bm.Context) {
  11. var (
  12. mid, vmid int64
  13. err error
  14. )
  15. vmidStr := c.Request.Form.Get("vmid")
  16. if vmid, err = strconv.ParseInt(vmidStr, 10, 64); err != nil || vmid <= 0 {
  17. c.JSON(nil, ecode.RequestErr)
  18. return
  19. }
  20. if midInter, ok := c.Get("mid"); ok {
  21. mid = midInter.(int64)
  22. }
  23. c.JSON(spcSvc.TopArc(c, mid, vmid))
  24. }
  25. func setTopArc(c *bm.Context) {
  26. v := new(struct {
  27. Aid int64 `form:"aid" validate:"min=1"`
  28. Reason string `form:"reason"`
  29. })
  30. if err := c.Bind(v); err != nil {
  31. return
  32. }
  33. reason := strings.TrimSpace(v.Reason)
  34. if len([]rune(reason)) > conf.Conf.Rule.MaxTopReasonLen {
  35. c.JSON(nil, ecode.TopReasonLong)
  36. return
  37. }
  38. midStr, _ := c.Get("mid")
  39. mid := midStr.(int64)
  40. c.JSON(nil, spcSvc.SetTopArc(c, mid, v.Aid, reason))
  41. }
  42. func cancelTopArc(c *bm.Context) {
  43. midStr, _ := c.Get("mid")
  44. mid := midStr.(int64)
  45. c.JSON(nil, spcSvc.DelTopArc(c, mid))
  46. }
  47. func masterpiece(c *bm.Context) {
  48. var (
  49. mid, vmid int64
  50. err error
  51. )
  52. vmidStr := c.Request.Form.Get("vmid")
  53. if vmid, err = strconv.ParseInt(vmidStr, 10, 64); err != nil || vmid <= 0 {
  54. c.JSON(nil, ecode.RequestErr)
  55. return
  56. }
  57. if midInter, ok := c.Get("mid"); ok {
  58. mid = midInter.(int64)
  59. }
  60. c.JSON(spcSvc.Masterpiece(c, mid, vmid))
  61. }
  62. func addMasterpiece(c *bm.Context) {
  63. v := new(struct {
  64. Aid int64 `form:"aid" validate:"min=1"`
  65. Reason string `form:"reason"`
  66. })
  67. if err := c.Bind(v); err != nil {
  68. return
  69. }
  70. reason := strings.TrimSpace(v.Reason)
  71. if len([]rune(reason)) > conf.Conf.Rule.MaxMpReasonLen {
  72. c.JSON(nil, ecode.TopReasonLong)
  73. return
  74. }
  75. midStr, _ := c.Get("mid")
  76. mid := midStr.(int64)
  77. c.JSON(nil, spcSvc.AddMasterpiece(c, mid, v.Aid, reason))
  78. }
  79. func editMasterpiece(c *bm.Context) {
  80. v := new(struct {
  81. Aid int64 `form:"aid" validate:"min=1"`
  82. PreAid int64 `form:"pre_aid" validate:"min=1"`
  83. Reason string `form:"reason"`
  84. })
  85. if err := c.Bind(v); err != nil {
  86. return
  87. }
  88. reason := strings.TrimSpace(v.Reason)
  89. if len([]rune(reason)) > conf.Conf.Rule.MaxMpReasonLen {
  90. c.JSON(nil, ecode.TopReasonLong)
  91. return
  92. }
  93. midStr, _ := c.Get("mid")
  94. mid := midStr.(int64)
  95. c.JSON(nil, spcSvc.EditMasterpiece(c, mid, v.Aid, v.PreAid, reason))
  96. }
  97. func cancelMasterpiece(c *bm.Context) {
  98. v := new(struct {
  99. Aid int64 `form:"aid" validate:"min=1"`
  100. })
  101. if err := c.Bind(v); err != nil {
  102. return
  103. }
  104. midStr, _ := c.Get("mid")
  105. mid := midStr.(int64)
  106. c.JSON(nil, spcSvc.CancelMasterpiece(c, mid, v.Aid))
  107. }
  108. func arcSearch(c *bm.Context) {
  109. var (
  110. res *model.SearchRes
  111. total int
  112. mid int64
  113. err error
  114. v = new(model.SearchArg)
  115. )
  116. if err = c.Bind(v); err != nil {
  117. return
  118. }
  119. if v.CheckType != "" {
  120. if _, ok := model.ArcCheckType[v.CheckType]; !ok {
  121. c.JSON(nil, ecode.RequestErr)
  122. return
  123. }
  124. if v.CheckID <= 0 {
  125. c.JSON(nil, ecode.RequestErr)
  126. return
  127. }
  128. }
  129. if midInter, ok := c.Get("mid"); ok {
  130. mid = midInter.(int64)
  131. }
  132. if res, total, err = spcSvc.ArcSearch(c, mid, v); err != nil {
  133. c.JSON(nil, err)
  134. return
  135. }
  136. data := make(map[string]interface{}, 2)
  137. page := map[string]int{
  138. "pn": v.Pn,
  139. "ps": v.Ps,
  140. "count": total,
  141. }
  142. data["page"] = page
  143. data["list"] = res
  144. c.JSON(data, nil)
  145. }
  146. func arcList(c *bm.Context) {
  147. var (
  148. rs *model.UpArc
  149. err error
  150. )
  151. v := new(struct {
  152. Mid int64 `form:"mid" validate:"min=1"`
  153. Pn int32 `form:"pn" default:"1" validate:"min=1"`
  154. Ps int32 `form:"ps" default:"20" validate:"min=1"`
  155. })
  156. if err = c.Bind(v); err != nil {
  157. return
  158. }
  159. if rs, err = spcSvc.UpArcs(c, v.Mid, v.Pn, v.Ps); err != nil {
  160. c.JSON(nil, err)
  161. return
  162. }
  163. data := make(map[string]interface{}, 2)
  164. page := map[string]int64{
  165. "pn": int64(v.Pn),
  166. "ps": int64(v.Ps),
  167. "count": rs.Count,
  168. }
  169. data["page"] = page
  170. data["archives"] = rs.List
  171. c.JSON(data, nil)
  172. }