|
@@ -409,14 +409,17 @@ func FindUserClassUnreadAndClassAllMsg(userId string) (classUnreadCountMap map[i
|
|
|
rdata, err := redis.GetNewBytes(redisModule, fmt.Sprintf(UserClearUnread, userId))
|
|
|
fmt.Println("erroer", err)
|
|
|
rdataArr := []uint32{}
|
|
|
+ fmt.Println("------", rdata, reflect.TypeOf(rdata))
|
|
|
if rdata != nil {
|
|
|
- log.Println("-------", rdata, reflect.TypeOf(rdata))
|
|
|
if json.Unmarshal(*rdata, &rdataArr); err != nil {
|
|
|
fmt.Println("取出本次已读消息反序列化出错:", err)
|
|
|
return classUnreadCountMap, classUnreadMsgMap, classAllMsgMap, err
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ rdataMap := make(map[uint32]bool)
|
|
|
+ for _, v := range rdataArr {
|
|
|
+ rdataMap[v] = true
|
|
|
+ }
|
|
|
sql := fmt.Sprintf(`select a2.group_id,bitmapToArray(bitmapAnd(a1.unreadArr,a2.msg_bitmap)) as unreadArr,bitmapToArray(bitmapAnd(a1.allMsg,a2.msg_bitmap)) as classMsgArr from
|
|
|
(SELECT bitmapAndnot(mus.allMsg,mus.readMsg) unreadArr,mus.allMsg FROM message_user_summary mus WHERE mus.userId = '%s') a1,
|
|
|
(select msg_bitmap,group_id from message_summary ms where 1=1 limit 10) a2`, userId)
|
|
@@ -435,23 +438,18 @@ func FindUserClassUnreadAndClassAllMsg(userId string) (classUnreadCountMap map[i
|
|
|
}
|
|
|
//处理已读
|
|
|
unreadArr := []uint32{}
|
|
|
- if len(rdataArr) > 0 {
|
|
|
- if len(rdataArr) > 0 {
|
|
|
- rdataMap := make(map[uint32]bool)
|
|
|
- for _, v := range rdataArr {
|
|
|
- rdataMap[v] = true
|
|
|
- }
|
|
|
-
|
|
|
- if len(group.ClassUnread) > 0 {
|
|
|
- for _, v := range group.ClassUnread {
|
|
|
- if !rdataMap[v] {
|
|
|
- unreadArr = append(unreadArr, v)
|
|
|
- }
|
|
|
+ if len(rdataMap) > 0 {
|
|
|
+ if group.GroupId == 1 {
|
|
|
+ fmt.Println("*****", group.ClassUnread)
|
|
|
+ }
|
|
|
+ if len(group.ClassUnread) > 0 {
|
|
|
+ for _, v := range group.ClassUnread {
|
|
|
+ if !rdataMap[v] {
|
|
|
+ unreadArr = append(unreadArr, v)
|
|
|
}
|
|
|
}
|
|
|
- group.ClassUnread = unreadArr
|
|
|
- group.ClassUnread = append(group.ClassUnread, rdataArr...)
|
|
|
}
|
|
|
+ group.ClassUnread = unreadArr
|
|
|
}
|
|
|
|
|
|
findRes = append(findRes, group)
|
|
@@ -510,14 +508,13 @@ func GetUserMsgSummary(userId string, isfilterActive bool) (userAllMsg, userRead
|
|
|
return userAllMsg, userReadMsg, userUnreadMsg, err
|
|
|
}
|
|
|
}
|
|
|
+ rdataMap := make(map[uint32]bool)
|
|
|
+ for _, v := range rdataArr {
|
|
|
+ rdataMap[v] = true
|
|
|
+ }
|
|
|
userUnreadArr := []uint32{}
|
|
|
- if len(rdataArr) > 0 {
|
|
|
+ if len(rdataMap) > 0 {
|
|
|
if len(rdataArr) > 0 {
|
|
|
- rdataMap := make(map[uint32]bool)
|
|
|
- for _, v := range rdataArr {
|
|
|
- rdataMap[v] = true
|
|
|
- }
|
|
|
-
|
|
|
if len(userUnreadMsg) > 0 {
|
|
|
for _, v := range userUnreadMsg {
|
|
|
if !rdataMap[v] {
|
|
@@ -525,6 +522,7 @@ func GetUserMsgSummary(userId string, isfilterActive bool) (userAllMsg, userRead
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ userUnreadMsg = userUnreadArr
|
|
|
userReadMsg = append(userReadMsg, rdataArr...)
|
|
|
}
|
|
|
}
|
|
@@ -532,7 +530,7 @@ func GetUserMsgSummary(userId string, isfilterActive bool) (userAllMsg, userRead
|
|
|
redis.Put(redisModule, key, map[string][]uint32{
|
|
|
"userAllMsg": userAllMsg,
|
|
|
"userReadMsg": userReadMsg,
|
|
|
- "userUnreadMsg": userUnreadArr,
|
|
|
+ "userUnreadMsg": userUnreadMsg,
|
|
|
}, config.ConfigJson.RedisFailureTime)
|
|
|
return userAllMsg, userReadMsg, userUnreadMsg, nil
|
|
|
}
|