callback fix

This commit is contained in:
wangchuxiao
2022-08-04 17:20:33 +08:00
parent 231d4db71d
commit 3d0827a6da
6 changed files with 158 additions and 58 deletions
+7
View File
@@ -225,6 +225,13 @@ const (
WorkMomentLikeNotification = 1
WorkMomentAtUserNotification = 2
)
const (
// diffusionType
WriteDiffusion = 0
ReadDiffusion = 1
)
const (
AtAllString = "AtAllTag"
AtNormal = 0
+6
View File
@@ -34,6 +34,7 @@ const (
FcmToken = "FCM_TOKEN:"
groupUserMinSeq = "GROUP_USER_MIN_SEQ:"
groupMaxSeq = "GROUP_MAX_SEQ:"
groupMinSeq = "GROUP_MIN_SEQ:"
sendMsgFailedFlag = "SEND_MSG_FAILED_FLAG:"
)
@@ -115,6 +116,11 @@ func (d *DataBases) SetGroupMaxSeq(groupID string, maxSeq uint64) error {
return d.RDB.Set(context.Background(), key, maxSeq, 0).Err()
}
func (d *DataBases) SetGroupMinSeq(groupID string, minSeq uint32) error {
key := groupMinSeq + groupID
return d.RDB.Set(context.Background(), key, minSeq, 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)
+41 -2
View File
@@ -186,7 +186,7 @@ func DelUserInfoFromCache(userID string) error {
return db.DB.Rc.TagAsDeleted(userInfoCache + userID)
}
func GetGroupMemberInfoFromCache(groupID, userID string) (*db.GroupMember, error) {
func GetGroupMemberInfoFromCache(groupID, userID, fullKey string) (*db.GroupMember, error) {
getGroupMemberInfo := func() (string, error) {
groupMemberInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID)
if err != nil {
@@ -195,7 +195,10 @@ func GetGroupMemberInfoFromCache(groupID, userID string) (*db.GroupMember, error
bytes, err := json.Marshal(groupMemberInfo)
return string(bytes), utils.Wrap(err, "")
}
groupMemberInfoStr, err := db.DB.Rc.Fetch(groupMemberInfoCache+groupID+"-"+userID, time.Second*30*60, getGroupMemberInfo)
if fullKey == "" {
fullKey = groupMemberInfoCache + groupID + "-" + userID
}
groupMemberInfoStr, err := db.DB.Rc.Fetch(fullKey, time.Second*30*60, getGroupMemberInfo)
if err != nil {
return nil, utils.Wrap(err, "")
}
@@ -208,6 +211,42 @@ func DelGroupMemberInfoFromCache(groupID, userID string) error {
return db.DB.Rc.TagAsDeleted(groupMemberInfoCache + groupID + "-" + userID)
}
func GetGroupMembersInfoFromCache(count, offset int32, groupID string) ([]*db.GroupMember, error) {
var cursor uint64
var err error
var keys []string
key := groupMemberInfoCache + groupID + "-"
if count != 0 {
keys, cursor, err = db.DB.RDB.Scan(context.Background(), uint64(offset), key, int64(count)).Result()
if err != nil {
return nil, err
}
} else {
for {
var currentKeys []string
currentKeys, cursor, err = db.DB.RDB.Scan(context.Background(), cursor, key, 3000).Result()
if err != nil {
return nil, err
}
keys = append(keys, currentKeys...)
if cursor == 0 {
break
}
}
}
var groupMemberList []*db.GroupMember
for _, key := range keys {
v, err := GetGroupMemberInfoFromCache("", "", key)
if err != nil {
log.NewError("", utils.GetSelfFuncName(), key, err.Error())
continue
}
groupMemberList = append(groupMemberList, v)
}
return groupMemberList, nil
}
func GetAllGroupMembersInfoFromCache(groupID string) ([]*db.GroupMember, error) {
getGroupMemberInfo := func() (string, error) {
groupMembers, err := imdb.GetGroupMemberListByGroupID(groupID)