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)