sys_login_log.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package models
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "time"
  6. log "IotAdmin/core/logger"
  7. "IotAdmin/core/sdk"
  8. "IotAdmin/core/storage"
  9. "IotAdmin/common/models"
  10. )
  11. type SysLoginLog struct {
  12. models.Model
  13. Username string `json:"username" gorm:"size:128;comment:用户名"`
  14. Status string `json:"status" gorm:"size:4;comment:状态"`
  15. Ipaddr string `json:"ipaddr" gorm:"size:255;comment:ip地址"`
  16. LoginLocation string `json:"loginLocation" gorm:"size:255;comment:归属地"`
  17. Browser string `json:"browser" gorm:"size:255;comment:浏览器"`
  18. Os string `json:"os" gorm:"size:255;comment:系统"`
  19. Platform string `json:"platform" gorm:"size:255;comment:固件"`
  20. LoginTime time.Time `json:"loginTime" gorm:"comment:登录时间"`
  21. Remark string `json:"remark" gorm:"size:255;comment:备注"`
  22. Msg string `json:"msg" gorm:"size:255;comment:信息"`
  23. CreatedAt time.Time `json:"createdAt" gorm:"comment:创建时间"`
  24. UpdatedAt time.Time `json:"updatedAt" gorm:"comment:最后更新时间"`
  25. models.ControlBy
  26. }
  27. func (*SysLoginLog) TableName() string {
  28. return "sys_login_log"
  29. }
  30. func (e *SysLoginLog) Generate() models.ActiveRecord {
  31. o := *e
  32. return &o
  33. }
  34. func (e *SysLoginLog) GetId() interface{} {
  35. return e.Id
  36. }
  37. // SaveLoginLog 从队列中获取登录日志
  38. func SaveLoginLog(message storage.Message) (err error) {
  39. //准备db
  40. db := sdk.Runtime.GetDbByKey(message.GetPrefix())
  41. if db == nil {
  42. err = errors.New("db not exist")
  43. log.Errorf("host[%s]'s %s", message.GetPrefix(), err.Error())
  44. return err
  45. }
  46. var rb []byte
  47. rb, err = json.Marshal(message.GetValues())
  48. if err != nil {
  49. log.Errorf("json Marshal error, %s", err.Error())
  50. return err
  51. }
  52. var l SysLoginLog
  53. err = json.Unmarshal(rb, &l)
  54. if err != nil {
  55. log.Errorf("json Unmarshal error, %s", err.Error())
  56. return err
  57. }
  58. err = db.Create(&l).Error
  59. if err != nil {
  60. log.Errorf("db create error, %s", err.Error())
  61. return err
  62. }
  63. return nil
  64. }