From 8477862e68e29e922a2cdbb3d7449868773e5a6c Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sat, 22 Mar 2025 17:50:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/im.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/handler/im.go b/handler/im.go index f19b688..8f7fa56 100644 --- a/handler/im.go +++ b/handler/im.go @@ -42,6 +42,23 @@ func SetUpIMGroup(router *gin.Engine) { imGroup := router.Group("/im") imGroup.POST("/send_message", SendMessage) imGroup.GET("/ai_chat_ws", SRMessage) + imGroup.POST("/get_message", GetMessage) +} + +func GetMessage(c *gin.Context) { + var req SMessage + id, _ := c.Get("id") + userID := int(id.(float64)) + if err := c.ShouldBind(&req); err == nil { + err2, messages := service.FindMessageBySessionID(req.SessionID, userID) + if err2 == nil { + c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success", "data": messages}) + } else { + c.JSON(http.StatusOK, gin.H{"error": err2.Error(), "code": proto.MsgSendFailed, "message": "failed"}) + } + } else { + c.JSON(http.StatusOK, gin.H{"error": err.Error(), "code": proto.ParameterError, "message": "failed"}) + } } func SendMessage(c *gin.Context) { @@ -88,6 +105,7 @@ func subscribeAndHandleIMMessages(ws *websocket.Conn, userId int) { //defer ticker.Stop() var sessionID uint + var userMsgID uint //接收客户端消息,发送消息 done := make(chan struct{}) @@ -122,7 +140,8 @@ func subscribeAndHandleIMMessages(ws *websocket.Conn, userId int) { } } //将消息存入数据库 - err, _ = service.CreateMessage(1, int(sessionID), userId, 2, data.Msg, 1) + err, userMsgID = service.CreateMessage(1, int(sessionID), userId, 2, data.Msg, 1) + log.Println("create user message id:", userMsgID) if err != nil { return } //机器人id为2,消息类型为1,状态为1