SubscriptionsDao.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package dao
  2. import (
  3. "fmt"
  4. . "jjl-tools/tinodeService/lib"
  5. "time"
  6. )
  7. type ISubscriptionsDao interface {
  8. }
  9. type SubscriptionsDao struct {
  10. }
  11. type Subscriptions struct {
  12. ID int `json:"id"`
  13. Userid int64 `json:"userid"`
  14. Topic string `json:"topic"`
  15. From string `json:"from"` //返回用户的usr 例如: usrxxx, 不是数据库表字段
  16. Recvseqid int `json:"recvseqid"`
  17. Readseqid int `json:"readseqid"`
  18. Star int `json:"star"`
  19. Avatar string `json:"avatar"`
  20. Nickname string `json:"nickname"`
  21. Status int `json:"status"`
  22. Createdat string `json:"createdat"`
  23. Updatedat time.Time `json:"updatedat"`
  24. OsEnd string `json:"os_end"`
  25. }
  26. type Subs struct {
  27. Subscriptions
  28. Updateat time.Time `json:"updateat"` //根据用户uid获取所有的客服sub,这里需要去2个时间做对比,获得最后的聊天时间
  29. }
  30. //根据用户uid获取所有的客服sub
  31. func (subDao SubscriptionsDao) GetSubsCoutomerList(uid string) (subList []Subs, err error) {
  32. 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").
  33. Table("subscriptions s").Joins("LEFT JOIN subscriptions sub ON sub.topic = s.topic").
  34. Joins("LEFT JOIN go_user u ON u.chat_uid = s.userid").
  35. Where("s.deletedat is null AND u.status = 0 AND u.deleted_on = 0 AND sub.userid = ?", uid)
  36. res = res.Order("s.id desc").Find(&subList)
  37. if err = res.Error; err != nil {
  38. fmt.Println("===GetSubsCoutomerList=====",err)
  39. }
  40. return
  41. }