sys_user_online.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * @desc:在线用户管理
  3. * @company:云南省奇讯科技有限公司
  4. * @Author: yixiaohu
  5. * @Date: 2021/7/13 15:10
  6. */
  7. package api
  8. import (
  9. "gfast/app/system/model"
  10. "gfast/app/system/service"
  11. "github.com/gogf/gf/frame/g"
  12. "github.com/gogf/gf/net/ghttp"
  13. "github.com/gogf/gf/util/gvalid"
  14. )
  15. type sysUserOnline struct {
  16. systemBase
  17. }
  18. var SysUserOnline = new(sysUserOnline)
  19. // List 在线用户列表
  20. func (c *sysUserOnline) List(r *ghttp.Request) {
  21. var req *model.SysUserOnlineSearchReq
  22. //获取参数
  23. if err := r.Parse(&req); err != nil {
  24. c.FailJsonExit(r, err.(gvalid.Error).FirstString())
  25. }
  26. total, page, list, err := service.Online.GetOnlineListPage(req)
  27. if err != nil {
  28. c.FailJsonExit(r, err.Error())
  29. }
  30. result := g.Map{
  31. "currentPage": page,
  32. "total": total,
  33. "list": list,
  34. }
  35. c.SusJsonExit(r, result)
  36. }
  37. // ForceLogout 强退用户
  38. func (c *sysUserOnline) ForceLogout(r *ghttp.Request) {
  39. ids := r.GetInts("ids")
  40. if len(ids) == 0 {
  41. c.FailJsonExit(r, "参数错误")
  42. }
  43. tokens, err := service.Online.ForceLogout(ids)
  44. if err != nil {
  45. c.FailJsonExit(r, err.Error())
  46. }
  47. for _, token := range tokens {
  48. GfToken.RemoveToken(token)
  49. }
  50. c.SusJsonExit(r, "用户已退出")
  51. }