diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 923a29698..d471ef590 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 923a29698760e632dee555baec19e295a6ffab42 +Subproject commit d471ef590b1c00c553821de715d23be03c0c8142 diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7a1bdc600..80ff7545f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -248,7 +248,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { if group.Status == constant.GroupStatusDismissed { - log.NewError(req.OperationID, "constant.GroupStatusDismissed ", group) + log.Info(req.OperationID, "constant.GroupStatusDismissed ", group) continue } utils.CopyStructFields(&groupNode, group) @@ -729,6 +729,10 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge log.Error(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), v.GroupID) continue } + if group.Status == constant.GroupStatusDismissed { + log.Debug(req.OperationID, "group constant.GroupStatusDismissed ", group.GroupID) + continue + } user, err := imdb.GetUserByUserID(v.UserID) if err != nil { log.Error(req.OperationID, "GetUserByUserID failed ", err.Error(), v.UserID) diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index c96fe08b4..9d0a1dbaf 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -18,6 +18,7 @@ import ( "strconv" "time" ) + const ( accountTempCode = "ACCOUNT_TEMP_CODE" resetPwdTempCode = "RESET_PWD_TEMP_CODE" @@ -35,9 +36,9 @@ const ( SignalCache = "SIGNAL_CACHE:" SignalListCache = "SIGNAL_LIST_CACHE:" GlobalMsgRecvOpt = "GLOBAL_MSG_RECV_OPT" + groupUserMinSeq = "GROUP_USER_MIN_SEQ:" ) - //func (d * DataBases)pubMessage(channel, msg string) { // d.rdb.Publish(context.Background(),channel,msg) //} @@ -95,6 +96,16 @@ func (d *DataBases) GetUserMinSeq(uid string) (uint64, error) { return uint64(utils.StringToInt(seq)), err } +func (d *DataBases) SetGroupUserMinSeq(groupID, userID string, minSeq uint32) (err error) { + key := groupUserMinSeq + "g:" + groupID + "u:" + userID + return d.rdb.Set(context.Background(), key, minSeq, 0).Err() +} +func (d *DataBases) GetGroupUserMinSeq(groupID, userID string) (uint64, error) { + key := groupUserMinSeq + "g:" + groupID + "u:" + userID + seq, err := d.rdb.Get(context.Background(), key).Result() + return uint64(utils.StringToInt(seq)), err +} + //Store userid and platform class to redis func (d *DataBases) AddTokenFlag(userID string, platformID int, token string, flag int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) diff --git a/pkg/common/db/batch_insert_chat.go b/pkg/common/db/batch_insert_chat.go index c6b57201f..7ed0d7e1a 100644 --- a/pkg/common/db/batch_insert_chat.go +++ b/pkg/common/db/batch_insert_chat.go @@ -131,7 +131,7 @@ func (d *DataBases) BatchInsertChat2Cache(userID string, msgList []*pbMsg.MsgDat if err != nil { log.Error(operationID, "setMessageToCache failed, continue ", err.Error(), len(msgList), userID) } - log.NewWarn(operationID, "batch to redis cost time ", getCurrentTimestampByMill()-newTime, userID, len(msgList)) + log.Debug(operationID, "batch to redis cost time ", getCurrentTimestampByMill()-newTime, userID, len(msgList)) return utils.Wrap(d.SetUserMaxSeq(userID, uint64(currentMaxSeq)), ""), lastMaxSeq } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 0b30be53e..60f2de972 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -168,6 +168,7 @@ type User struct { CreateTime time.Time `gorm:"column:create_time"` AppMangerLevel int32 `gorm:"column:app_manger_level"` GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"` + status int32 `gorm:"column:status"` } //message BlackInfo{