diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 540e6cc92..733d9206b 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -21,7 +21,6 @@ import ( // @Tags 鉴权认证 // @ID UserRegister // @Accept json -// @Param token header string true "im token" // @Param req body api.UserRegisterReq true "secret为openIM密钥, 详细见服务端config.yaml secret字段
platform为平台ID
ex为拓展字段
gender为性别, 0为女, 1为男" // @Produce json // @Success 0 {object} api.UserRegisterResp @@ -90,7 +89,6 @@ func UserRegister(c *gin.Context) { // @Tags 鉴权认证 // @ID UserToken // @Accept json -// @Param token header string true "im token" // @Param req body api.UserTokenReq true "secret为openIM密钥, 详细见服务端config.yaml secret字段
platform为平台ID" // @Produce json // @Success 0 {object} api.UserTokenResp diff --git a/internal/demo/register/onboarding_process.go b/internal/demo/register/onboarding_process.go index 9100bab89..c87074ad9 100644 --- a/internal/demo/register/onboarding_process.go +++ b/internal/demo/register/onboarding_process.go @@ -232,7 +232,7 @@ func onboardingProcessNotification(operationID, userID, groupID, userName, faceU Content: []byte(welcomeString), MsgFrom: constant.UserMsgType, ContentType: constant.Text, - SessionType: constant.GroupChatType, + SessionType: constant.SuperGroupChatType, OperationID: operationID, SenderNickname: userName, SenderFaceURL: faceURL, diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index 22181f09b..45377c79c 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -13,34 +13,26 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *open_im_sdk.GetMaxAnd log.NewInfo(in.OperationID, "rpc getMaxAndMinSeq is arriving", in.String()) resp := new(open_im_sdk.GetMaxAndMinSeqResp) m := make(map[string]*open_im_sdk.MaxAndMinSeq) - //seq, err := model.GetBiggestSeqFromReceive(in.UserID) - maxSeq, err1 := commonDB.DB.GetUserMaxSeq(in.UserID) - //minSeq, err2 := commonDB.DB.GetUserMinSeq(in.UserID) - if err1 == nil { - resp.MaxSeq = uint32(maxSeq) - for _, v := range in.GroupIDList { - x := new(open_im_sdk.MaxAndMinSeq) - maxSeq, _ := commonDB.DB.GetUserMaxSeq(v) - x.MaxSeq = uint32(maxSeq) - m[v] = x - } - resp.GroupMaxAndMinSeq = m - } else if err1 == go_redis.Nil { - resp.MaxSeq = 0 - } else { - log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err1.Error()) + var maxSeq, minSeq uint64 + var err error + maxSeq, err = commonDB.DB.GetUserMaxSeq(in.UserID) + minSeq, err = commonDB.DB.GetUserMinSeq(in.UserID) + if err != nil && err != go_redis.Nil { + log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err.Error()) resp.ErrCode = 200 resp.ErrMsg = "redis get err" + return resp, nil + } + resp.MaxSeq = uint32(maxSeq) + resp.MinSeq = uint32(minSeq) + for _, groupID := range in.GroupIDList { + x := new(open_im_sdk.MaxAndMinSeq) + maxSeq, _ := commonDB.DB.GetGroupMaxSeq(groupID) + minSeq, _ := commonDB.DB.GetGroupUserMinSeq(groupID, in.UserID) + x.MaxSeq = uint32(maxSeq) + x.MinSeq = uint32(minSeq) + m[groupID] = x } - //if err2 == nil { - // resp.MinSeq = uint32(minSeq) - //} else if err2 == redis.ErrNil { - // resp.MinSeq = 0 - //} else { - // log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err2.Error()) - // resp.ErrCode = 201 - // resp.ErrMsg = "redis get err" - //} return resp, nil } func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index d26d76b95..fcca588c4 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -32,14 +32,9 @@ const ( SignalListCache = "SIGNAL_LIST_CACHE:" GlobalMsgRecvOpt = "GLOBAL_MSG_RECV_OPT" groupUserMinSeq = "GROUP_USER_MIN_SEQ:" + groupMaxSeq = "GROUP_MAX_SEQ" ) -//func (d * DataBases)pubMessage(channel, msg string) { -// d.rdb.Publish(context.Background(),channel,msg) -//} -//func (d * DataBases)pubMessage(channel, msg string) { -// d.rdb.Publish(context.Background(),channel,msg) -//} func (d *DataBases) JudgeAccountEXISTS(account string) (bool, error) { key := accountTempCode + account n, err := d.RDB.Exists(context.Background(), key).Result() @@ -101,6 +96,23 @@ func (d *DataBases) GetGroupUserMinSeq(groupID, userID string) (uint64, error) { return uint64(utils.StringToInt(seq)), err } +func (d *DataBases) GetGroupMaxSeq(groupID string) (uint64, error) { + key := groupMaxSeq + groupID + seq, err := d.RDB.Get(context.Background(), key).Result() + return uint64(utils.StringToInt(seq)), err +} + +func (d *DataBases) IncrGroupMaxSeq(groupID string) (uint64, error) { + key := groupMaxSeq + groupID + seq, err := d.RDB.Incr(context.Background(), key).Result() + return uint64(seq), err +} + +func (d *DataBases) SetGroupMaxSeq(groupID string, maxSeq uint32) error { + key := groupMaxSeq + groupID + return d.RDB.Set(context.Background(), key, maxSeq, 0).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)