增加记录来源

pull/30/head
taoshihan1991 4 years ago
parent 1365e1af78
commit 4744dd586f

@ -40,6 +40,7 @@ type ClientMessage struct {
Content string `json:"content"`
City string `json:"city"`
ClientIp string `json:"client_ip"`
Refer string `json:"refer"`
}
//定时检测客户端是否在线
func init() {
@ -239,7 +240,7 @@ func singleBroadcaster(){
}
clientList[clientMsg.Id] = user
//插入数据表
models.CreateVisitor(clientMsg.Name,clientMsg.Avator,message.c.ClientIP(),clientMsg.ToId,clientMsg.Id,message.c.Request.Referer(),clientMsg.City,clientMsg.ClientIp)
models.CreateVisitor(clientMsg.Name,clientMsg.Avator,message.c.ClientIP(),clientMsg.ToId,clientMsg.Id,clientMsg.Refer,clientMsg.City,clientMsg.ClientIp)
userInfo := make(map[string]string)
userInfo["uid"] = user.id
userInfo["username"] = user.name

@ -1,12 +1,60 @@
package controller
import (
"encoding/json"
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"github.com/taoshihan1991/imaptool/config"
"github.com/taoshihan1991/imaptool/models"
"log"
"strconv"
)
func PostVisitor(c *gin.Context) {
name := c.PostForm("name")
avator := c.PostForm("avator")
toId := c.PostForm("to_id")
id := c.PostForm("id")
refer := c.PostForm("refer")
city := c.PostForm("city")
client_ip := c.PostForm("client_ip")
if name==""||avator==""||toId==""||id==""||refer==""||city==""||client_ip==""{
c.JSON(200, gin.H{
"code": 400,
"msg": "error",
})
return
}
kefuInfo:=models.FindUser(toId)
if kefuInfo.ID==0{
c.JSON(200, gin.H{
"code": 400,
"msg": "用户不存在",
})
return
}
models.CreateVisitor(name,avator,c.ClientIP(),toId,id,refer,city,client_ip)
userInfo := make(map[string]string)
userInfo["uid"] = id
userInfo["username"] = name
userInfo["avator"] = avator
msg := TypeMessage{
Type: "userOnline",
Data: userInfo,
}
str, _ := json.Marshal(msg)
kefuConns:=kefuList[toId]
if kefuConns!=nil{
for k,kefuConn:=range kefuConns{
log.Println(k,"xxxxxxxx")
kefuConn.WriteMessage(websocket.TextMessage,str)
}
}
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",
})
}
func GetVisitor(c *gin.Context) {
visitorId:=c.Query("visitorId")
vistor:=models.FindVisitorByVistorId(visitorId)

@ -77,6 +77,7 @@ func main() {
engine.GET("/mysql",middleware.JwtApiMiddleware,middleware.CasbinACL, controller.MysqlGetConf)
engine.POST("/mysql",middleware.JwtApiMiddleware,middleware.CasbinACL, controller.MysqlSetConf)
engine.POST("/visitor",controller.PostVisitor)
engine.GET("/visitor",middleware.JwtApiMiddleware, controller.GetVisitor)
engine.GET("/visitors",middleware.JwtApiMiddleware, controller.GetVisitors)
engine.GET("/setting_kefu_list",tmpl.PageKefuList)

@ -139,6 +139,10 @@
<i class="el-icon-s-tools"></i>
<span slot="title">来源:<{visitor.refer}></span>
</el-menu-item>
<el-menu-item>
<i class="el-icon-s-tools"></i>
<span slot="title">ClientIP<{visitor.source_ip}></span>
</el-menu-item>
<el-menu-item>
<i class="el-icon-s-tools"></i>
<span slot="title">IP<{visitor.client_ip}></span>
@ -186,6 +190,7 @@
client_ip:"",
city:"",
status:"",
source_ip:"",
},
visitors:[],
visitorCount:0,
@ -474,6 +479,7 @@
_this.visitor.refer=r.refer;
_this.visitor.city=r.city;
_this.visitor.client_ip=r.client_ip;
_this.visitor.source_ip=r.source_ip;
_this.visitor.status=r.status==1?"在线":"离线";
}
if(data.code!=200){

@ -157,6 +157,7 @@
mes.type = "userInit";
userinfo.client_ip=returnCitySN["cip"];
userinfo.city=returnCitySN["cname"];
userinfo.refer="{{.Refer}}";
mes.data = userinfo;
this.socket.send(JSON.stringify(mes));
},

@ -16,10 +16,12 @@ func PageChat(c *gin.Context) {
kefuId := c.Query("kefu_id")
lang,_ := c.Get("lang")
language:=config.CreateLanguage(lang.(string))
refer:=c.Request.Referer()
c.HTML(http.StatusOK, "chat_page.html", gin.H{
"KEFU_ID":kefuId,
"SendBtn":language.Send,
"Lang":lang.(string),
"Refer":refer,
})
}

Loading…
Cancel
Save