From 06aa01e5953784b1bb899def49de842465423221 Mon Sep 17 00:00:00 2001 From: Robin <7434053+warrior_of_light_robin@user.noreply.gitee.com> Date: Tue, 3 Dec 2024 16:19:27 +0800 Subject: [PATCH 1/2] by Robin at 20241203 --- app/mix/service/notif_bcst_center.go | 31 +++++++--------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/app/mix/service/notif_bcst_center.go b/app/mix/service/notif_bcst_center.go index 95a05f7a..86e225bd 100644 --- a/app/mix/service/notif_bcst_center.go +++ b/app/mix/service/notif_bcst_center.go @@ -134,18 +134,6 @@ func (s *NotifBcstCenter) pushNotifsToMids(ctx *gin.Context, nids []int64, objMi return err } - // 记录未读总数 - for _, mid := range objMids { - for nType, total := range nTypeTotalMap { - // 以真更新的条数incr - err = DefaultService.utilIncrUrc(mid, nType, total) - if err != nil { - logger.Error("utilIncrUrc fail, err: %v", err) - return err - } - } - } - return nil } @@ -239,17 +227,6 @@ func (s *NotifBcstCenter) pullAllBcstedNotifs(ctx *gin.Context, vers, receiveVer return err } - // 记录未读总数 - for nType, total := range nTypeTotalMap { - - // 以真更新的条数incr - err = DefaultService.utilIncrUrc(objMid, nType, total) - if err != nil { - logger.Error("utilIncrUrc fail, err: %v", err) - return err - } - } - return nil } @@ -295,6 +272,14 @@ func (s *NotifBcstCenter) bcstThroughWebsocket(ctx *gin.Context, nids []int64, o func (s *NotifBcstCenter) bcstToMidsThroughWebsocket(ctx *gin.Context, notif *dbstruct.Notification, urc int64, objMids []int64) error { for _, mid := range objMids { + + // 先更新未读总数 + err := DefaultService.utilIncrUrc(mid, notif.GetNType(), urc) + if err != nil { + logger.Error("utilIncrUrc fail, err: %v", err) + return err + } + total, _ := redis.GetRedisClient().GetInt64(util.GetNotifUrcTotalIdForRedis(mid)) param := &firenzeproto.SendBizMsgParam{ Mid: mid, -- 2.41.0 From 0c6545087b34325df7b421243cfdc407d34595cf Mon Sep 17 00:00:00 2001 From: Robin <7434053+warrior_of_light_robin@user.noreply.gitee.com> Date: Tue, 3 Dec 2024 16:49:57 +0800 Subject: [PATCH 2/2] by Robin at 20241203 --- app/mix/dao/mongo.go | 6 +++--- app/mix/service/logic/account.go | 7 ++++++- dbstruct/account.go | 4 ++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/mix/dao/mongo.go b/app/mix/dao/mongo.go index fdf3220f..4d529110 100644 --- a/app/mix/dao/mongo.go +++ b/app/mix/dao/mongo.go @@ -1581,9 +1581,9 @@ func (m *Mongo) GetLastHourNewUserFromH5Count(ctx *gin.Context, req *accountprot return count, err } -func (m *Mongo) GetStreamerAccountMids(ctx *gin.Context) ([]int64, error) { +func (m *Mongo) GetStreamerAccountMids(ctx *gin.Context) ([]*dbstruct.AcctId, error) { col := m.getColAccount() - list := make([]int64, 0) + list := make([]*dbstruct.AcctId, 0) query := qmgo.M{ "role": qmgo.M{ @@ -1591,7 +1591,7 @@ func (m *Mongo) GetStreamerAccountMids(ctx *gin.Context) ([]int64, error) { }, } - err := col.Find(ctx, query).Sort("_id").Select("_id").All(&list) + err := col.Find(ctx, query).Select(qmgo.M{"_id": 1}).All(&list) if err == qmgo.ErrNoSuchDocuments { err = nil return nil, err diff --git a/app/mix/service/logic/account.go b/app/mix/service/logic/account.go index aec94f1f..686f691b 100644 --- a/app/mix/service/logic/account.go +++ b/app/mix/service/logic/account.go @@ -274,5 +274,10 @@ func (p *Account) GetStreamerAccountMids(ctx *gin.Context) ([]int64, error) { logger.Error("GetStreamerAccountMids fail, err: %v", err) return make([]int64, 0), err } - return list, nil + + mids := make([]int64, 0) + for _, v := range list { + mids = append(mids, v.Mid) + } + return mids, nil } diff --git a/dbstruct/account.go b/dbstruct/account.go index 8365b830..295096dc 100644 --- a/dbstruct/account.go +++ b/dbstruct/account.go @@ -104,3 +104,7 @@ type StreamerAcct struct { Ut *int64 `json:"ut" bson:"ut"` // 更新时间 DelFlag *int64 `json:"del_flag" bson:"del_flag"` // 删除标记,0-否,1-是 } + +type AcctId struct { + Mid int64 `json:"mid" bson:"_id"` // 用户表Id +} -- 2.41.0