发送消息v2

pull/23/head
陶士涵 4 years ago
parent fab818ed16
commit 01274b29a3

@ -8,6 +8,7 @@ import (
"github.com/taoshihan1991/imaptool/config" "github.com/taoshihan1991/imaptool/config"
"github.com/taoshihan1991/imaptool/models" "github.com/taoshihan1991/imaptool/models"
"github.com/taoshihan1991/imaptool/tools" "github.com/taoshihan1991/imaptool/tools"
"github.com/taoshihan1991/imaptool/ws"
"os" "os"
"path" "path"
"strings" "strings"
@ -113,6 +114,93 @@ func SendMessage(c *gin.Context) {
"msg": "ok", "msg": "ok",
}) })
} }
func SendMessageV2(c *gin.Context) {
fromId := c.PostForm("from_id")
toId := c.PostForm("to_id")
content := c.PostForm("content")
cType := c.PostForm("type")
if content == "" {
c.JSON(200, gin.H{
"code": 400,
"msg": "内容不能为空",
})
return
}
var kefuInfo models.User
var vistorInfo models.Visitor
if cType == "kefu" {
kefuInfo = models.FindUser(fromId)
vistorInfo = models.FindVisitorByVistorId(toId)
} else if cType == "visitor" {
vistorInfo = models.FindVisitorByVistorId(fromId)
kefuInfo = models.FindUser(toId)
}
if kefuInfo.ID == 0 || vistorInfo.ID == 0 {
c.JSON(200, gin.H{
"code": 400,
"msg": "用户不存在",
})
return
}
models.CreateMessage(kefuInfo.Name, vistorInfo.VisitorId, content, cType)
if cType == "kefu" {
guest, ok := clientList[vistorInfo.VisitorId]
if guest == nil || !ok {
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",
})
return
}
conn := guest.conn
msg := TypeMessage{
Type: "message",
Data: ClientMessage{
Name: kefuInfo.Nickname,
Avator: kefuInfo.Avator,
Id: kefuInfo.Name,
Time: time.Now().Format("2006-01-02 15:04:05"),
ToId: vistorInfo.VisitorId,
Content: content,
},
}
str, _ := json.Marshal(msg)
conn.WriteMessage(websocket.TextMessage, str)
}
if cType == "visitor" {
kefuConns, ok := ws.KefuList[kefuInfo.Name]
if kefuConns == nil || !ok {
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",
})
return
}
msg := TypeMessage{
Type: "message",
Data: ClientMessage{
Avator: vistorInfo.Avator,
Id: vistorInfo.VisitorId,
Name: vistorInfo.Name,
ToId: kefuInfo.Name,
Content: content,
Time: time.Now().Format("2006-01-02 15:04:05"),
},
}
str, _ := json.Marshal(msg)
for _, kefuConn := range kefuConns {
kefuConn.Conn.WriteMessage(websocket.TextMessage, str)
}
}
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",
})
}
func SendVisitorNotice(c *gin.Context) { func SendVisitorNotice(c *gin.Context) {
notice := c.Query("msg") notice := c.Query("msg")
if notice == "" { if notice == "" {

@ -25,6 +25,7 @@ func InitApiRouter(engine *gin.Engine) {
engine.GET("/message_notice", controller.SendVisitorNotice) engine.GET("/message_notice", controller.SendVisitorNotice)
//发送单条消息 //发送单条消息
engine.POST("/message", middleware.Ipblack, controller.SendMessage) engine.POST("/message", middleware.Ipblack, controller.SendMessage)
engine.POST("/2/message", middleware.Ipblack, controller.SendMessageV2)
//发送关闭消息 //发送关闭消息
engine.GET("/message_close", controller.SendCloseMessage) engine.GET("/message_close", controller.SendCloseMessage)
//上传文件 //上传文件

Loading…
Cancel
Save