From 73f634279e53f98aedb325893324d4458e8fde4b Mon Sep 17 00:00:00 2001 From: Leufolium Date: Thu, 12 Sep 2024 15:18:13 +0800 Subject: [PATCH] by Robin at 20240912; add streamer cancel proc --- app/mix/dao/mongo.go | 16 ++++++++++++++++ app/mix/service/logic/streamer.go | 9 +++++++++ app/mix/service/utilservice.go | 25 +++++++++++++++++++++++++ dbstruct/streamer_acct.go | 7 +++++-- 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/app/mix/dao/mongo.go b/app/mix/dao/mongo.go index fc7a69df..f49424eb 100644 --- a/app/mix/dao/mongo.go +++ b/app/mix/dao/mongo.go @@ -2871,6 +2871,22 @@ func (m *Mongo) GetStreamerList(ctx *gin.Context, req *streamerproto.OpListReq) return list, err } +func (m *Mongo) UpdateStreamerByMids(ctx *gin.Context, streamer *dbstruct.Streamer, mids []int64) error { + col := m.getColStreamer() + set := util.EntityToM(streamer) + set["ut"] = time.Now().Unix() + filter := qmgo.M{ + "mid": qmgo.M{ + "$in": mids, + }, + } + up := qmgo.M{ + "$set": set, + } + _, err := col.UpdateAll(ctx, filter, up) + return err +} + func (m *Mongo) CreateBatchStreamer(ctx *gin.Context, streamers []*dbstruct.Streamer) error { col := m.getColStreamer() _, err := col.InsertMany(ctx, streamers) diff --git a/app/mix/service/logic/streamer.go b/app/mix/service/logic/streamer.go index b58107c4..1bd497c5 100644 --- a/app/mix/service/logic/streamer.go +++ b/app/mix/service/logic/streamer.go @@ -138,3 +138,12 @@ func (p *Streamer) OpCreateBatch(ctx *gin.Context, req *streamerproto.OpCreateBa } return nil } + +func (p *Streamer) OpUpdateByMids(ctx *gin.Context, streamer *dbstruct.Streamer, mids []int64) error { + err := p.store.UpdateStreamerByMids(ctx, streamer, mids) + if err != nil { + logger.Error("UpdateStreamerByMids fail, err: %v", err) + return err + } + return nil +} diff --git a/app/mix/service/utilservice.go b/app/mix/service/utilservice.go index ad355e56..45f3237d 100644 --- a/app/mix/service/utilservice.go +++ b/app/mix/service/utilservice.go @@ -626,6 +626,31 @@ func (s *Service) utilCancelAccountByMids(ctx *gin.Context, midList []int64) err } } + // 针对主播账户,隐藏streamer,并从es表中删除 + streamerMids := make([]int64, 0) + for _, acct := range accounts { + if acct.GetRole() == consts.Streamer { + streamerMids = append(streamerMids, acct.GetMid()) + } + } + if len(streamerMids) > 0 { + err = _DefaultStreamer.OpUpdateByMids(ctx, &dbstruct.Streamer{ + IsHided: goproto.Int64(consts.IsHided_Yes), + }, streamerMids) + if err != nil { + logger.Error("_DefaultStreamer OpUpdateByMids fail, err: %v", err) + return err + } + + err = _DefaultStreamerAcct.OpUpdateSelectivelyByMids(ctx, &dbstruct.EsStreamerAcctUpdater{ + DelFlag: goproto.Int64(consts.Deleted), + }, streamerMids) + if err != nil { + logger.Error("_DefaultStreamerAcct OpUpdateSelectivelyByMids fail, err: %v", err) + return err + } + } + return nil } diff --git a/dbstruct/streamer_acct.go b/dbstruct/streamer_acct.go index 2d7cd9cd..49211944 100644 --- a/dbstruct/streamer_acct.go +++ b/dbstruct/streamer_acct.go @@ -31,8 +31,11 @@ type EsStreamerAcctUpdater struct { City *string `json:"city" bson:"city"` // 所在城市 Constellation *string `json:"constellation" bson:"constellation"` // 星座 LastZoneMomentCreateDayStart *int64 `json:"last_zone_moment_create_day_start" bson:"last_zone_moment_create_day_start"` // 最后空间动态创建日始整点 - WechatCoinPrice *int64 `json:"wechat_coin_price"` // 微信金币价格 - ZoneAdmissionPrice *int64 `json:"zone_admission_price"` // 空间解锁价格, 单位: 分 + WechatCoinPrice *int64 `json:"wechat_coin_price" bson:"wechat_coin_price"` // 微信金币价格 + ZoneAdmissionPrice *int64 `json:"zone_admission_price" bson:"zone_admission_price"` + Ct *int64 `json:"ct" bson:"ct"` + Ut *int64 `json:"ut" bson:"ut"` + DelFlag *int64 `json:"del_flag" bson:"del_flag"` } func (p *EsStreamerAcctUpdater) GetMid() int64 {