sys_login_log.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package service
  2. import (
  3. "dashoo.cn/micro/app/dao"
  4. "dashoo.cn/micro/app/model"
  5. "github.com/gogf/gf/errors/gerror"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/os/grpool"
  8. "github.com/gogf/gf/util/gconv"
  9. )
  10. type sysLoginLog struct {
  11. Pool *grpool.Pool
  12. }
  13. var (
  14. SysLoginLog = &sysLoginLog{
  15. Pool: grpool.New(100),
  16. }
  17. )
  18. func (s *sysLoginLog) Invoke(data *model.LoginLogParams) {
  19. s.Pool.Add(func() {
  20. //写入日志数据
  21. //SysUser.LoginLog(data)
  22. })
  23. }
  24. func (s *sysLoginLog) LoginLogListByPage(req *model.SysLoginLogSearchReq) (total, page int, list []*model.SysLogin, err error) {
  25. db := dao.SysLogin.M
  26. order := "info_id DESC"
  27. if req.LoginName != "" {
  28. db = db.Where("login_name like ?", "%"+req.LoginName+"%")
  29. }
  30. if req.Status != "" {
  31. db = db.Where("status", gconv.Int(req.Status))
  32. }
  33. if req.Ipaddr != "" {
  34. db = db.Where("ipaddr like ?", "%"+req.Ipaddr+"%")
  35. }
  36. if req.LoginLocation != "" {
  37. db = db.Where("login_location like ?", "%"+req.LoginLocation+"%")
  38. }
  39. if req.BeginTime != "" {
  40. db = db.Where("login_time >=", req.BeginTime)
  41. }
  42. if req.EndTime != "" {
  43. db = db.Where("login_time <=", req.EndTime)
  44. }
  45. if req.SortName != "" {
  46. if req.SortOrder != "" {
  47. order = req.SortName + " " + req.SortOrder
  48. } else {
  49. order = req.SortName + " DESC"
  50. }
  51. }
  52. total, err = db.Count()
  53. if err != nil {
  54. g.Log().Error(err)
  55. err = gerror.New("获取总行数失败")
  56. return
  57. }
  58. err = db.Page(req.GetPage()).Order(order).Scan(&list)
  59. if err != nil {
  60. g.Log().Error(err)
  61. err = gerror.New("获取数据失败")
  62. }
  63. return
  64. }
  65. func (s *sysLoginLog) DeleteLoginLogByIds(ids []int) (err error) {
  66. if len(ids) == 0 {
  67. err = gerror.New("参数错误")
  68. return
  69. }
  70. _, err = dao.SysLogin.Delete("info_id in (?)", ids)
  71. if err != nil {
  72. g.Log().Error(err)
  73. err = gerror.New("删除失败")
  74. }
  75. return
  76. }
  77. func (s *sysLoginLog) ClearLoginLog() (err error) {
  78. _, err = g.DB().Exec("truncate " + dao.SysLogin.Table)
  79. if err != nil {
  80. g.Log().Error(err)
  81. err = gerror.New("清除失败")
  82. }
  83. return
  84. }