package dao import ( "fmt" . "gitdxz.51daxuetong.cn/go_dev/jjl-tools/tinodeService/lib" "time" ) type ISubscriptionsDao interface { } type SubscriptionsDao struct { } type Subscriptions struct { ID int `json:"id"` Userid int64 `json:"userid"` Topic string `json:"topic"` From string `json:"from"` //返回用户的usr 例如: usrxxx, 不是数据库表字段 Recvseqid int `json:"recvseqid"` Readseqid int `json:"readseqid"` Star int `json:"star"` Avatar string `json:"avatar"` Nickname string `json:"nickname"` Status int `json:"status"` Createdat string `json:"createdat"` Updatedat time.Time `json:"updatedat"` OsEnd string `json:"os_end"` } type Subs struct { Subscriptions Updateat time.Time `json:"updateat"` //根据用户uid获取所有的客服sub,这里需要去2个时间做对比,获得最后的聊天时间 } //根据用户uid获取所有的客服sub func (subDao SubscriptionsDao) GetSubsCoutomerList(uid string) (subList []Subs, err error) { res := GetTiNodeDbInstance().Debug().Select("s.id, s.userid, s.topic, s.recvseqid, s.readseqid, s.star, s.createdat, s.updatedat, u.realname as nickname, u.avatar_file, u.status, sub.updatedat as updateat"). Table("subscriptions s").Joins("LEFT JOIN subscriptions sub ON sub.topic = s.topic"). Joins("LEFT JOIN go_user u ON u.chat_uid = s.userid"). Where("s.deletedat is null AND u.status = 0 AND u.deleted_on = 0 AND sub.userid = ?", uid) res = res.Order("s.id desc").Find(&subList) if err = res.Error; err != nil { fmt.Println("===GetSubsCoutomerList=====",err) } return }