dm.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package http
  2. import (
  3. "strconv"
  4. "go-common/library/ecode"
  5. "go-common/library/log"
  6. bm "go-common/library/net/http/blademaster"
  7. "go-common/library/xstr"
  8. )
  9. // addPa 申请保护弹幕.
  10. func addPa(c *bm.Context) {
  11. var (
  12. str string
  13. err error
  14. cid int64
  15. dmids []int64
  16. )
  17. mid, _ := c.Get("mid")
  18. params := c.Request.Form
  19. str = params.Get("cid")
  20. cid, err = strconv.ParseInt(str, 10, 64)
  21. if err != nil {
  22. c.JSON(nil, ecode.RequestErr)
  23. return
  24. }
  25. str = params.Get("dmids")
  26. if dmids, err = xstr.SplitInts(str); err != nil {
  27. c.JSON(nil, ecode.RequestErr)
  28. return
  29. }
  30. err = dmSvc.AddProtectApply(c, mid.(int64), cid, dmids)
  31. c.JSON(nil, err)
  32. }
  33. // recall 弹幕撤回
  34. func recall(c *bm.Context) {
  35. var (
  36. str string
  37. msg string
  38. err error
  39. cid int64
  40. dmid int64
  41. )
  42. mid, _ := c.Get("mid")
  43. params := c.Request.Form
  44. str = params.Get("cid")
  45. cid, err = strconv.ParseInt(str, 10, 64)
  46. if err != nil {
  47. c.JSON(nil, ecode.RequestErr)
  48. return
  49. }
  50. dmid, err = strconv.ParseInt(params.Get("dmid"), 10, 64)
  51. if err != nil {
  52. c.JSON(nil, ecode.RequestErr)
  53. return
  54. }
  55. msg, err = dmSvc.Recall(c, mid.(int64), cid, dmid)
  56. if err != nil {
  57. c.JSON(nil, err)
  58. log.Error("dmSvc.Recall(%v,%d,%d) error(%v)", mid, cid, dmid, err)
  59. return
  60. }
  61. res := map[string]interface{}{}
  62. if msg != "" {
  63. res["message"] = msg
  64. }
  65. c.JSONMap(res, err)
  66. }
  67. // midHash 获取用户mid hash.
  68. func midHash(c *bm.Context) {
  69. var err error
  70. mid, _ := c.Get("mid")
  71. hash, err := dmSvc.MidHash(c, mid.(int64))
  72. if err != nil {
  73. c.JSON(nil, err)
  74. log.Error("dmSvc.MidHash(%d) error(%v)", mid.(int64), err)
  75. return
  76. }
  77. res := map[string]interface{}{}
  78. res["data"] = map[string]interface{}{
  79. "hash": hash,
  80. }
  81. c.JSONMap(res, err)
  82. }
  83. // transfer 弹幕转移
  84. func transfer(c *bm.Context) {
  85. p := c.Request.Form
  86. toCid, err := strconv.ParseInt(p.Get("to"), 10, 64)
  87. if err != nil {
  88. c.JSON(nil, ecode.RequestErr)
  89. return
  90. }
  91. offset, err := strconv.ParseFloat(p.Get("offset"), 64)
  92. if err != nil {
  93. c.JSON(nil, ecode.RequestErr)
  94. return
  95. }
  96. mid, _ := c.Get("mid")
  97. if err = dmSvc.CheckExist(c, mid.(int64), toCid); err != nil {
  98. c.JSON(nil, err)
  99. return
  100. }
  101. fromCids, err := xstr.SplitInts(p.Get("from"))
  102. if err != nil {
  103. c.JSON(nil, ecode.RequestErr)
  104. return
  105. }
  106. for _, cid := range fromCids {
  107. if cid == toCid {
  108. c.JSON(nil, ecode.DMTransferSame)
  109. return
  110. }
  111. if err = dmSvc.CheckExist(c, mid.(int64), cid); err != nil {
  112. c.JSON(nil, err)
  113. return
  114. }
  115. if err = dmSvc.TransferJob(c, mid.(int64), cid, toCid, offset); err != nil {
  116. log.Error("dmSvc.TransferJob(mid:%d,from:%d,to:%d,offset:%v) error(%v)", mid.(int64), cid, toCid, offset, err)
  117. c.JSON(nil, err)
  118. return
  119. }
  120. }
  121. c.JSON(nil, err)
  122. }
  123. func transferList(c *bm.Context) {
  124. var (
  125. cid int64
  126. p = c.Request.Form
  127. )
  128. cid, err := strconv.ParseInt(p.Get("cid"), 10, 64)
  129. if err != nil {
  130. c.JSON(nil, ecode.RequestErr)
  131. return
  132. }
  133. l, err := dmSvc.TransferList(c, cid)
  134. if err != nil {
  135. c.JSON(nil, err)
  136. return
  137. }
  138. c.JSON(l, err)
  139. }
  140. func transferRetry(c *bm.Context) {
  141. var (
  142. id int64
  143. err error
  144. p = c.Request.Form
  145. )
  146. id, err = strconv.ParseInt(p.Get("id"), 10, 64)
  147. if err != nil {
  148. c.JSON(nil, ecode.RequestErr)
  149. return
  150. }
  151. mid, _ := c.Get("mid")
  152. err = dmSvc.TransferRetry(c, id, mid.(int64))
  153. c.JSON(nil, err)
  154. }