优化信息列表接口

pull/23/head
taoshihan1991 3 years ago
parent f818775b30
commit 442343e2ee

@ -149,27 +149,24 @@ func GetVisitors(c *gin.Context) {
// @Router /messages [get]
func GetVisitorMessage(c *gin.Context) {
visitorId := c.Query("visitorId")
messages := models.FindMessageByVisitorId(visitorId)
query := "message.visitor_id= ?"
messages := models.FindMessageByWhere(query, visitorId)
result := make([]map[string]interface{}, 0)
var visitor models.Visitor
var kefu models.User
for _, message := range messages {
item := make(map[string]interface{})
if visitor.Name == "" || kefu.Name == "" {
kefu = models.FindUser(message.KefuId)
visitor = models.FindVisitorByVistorId(message.VisitorId)
}
item["time"] = message.CreatedAt.Format("2006-01-02 15:04:05")
item["content"] = message.Content
item["mes_type"] = message.MesType
item["visitor_name"] = visitor.Name
item["visitor_avator"] = visitor.Avator
item["kefu_name"] = kefu.Nickname
item["kefu_avator"] = kefu.Avator
item["visitor_name"] = message.VisitorName
item["visitor_avator"] = message.VisitorAvator
item["kefu_name"] = message.KefuName
item["kefu_avator"] = message.KefuAvator
result = append(result, item)
}
models.ReadMessageByVisitorId(visitorId)
go models.ReadMessageByVisitorId(visitorId)
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",

@ -8,6 +8,19 @@ type Message struct {
MesType string `json:"mes_type"`
Status string `json:"status"`
}
type MessageKefu struct {
Model
KefuId string `json:"kefu_id"`
VisitorId string `json:"visitor_id"`
Content string `json:"content"`
MesType string `json:"mes_type"`
Status string `json:"status"`
VisitorName string `json:"visitor_name"`
VisitorAvator string `json:"visitor_avator"`
KefuName string `json:"kefu_name"`
KefuAvator string `json:"kefu_avator"`
CreateTime string `json:"create_time"`
}
func CreateMessage(kefu_id string, visitor_id string, content string, mes_type string) {
v := &Message{
@ -60,6 +73,11 @@ func FindLastMessageByVisitorId(visitorId string) Message {
DB.Select("content").Where("visitor_id=?", visitorId).Order("id desc").First(&m)
return m
}
func FindMessageByWhere(query interface{}, args ...interface{}) []MessageKefu {
var messages []MessageKefu
DB.Table("message").Where(query, args...).Select("message.*,visitor.avator visitor_avator,visitor.name visitor_name,user.avator kefu_avator,user.nickname kefu_name").Joins("left join user on message.kefu_id=user.name").Joins("left join visitor on visitor.visitor_id=message.visitor_id").Order("message.id asc").Find(&messages)
return messages
}
//查询条数
func CountMessage() uint {

Loading…
Cancel
Save