From 5c8421027298bfb68a9c02527f3fffe0e38e16b5 Mon Sep 17 00:00:00 2001 From: jjxu <428192774@qq.com> Date: Wed, 18 Jun 2025 16:10:30 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B0=83=E8=AF=95=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E6=9C=AA=E8=AF=BB=E6=B6=88=E6=81=AF=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/asChat/chatCache/cache.go | 9 ++++++++- pkg/service/asChat/handler.go | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/service/asChat/chatCache/cache.go b/pkg/service/asChat/chatCache/cache.go index fddd470..d3897d3 100644 --- a/pkg/service/asChat/chatCache/cache.go +++ b/pkg/service/asChat/chatCache/cache.go @@ -144,29 +144,36 @@ func (cr ChatCache) IncreaseNewMessageTotal(ownerId int64, sessionId string) (er // 重置新消息数量 func (cr ChatCache) ResetNewMessageTotal(ownerId int64, sessionId string, total ...int64) error { + fmt.Printf("ResetNewMessageTotal: %d ,sessionId:%s ,total:%v\n", ownerId, sessionId, total) chatCacheLocker.Lock() defer chatCacheLocker.Unlock() var tl int64 if len(total) > 0 { tl = total[0] } + fmt.Println("ResetNewMessageTotal tl:", tl) ctx := context.Background() data := cr.GetNewMessageStat(ctx, ownerId) + fmt.Printf("ResetNewMessageTotal data:%+v\n", data) found := false for i, v := range data { if v.SessionId == sessionId { found = true data[i].Total = tl + fmt.Println("ResetNewMessageTotal found!") break } } if !found { + fmt.Println("ResetNewMessageTotal not found!") data = append(data, dto.UserMsgStatic{ SessionId: sessionId, Total: tl, }) } - return cr.coverOwnerNewMessageStat(ctx, ownerId, data) + err := cr.coverOwnerNewMessageStat(ctx, ownerId, data) + fmt.Println("ResetNewMessageTotal result:", err) + return err } func (cr ChatCache) RecountNewMessageTotal(ownerId int64) { diff --git a/pkg/service/asChat/handler.go b/pkg/service/asChat/handler.go index f70038b..0b5cd2c 100644 --- a/pkg/service/asChat/handler.go +++ b/pkg/service/asChat/handler.go @@ -249,7 +249,7 @@ func (cr ChatHandler) MessageList(c *gin.Context) { service.Success(c, resp) return } - chatUser, code := jwt.ParseToChatUser(c) + accessUser, code := jwt.ParseToChatUser(c) if code != 0 { service.ErrWithCode(c, code) return @@ -267,7 +267,7 @@ func (cr ChatHandler) MessageList(c *gin.Context) { defer func() { //获取最新数据时,重置新消息数量统计 if request.Direction == 2 || request.Recent { - cr.cache.ResetNewMessageTotal(chatUser.ID, request.SessionId) + cr.cache.ResetNewMessageTotal(accessUser.ID, request.SessionId) } //设置消息已被客服阅读,当客服重新通过通过websocket连接时,这些消息将不被纳入新消息数量统计 if len(returnDataIdList) > 0 && domain == "fontree" {