log.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package controller
  2. import (
  3. "designs/app/common/request"
  4. "designs/app/common/response"
  5. "designs/global"
  6. "designs/model"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func GetActionLogHeader(c *gin.Context) {
  10. response.Success(c, gin.H{
  11. "data": map[string]interface{}{
  12. "action": []string{
  13. "新增", "修改", "删除",
  14. },
  15. "object": []string{
  16. "图片", "视频",
  17. },
  18. },
  19. })
  20. }
  21. func ActionLogList(c *gin.Context) {
  22. form := request.Check(c, &struct {
  23. Offset int `form:"offset" json:"offset" binding:""`
  24. Limit int `form:"limit" json:"limit" binding:"required"`
  25. Action string `form:"action" json:"action" binding:""`
  26. Object string `form:"object" json:"object" binding:""`
  27. Order string `form:"order" json:"order" binding:""`
  28. UserId int `form:"user_id" json:"user_id" binding:""`
  29. }{})
  30. query := global.App.DB.Table(model.TableActionLog)
  31. if form.Action != "" {
  32. query = query.Where("action", form.Action)
  33. }
  34. if form.Object != "" {
  35. query = query.Where("object", form.Object)
  36. }
  37. if form.UserId != 0 {
  38. query = query.Where("user_id", form.UserId)
  39. }
  40. var count int64
  41. err := query.Count(&count).Error
  42. if err != nil {
  43. response.Fail(c, 1001, err.Error())
  44. return
  45. }
  46. var data []struct {
  47. model.ActionLog
  48. Name string `json:"name" gorm:"column:name"`
  49. }
  50. err = query.Offset(form.Offset).Limit(form.Limit).
  51. Join(model.TableAdminUser, "admin_user.id", "=", "action_log.user_id").
  52. //Select("action_log.*", "admin_user.name as user_name").
  53. Scan(&data).Error
  54. if err != nil {
  55. response.Fail(c, 1002, err.Error())
  56. return
  57. }
  58. response.Success(c, gin.H{
  59. "data": map[string]interface{}{
  60. "list": data,
  61. "total": count,
  62. },
  63. })
  64. }