获取访客历史消息版本2

pull/23/head
taoshihan1991 4 years ago
parent 88999a3326
commit ea4c5bb3ba

@ -195,3 +195,37 @@ func UploadImg(c *gin.Context) {
})
}
}
func GetMessagesV2(c *gin.Context) {
visitorId := c.Query("visitor_id")
messages := models.FindMessageByVisitorId(visitorId)
//result := make([]map[string]interface{}, 0)
chatMessages := make([]ChatMessage, 0)
for _, message := range messages {
//item := make(map[string]interface{})
var visitor models.Visitor
var kefu models.User
if visitor.Name == "" || kefu.Name == "" {
kefu = models.FindUser(message.KefuId)
visitor = models.FindVisitorByVistorId(message.VisitorId)
}
var chatMessage ChatMessage
chatMessage.Time = message.CreatedAt.Format("2006-01-02 15:04:05")
chatMessage.Content = message.Content
chatMessage.MesType = message.MesType
if message.MesType == "kefu" {
chatMessage.Name = kefu.Nickname
chatMessage.Avator = kefu.Avator
} else {
chatMessage.Name = visitor.Name
chatMessage.Avator = visitor.Avator
}
chatMessages = append(chatMessages, chatMessage)
}
models.ReadMessageByVisitorId(visitorId)
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",
"result": chatMessages,
})
}

@ -5,3 +5,10 @@ type Response struct {
Msg string `json:"msg"`
result interface{} `json:"result"`
}
type ChatMessage struct {
Time string `json:"time"`
Content string `json:"content"`
MesType string `json:"mes_type"`
Name string `json:"name"`
Avator string `json:"avator"`
}

@ -50,7 +50,7 @@ func FindLastMessage(visitorIds []string) []Message {
Limit(1024).
SubQuery()
DB.Raw("SELECT ANY_VALUE(visitor_id) visitor_id,ANY_VALUE(id) id,ANY_VALUE(content) content FROM ? message_alia GROUP BY visitor_id", subQuery).Scan(&messages)
//DB.Select("ANY_VALUE(visitor_id) visitor_id,ANY_VALUE(id) id,ANY_VALUE(Content) content").Table("?", subQuery).Group("visitor_id").Find(&messages)
//DB.Select("ANY_VALUE(visitor_id) visitor_id,MAX(ANY_VALUE(id)) id,ANY_VALUE(content) content").Group("visitor_id").Find(&messages)
return messages
}

@ -19,6 +19,7 @@ func InitApiRouter(engine *gin.Engine) {
//获取消息
engine.GET("/messages", controller.GetVisitorMessage)
engine.GET("/2/messages", controller.GetMessagesV2)
engine.GET("/message_notice", controller.SendVisitorNotice)
//发送单条消息
engine.POST("/message", middleware.Ipblack, controller.SendMessage)

@ -89,7 +89,9 @@ func kefuServerBackend() {
Type: "pong",
}
str, _ := json.Marshal(msg)
Mux.Lock()
conn.WriteMessage(websocket.TextMessage, str)
Mux.Unlock()
}
}

@ -4,6 +4,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"net/http"
"sync"
)
type User struct {
@ -41,6 +42,7 @@ var ClientList = make(map[string]*User)
var KefuList = make(map[string][]*User)
var message = make(chan *Message)
var upgrader = websocket.Upgrader{}
var Mux sync.RWMutex
func init() {
upgrader = websocket.Upgrader{

Loading…
Cancel
Save