activity.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package admin
  2. import (
  3. "errors"
  4. "fmt"
  5. "time"
  6. "github.com/metarare/metarare_api/models"
  7. )
  8. func StackLog(obj Log) error {
  9. var msg string
  10. switch obj.ActionType {
  11. case "user":
  12. msg = fmt.Sprintf("관리자(%d) %s이(가) 유저(%d) 상태를 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID, obj.From, obj.To)
  13. case "artist":
  14. if obj.SubActionType == "created" {
  15. msg = fmt.Sprintf("관리자(%d) %s이(가) 작가(%d)를 등록했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID)
  16. } else if obj.SubActionType == "modified" {
  17. msg = fmt.Sprintf("관리자(%d) %s이(가) 작가(%d) 상태를 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID, obj.From, obj.To)
  18. }
  19. case "collection":
  20. if obj.Target == "collection" {
  21. msg = fmt.Sprintf("관리자(%d) %s이(가) 컬렉션(%d) 상태를 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID, obj.From, obj.To)
  22. } else if obj.Target == "curation" {
  23. msg = fmt.Sprintf("관리자(%d) %s이(가) 컬렉션(%d) 큐레이션 정보를 %s번으로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID, obj.To)
  24. }
  25. case "system":
  26. if obj.Target == "commission" {
  27. msg = fmt.Sprintf("관리자(%d) %s이(가) 커미션 수수료 값을 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.From, obj.To)
  28. } else if obj.Target == "special_collection" {
  29. msg = fmt.Sprintf("관리자(%d) %s이(가) 스페셜 컬렉션을 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.From, obj.To)
  30. } else if obj.Target == "gas_deposit" {
  31. msg = fmt.Sprintf("관리자(%d) %s이(가) 가스 수수료를 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.From, obj.To)
  32. }
  33. case "admin":
  34. if obj.SubActionType == "created" {
  35. msg = fmt.Sprintf("관리자(%d) %s이(가) 새로운 관리자(%d)를 등록했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID)
  36. } else if obj.SubActionType == "modified" {
  37. if obj.Target == "status" {
  38. msg = fmt.Sprintf("관리자(%d) %s이(가) 관리자(%d) 상태를 %s에서 %s로 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID, obj.From, obj.To)
  39. } else if obj.Target == "permission" {
  40. msg = fmt.Sprintf("관리자(%d) %s이(가) 관리자(%d) 권한을 변경했습니다.", obj.Admin.ID, obj.Admin.Name, obj.TargetID)
  41. }
  42. }
  43. default:
  44. return errors.New("invalid parameter value")
  45. }
  46. adminLog := models.AdminLog{
  47. AdminID: obj.Admin.ID,
  48. ActionType: obj.ActionType,
  49. SubActionType: obj.SubActionType,
  50. Message: msg,
  51. ActionedAt: time.Now(),
  52. }
  53. if err := obj.DB.Save(&adminLog).Error; err != nil {
  54. return err
  55. }
  56. return nil
  57. }