Explorar el Código

保存门店的联系人数据结构是有序字典,key 是 shop_chats:{shopId}, 里面的Member是 customeId

shizhongqi hace 11 meses
padre
commit
beb70707c3
Se han modificado 2 ficheros con 1 adiciones y 79 borrados
  1. 0 78
      score_debug.go
  2. 1 1
      wsClient/redis.go

+ 0 - 78
score_debug.go

@@ -1,78 +0,0 @@
-package main
-
-import (
-	"fmt"
-	"strconv"
-	"time"
-)
-
-// 分数计算常量
-const (
-	UnreadMultiplier = 10000.0 // 未读消息数乘数,用于小数部分存储
-)
-
-// calculateScore 计算有序集合的分数,同时存储时间戳和未读消息数
-// 整数部分:Unix时间戳,小数部分:未读消息数(除以乘数)
-func calculateScore(timestamp int64, unreadCount int) float64 {
-	score := float64(timestamp) + (float64(unreadCount) / UnreadMultiplier)
-	fmt.Printf("calculateScore: timestamp=%d, unreadCount=%d, score=%f\n", timestamp, unreadCount, score)
-	return score
-}
-
-// parseScore 从分数中解析出时间戳和未读消息数
-func parseScore(score float64) (timestamp int64, unreadCount int) {
-	timestamp = int64(score) // 整数部分是时间戳
-	decimalPart := score - float64(timestamp)
-	// 使用四舍五入来处理浮点数精度问题
-	unreadCount = int(decimalPart*UnreadMultiplier + 0.5)
-	fmt.Printf("parseScore: score=%f, timestamp=%d, decimalPart=%f, unreadCount=%d\n", score, timestamp, decimalPart, unreadCount)
-	return
-}
-
-func main() {
-	fmt.Println("=== 分数计算测试 ===")
-
-	// 测试用例
-	timestamp := time.Now().Unix()
-	fmt.Printf("原始时间戳: %d\n\n", timestamp)
-
-	// 测试1: 未读消息数为0
-	fmt.Println("测试1: 未读消息数为0")
-	score1 := calculateScore(timestamp, 0)
-	ts1, unread1 := parseScore(score1)
-	fmt.Printf("结果: timestamp=%d, unreadCount=%d\n\n", ts1, unread1)
-
-	// 测试2: 未读消息数为1
-	fmt.Println("测试2: 未读消息数为1")
-	score2 := calculateScore(timestamp, 1)
-	ts2, unread2 := parseScore(score2)
-	fmt.Printf("结果: timestamp=%d, unreadCount=%d\n\n", ts2, unread2)
-
-	// 测试3: 未读消息数为5
-	fmt.Println("测试3: 未读消息数为5")
-	score3 := calculateScore(timestamp, 5)
-	ts3, unread3 := parseScore(score3)
-	fmt.Printf("结果: timestamp=%d, unreadCount=%d\n\n", ts3, unread3)
-
-	// 测试4: 未读消息数为100
-	fmt.Println("测试4: 未读消息数为100")
-	score4 := calculateScore(timestamp, 100)
-	ts4, unread4 := parseScore(score4)
-	fmt.Printf("结果: timestamp=%d, unreadCount=%d\n\n", ts4, unread4)
-
-	// 测试5: 验证小数部分的精度
-	fmt.Println("测试5: 小数部分精度验证")
-	testScore := 1703123456.123
-	fmt.Printf("测试分数: %f\n", testScore)
-	ts5, unread5 := parseScore(testScore)
-	fmt.Printf("解析结果: timestamp=%d, unreadCount=%d\n\n", ts5, unread5)
-
-	// 测试6: 字符串转换测试
-	fmt.Println("测试6: 字符串转换测试")
-	scoreStr := fmt.Sprintf("%.6f", score2)
-	fmt.Printf("分数字符串: %s\n", scoreStr)
-	if parsedScore, err := strconv.ParseFloat(scoreStr, 64); err == nil {
-		ts6, unread6 := parseScore(parsedScore)
-		fmt.Printf("字符串解析结果: timestamp=%d, unreadCount=%d\n", ts6, unread6)
-	}
-}

+ 1 - 1
wsClient/redis.go

@@ -463,7 +463,7 @@ func GetTotalUnreadCount(userType string, userID int32) (int, error) {
 */
 func ClearUnreadCount(client *Client) error {
 	id := client.userInfo.ShopId
-	contactID := client.userInfo.UserId
+	contactID := client.userInfo.CustomId
 	if client.userInfo.Type == UserTypeCustomer {
 		id = client.userInfo.UserId
 		contactID = client.userInfo.ShopId