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