log.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package model
  2. import "one-api/common"
  3. type Log struct {
  4. Id int `json:"id"`
  5. UserId int `json:"user_id" gorm:"index"`
  6. CreatedAt int64 `json:"created_at" gorm:"bigint"`
  7. Type int `json:"type" gorm:"index"`
  8. Content string `json:"content"`
  9. }
  10. func RecordLog(userId int, logType int, content string) {
  11. log := &Log{
  12. UserId: userId,
  13. CreatedAt: common.GetTimestamp(),
  14. Type: logType,
  15. Content: content,
  16. }
  17. err := DB.Create(log).Error
  18. if err != nil {
  19. common.SysError("failed to record log: " + err.Error())
  20. }
  21. }
  22. func GetAllLogs(logType int, startIdx int, num int) (logs []*Log, err error) {
  23. err = DB.Where("type = ?", logType).Order("id desc").Limit(num).Offset(startIdx).Find(&logs).Error
  24. return logs, err
  25. }
  26. func GetUserLogs(userId int, logType int, startIdx int, num int) (logs []*Log, err error) {
  27. err = DB.Where("user_id = ? and type = ?", userId, logType).Order("id desc").Limit(num).Offset(startIdx).Find(&logs).Error
  28. return logs, err
  29. }
  30. func SearchAllLogs(keyword string) (logs []*Log, err error) {
  31. err = DB.Where("type = ? or content LIKE ?", keyword, keyword+"%").Order("id desc").Limit(common.MaxRecentItems).Find(&logs).Error
  32. return logs, err
  33. }
  34. func SearchUserLogs(userId int, keyword string) (logs []*Log, err error) {
  35. err = DB.Where("user_id = ? and type = ?", userId, keyword).Order("id desc").Limit(common.MaxRecentItems).Find(&logs).Error
  36. return logs, err
  37. }