assist.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package service
  2. import (
  3. "context"
  4. dm2Mdl "go-common/app/interface/main/dm2/model"
  5. "go-common/app/interface/main/dm2/model/oplog"
  6. arcMdl "go-common/app/service/main/archive/model/archive"
  7. "go-common/app/service/main/assist/model/assist"
  8. "go-common/library/ecode"
  9. "go-common/library/log"
  10. )
  11. // assist
  12. func (s *Service) assist(c context.Context, mid int64, aid int64) (upID int64, isUp bool, err error) {
  13. var ares *assist.AssistRes
  14. arc, err := s.acvSvc.Archive3(c, &arcMdl.ArgAid2{Aid: aid})
  15. if err != nil {
  16. log.Error("s.acvSvc.Archive3(%d) error(%v)", aid, err)
  17. return
  18. }
  19. upID = arc.Author.Mid
  20. isUp = upID == mid
  21. if isUp {
  22. return
  23. }
  24. arg := &assist.ArgAssist{Mid: upID, AssistMid: mid, Type: assist.TypeDm}
  25. if ares, err = s.astSvc.Assist(c, arg); err != nil {
  26. log.Error("s.astSvc.Assist(%v) error(%v)", arg, err)
  27. return
  28. }
  29. if ares.Assist == 0 {
  30. err = ecode.DMAssistNo
  31. return
  32. }
  33. if ares.Allow < 1 {
  34. err = ecode.DMAssistLimit
  35. }
  36. return
  37. }
  38. // AssistBanned up主屏蔽
  39. func (s *Service) AssistBanned(c context.Context, mid, cid int64, dmids []int64) (err error) {
  40. arg := &dm2Mdl.ArgBanUsers{
  41. Mid: mid,
  42. Oid: cid,
  43. DMIDs: dmids,
  44. }
  45. if err = s.dmRPC.BanUsers(c, arg); err != nil {
  46. log.Error("dmRPC.BanUsers(%+v) error(%v)", arg, err)
  47. }
  48. return
  49. }
  50. // AssistUptBanned 更新up主屏蔽
  51. func (s *Service) AssistUptBanned(c context.Context, mid int64, hash string, active int8) (err error) {
  52. arg := &dm2Mdl.ArgEditUpFilters{
  53. Mid: mid,
  54. Type: dm2Mdl.FilterTypeID,
  55. Active: active,
  56. Filters: []string{hash},
  57. }
  58. if _, err = s.dmRPC.EditUpFilters(c, arg); err != nil {
  59. log.Error("dmRPC.EditUpFilters(%+v) error(%v)", arg, err)
  60. }
  61. return
  62. }
  63. // AssistDelBanned2 批量撤销up主屏蔽
  64. func (s *Service) AssistDelBanned2(c context.Context, mid, aid int64, hashes []string) (err error) {
  65. arg := &dm2Mdl.ArgCancelBanUsers{
  66. Mid: mid,
  67. Aid: aid,
  68. Filters: hashes,
  69. }
  70. if err = s.dmRPC.CancelBanUsers(c, arg); err != nil {
  71. log.Error("dmRPC.CancelBanUsers(%+v) error(%v)", arg, err)
  72. }
  73. return
  74. }
  75. // AssistBannedUsers 获取up主屏蔽列表
  76. func (s *Service) AssistBannedUsers(c context.Context, mid, aid int64) (hashes []string, err error) {
  77. upID, _, err := s.assist(c, mid, aid)
  78. if err != nil {
  79. if err == ecode.DMAssistLimit {
  80. err = nil
  81. } else {
  82. log.Error("s.assist(%d,%d) error(%v)", mid, aid, err)
  83. return
  84. }
  85. }
  86. arg := &dm2Mdl.ArgUpFilters{Mid: upID}
  87. res, err := s.dmRPC.UpFilters(c, arg)
  88. if err != nil {
  89. log.Error("dmRPC.UpFilters(%+v) error(%v)", arg, err)
  90. return
  91. }
  92. for _, v := range res {
  93. if v.Type == dm2Mdl.FilterTypeID {
  94. hashes = append(hashes, v.Filter)
  95. }
  96. }
  97. return
  98. }
  99. // AssistDeleteDM assist delete dm.
  100. func (s *Service) AssistDeleteDM(c context.Context, mid, oid int64, dmids []int64) (err error) {
  101. arg := &dm2Mdl.ArgEditDMState{
  102. Type: dm2Mdl.SubTypeVideo,
  103. Oid: oid,
  104. Mid: mid,
  105. State: dm2Mdl.StateDelete, // must be this value
  106. Dmids: dmids,
  107. Source: oplog.SourcePlayer,
  108. OperatorType: oplog.OperatorMember,
  109. }
  110. if err = s.dmRPC.EditDMState(c, arg); err != nil {
  111. log.Error("dmRPC.EditDMState(%v) error(%v)", arg, err)
  112. }
  113. return
  114. }