last_message

master
taoshihan 3 weeks ago
parent cf8fc1cde0
commit 85adb1baf2

@ -115,6 +115,7 @@ func SendMessageV2(c *gin.Context) {
go SendNoticeEmail(content+"|"+vistorInfo.Name, content) go SendNoticeEmail(content+"|"+vistorInfo.Name, content)
} }
go ws.VisitorAutoReply(vistorInfo, kefuInfo, content) go ws.VisitorAutoReply(vistorInfo, kefuInfo, content)
go models.UpdateVisitorLastMessage(vistorInfo.VisitorId, content)
c.JSON(200, gin.H{ c.JSON(200, gin.H{
"code": 200, "code": 200,
"msg": "ok", "msg": "ok",
@ -165,6 +166,7 @@ func SendKefuMessage(c *gin.Context) {
ws.VisitorMessage(vistorInfo.VisitorId, content, kefuInfo) ws.VisitorMessage(vistorInfo.VisitorId, content, kefuInfo)
} }
ws.KefuMessage(vistorInfo.VisitorId, content, kefuInfo) ws.KefuMessage(vistorInfo.VisitorId, content, kefuInfo)
go models.UpdateVisitorLastMessage(vistorInfo.VisitorId, content)
c.JSON(200, gin.H{ c.JSON(200, gin.H{
"code": 200, "code": 200,
"msg": "ok", "msg": "ok",

@ -28,6 +28,7 @@ CREATE TABLE `visitor` (
`visitor_id` varchar(100) NOT NULL DEFAULT '', `visitor_id` varchar(100) NOT NULL DEFAULT '',
`status` tinyint(4) NOT NULL DEFAULT '0', `status` tinyint(4) NOT NULL DEFAULT '0',
`refer` varchar(500) NOT NULL DEFAULT '', `refer` varchar(500) NOT NULL DEFAULT '',
`last_message` varchar(500) NOT NULL DEFAULT '',
`city` varchar(100) NOT NULL DEFAULT '', `city` varchar(100) NOT NULL DEFAULT '',
`client_ip` varchar(100) NOT NULL DEFAULT '', `client_ip` varchar(100) NOT NULL DEFAULT '',
`extra` varchar(2048) NOT NULL DEFAULT '', `extra` varchar(2048) NOT NULL DEFAULT '',

@ -6,16 +6,17 @@ import (
type Visitor struct { type Visitor struct {
Model Model
Name string `json:"name"` Name string `json:"name"`
Avator string `json:"avator"` Avator string `json:"avator"`
SourceIp string `json:"source_ip"` SourceIp string `json:"source_ip"`
ToId string `json:"to_id"` ToId string `json:"to_id"`
VisitorId string `json:"visitor_id"` VisitorId string `json:"visitor_id"`
Status uint `json:"status"` Status uint `json:"status"`
Refer string `json:"refer"` Refer string `json:"refer"`
City string `json:"city"` City string `json:"city"`
ClientIp string `json:"client_ip"` ClientIp string `json:"client_ip"`
Extra string `json:"extra"` LastMessage string `json:"last_message"`
Extra string `json:"extra"`
} }
func CreateVisitor(name, avator, sourceIp, toId, visitorId, refer, city, clientIp, extra string) { func CreateVisitor(name, avator, sourceIp, toId, visitorId, refer, city, clientIp, extra string) {
@ -64,6 +65,10 @@ func FindVisitorsOnline() []Visitor {
DB.Where("status = ?", 1).Find(&visitors) DB.Where("status = ?", 1).Find(&visitors)
return visitors return visitors
} }
func UpdateVisitorLastMessage(visitorId, lastMessage string) {
visitor := Visitor{}
DB.Model(&visitor).Where("visitor_id = ?", visitorId).Update("last_message", lastMessage)
}
func UpdateVisitorStatus(visitorId string, status uint) { func UpdateVisitorStatus(visitorId string, status uint) {
visitor := Visitor{} visitor := Visitor{}
DB.Model(&visitor).Where("visitor_id = ?", visitorId).Update("status", status) DB.Model(&visitor).Where("visitor_id = ?", visitorId).Update("status", status)
@ -86,21 +91,21 @@ func UpdateVisitorKefu(visitorId string, kefuId string) {
DB.Model(&visitor).Where("visitor_id = ?", visitorId).Update("to_id", kefuId) DB.Model(&visitor).Where("visitor_id = ?", visitorId).Update("to_id", kefuId)
} }
//查询条数 // 查询条数
func CountVisitors() uint { func CountVisitors() uint {
var count uint var count uint
DB.Model(&Visitor{}).Count(&count) DB.Model(&Visitor{}).Count(&count)
return count return count
} }
//查询条数 // 查询条数
func CountVisitorsByKefuId(kefuId string) uint { func CountVisitorsByKefuId(kefuId string) uint {
var count uint var count uint
DB.Model(&Visitor{}).Where("to_id=?", kefuId).Count(&count) DB.Model(&Visitor{}).Where("to_id=?", kefuId).Count(&count)
return count return count
} }
//查询每天条数 // 查询每天条数
type EveryDayNum struct { type EveryDayNum struct {
Day string `json:"day"` Day string `json:"day"`
Num int64 `json:"num"` Num int64 `json:"num"`

@ -57,10 +57,11 @@
<el-row v-for="item in visitors" :key="item.uid" class=""> <el-row v-for="item in visitors" :key="item.uid" class="">
<div style="cursor:pointer" class="onlineUsers" v-bind:class="{'cur': item.visitor_id==currentGuest }" v-on:click="talkTo(item.visitor_id,item.name)"> <div style="cursor:pointer" class="onlineUsers" v-bind:class="{'cur': item.visitor_id==currentGuest }" v-on:click="talkTo(item.visitor_id,item.name)">
<el-col :span="4"> <el-col :span="4">
<el-avatar v-bind:class="{'imgGray': item.status==0 }" :size="40" :src="item.avator"></el-avatar> <el-avatar :size="40" :src="item.avator"></el-avatar>
</el-col> </el-col>
<el-col style="height:40px;overflow: hidden" :span="16" v-bind:class="{'imgGray': item.status==0 }"> <el-col style="height:40px;overflow: hidden" :span="16">
<{item.name}> <div style="height:20px;overflow: hidden"><{item.name}></div>
<div class="lastNewMsg"><{item.last_message}></div>
</el-col> </el-col>
</div> </div>
</el-row> </el-row>

Loading…
Cancel
Save