package models import "github.com/jinzhu/gorm" type Visitor struct { gorm.Model Name string `json:"name"` Avator string `json:"avator"` SourceIp string `json:"source_ip"` ToId string `json:"to_id"` VisitorId string `json:"visitor_id"` Status uint `json:"status"` Refer string `json:"refer"` City string `json:"city"` ClientIp string `json:"client_ip"` } func CreateVisitor(name string,avator string,sourceIp string,toId string,visitorId string,refer string,city string,clientIp string){ old:=FindVisitorByVistorId(visitorId) if old.Name!=""{ //更新状态上线 UpdateVisitorStatus(visitorId,1) return } v:=&Visitor{ Name:name, Avator: avator, SourceIp:sourceIp, ToId:toId, VisitorId: visitorId, Status:1, Refer:refer, City:city, ClientIp:clientIp, } DB.Create(v) } func FindVisitorByVistorId(visitorId string)Visitor{ var v Visitor DB.Where("visitor_id = ?", visitorId).First(&v) return v } func FindVisitors()[]Visitor{ var visitors []Visitor DB.Order("status desc, updated_at desc").Find(&visitors) return visitors } func FindVisitorsOnline()[]Visitor{ var visitors []Visitor DB.Where("status = ?",1).Find(&visitors) return visitors } func UpdateVisitorStatus(visitorId string,status uint){ visitor:=Visitor{ } DB.Model(&visitor).Where("visitor_id = ?",visitorId).Update("status", status) }