user_online.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package user_online
  2. import (
  3. "github.com/gogf/gf/errors/gerror"
  4. "github.com/gogf/gf/frame/g"
  5. )
  6. // Fill with you ideas below.
  7. //列表搜索参数
  8. type ReqListSearch struct {
  9. Username string `p:"userName"`
  10. Ip string `p:"ipaddr"`
  11. PageNum int `p:"page"` //当前页码
  12. PageSize int `p:"pageSize"` //每页数
  13. }
  14. //获取在线用户列表
  15. func GetOnlineListPage(req *ReqListSearch, hasToken bool) (total, page int, list []*Entity, err error) {
  16. page = req.PageNum
  17. model := Model
  18. if req.Ip != "" {
  19. model = model.Where("ip like ?", "%"+req.Ip+"%")
  20. }
  21. if req.Username != "" {
  22. model = model.Where("user_name like ?", "%"+req.Username+"%")
  23. }
  24. total, err = model.Count()
  25. if err != nil {
  26. g.Log().Error(err)
  27. err = gerror.New("获取总行数失败")
  28. return
  29. }
  30. if !hasToken {
  31. list, err = model.FieldsEx("token").Page(page, req.PageSize).Order("create_time DESC").All()
  32. } else {
  33. list, err = model.Page(page, req.PageSize).Order("create_time DESC").All()
  34. }
  35. if err != nil {
  36. g.Log().Error(err)
  37. err = gerror.New("获取数据失败")
  38. return
  39. }
  40. return
  41. }
  42. func GetInfoById(id int) (entity *Entity, err error) {
  43. entity, err = Model.FindOne("id", id)
  44. if err != nil {
  45. g.Log().Error(err)
  46. err = gerror.New("获取在线用户信息失败")
  47. }
  48. return
  49. }