renjiaojiao 1 жил өмнө
parent
commit
fbf73f1725

+ 7 - 3
rpc/internal/common/msglistService.go

@@ -374,7 +374,9 @@ func BitmapCountClassUnread(userId string, groupId int64, classUnreadCountMap ma
 
 //FindUserClassUnread 查询用户分类未读消息id
 func FindUserClassUnread(userId string) (map[int]int, map[int][]int) {
-	sql := fmt.Sprintf("SELECT bitmapToArray(bitmapAnd(bitmapAndnot(mus.allMsg,mus.readMsg),ms.msg_bitmap)) AS unreadArr,ms.group_id  FROM messageCenter.message_user_summary mus, messageCenter.message_summary ms WHERE mus.userId = '%s'", userId)
+	sql := fmt.Sprintf(`select bitmapToArray(bitmapAnd(a1.unreadArr,a2.msg_bitmap)) from 
+							(SELECT bitmapAndnot(mus.allMsg,mus.readMsg) unreadArr FROM message_user_summary mus WHERE mus.userId = '%s') a1,
+						(select msg_bitmap from message_summary ms  where 1=1 limit 10) a2`, userId)
 	rows, err := entity.ClickhouseConn.Query(context.Background(), sql)
 	if err != nil {
 		log.Println("获取各分类未读消息数组出错:", err)
@@ -397,7 +399,9 @@ func FindUserClassUnread(userId string) (map[int]int, map[int][]int) {
 
 //FindUserClassMsg 查询用户分类所有消息id
 func FindUserClassMsg(userId string) (map[int]int, map[int][]int) {
-	sql := fmt.Sprintf("SELECT bitmapToArray(bitmapAnd(mus.allMsg,ms.msg_bitmap)) AS unreadArr,ms.group_id  FROM messageCenter.message_user_summary mus, messageCenter.message_summary ms WHERE mus.userId = '%s'", userId)
+	sql := fmt.Sprintf(`select bitmapToArray(bitmapAnd(a1.readArr,a2.msg_bitmap))   from 
+				(SELECT mus.readMsg as readArr FROM message_user_summary mus WHERE mus.userId = '%s') a1,
+			(select msg_bitmap from message_summary ms  where 1=1 limit 10) a2`, userId)
 	rows, err := entity.ClickhouseConn.Query(context.Background(), sql)
 	if err != nil {
 		log.Println("获取各分类未读消息数组出错:", err)
@@ -430,7 +434,7 @@ func GetUserMsgSummary(userId string) (userAllMsg, userReadMsg, userUnreadMsg []
 		err = errors.New("用户暂无数据")
 		return
 	}
-	sql := fmt.Sprintf("SELECT bitmapToArray(allMsg) as userAllMsg,bitmapToArray(readMsg) as userReadMsg,bitmapToArray(bitmapAndnot(allMsg,readMsg)) as userunRead from messageCenter.message_user_summary where userId ='%s'", userId)
+	sql := fmt.Sprintf("SELECT bitmapToArray(allMsg) as userAllMsg,bitmapToArray(readMsg) as userReadMsg,bitmapToArray(bitmapAndnot(allMsg,readMsg)) as userunRead from message_user_summary where userId ='%s'", userId)
 	log.Println("GetUserMsgSummary selcet2 ", sql)
 	row := entity.ClickhouseConn.QueryRow(context.Background(), sql)
 	err = row.Scan(&userAllMsg, &userReadMsg, &userUnreadMsg)