You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

badge.go 2.1 kB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package badge
  2. import (
  3. "code.gitea.io/gitea/models"
  4. "code.gitea.io/gitea/modules/log"
  5. "code.gitea.io/gitea/routers/response"
  6. "code.gitea.io/gitea/services/admin/operate_log"
  7. "errors"
  8. )
  9. func GetBadgeList(opts models.GetBadgeOpts) (int64, []*models.Badge4AdminShow, error) {
  10. total, list, err := models.GetBadgeList(opts)
  11. if err != nil {
  12. return 0, nil, err
  13. }
  14. if len(list) == 0 {
  15. return 0, nil, nil
  16. }
  17. r := make([]*models.Badge4AdminShow, len(list))
  18. for i := 0; i < len(list); i++ {
  19. r[i] = list[i].ToShow()
  20. }
  21. return total, r, nil
  22. }
  23. func AddBadge(m models.BadgeOperateReq, doer *models.User) *response.BizError {
  24. _, err := models.GetBadgeCategoryById(m.CategoryId)
  25. if err != nil {
  26. if models.IsErrRecordNotExist(err) {
  27. return response.NewBizError(errors.New("badge category is not available"))
  28. }
  29. return response.NewBizError(err)
  30. }
  31. _, err = models.AddBadge(m.ToDTO())
  32. if err != nil {
  33. return response.NewBizError(err)
  34. }
  35. operate_log.Log4Add(operate_log.BadgeOperate, m, doer.ID, "新增了勋章")
  36. return nil
  37. }
  38. func EditBadge(m models.BadgeOperateReq, doer *models.User) *response.BizError {
  39. if m.ID == 0 {
  40. log.Error(" EditBadge param error")
  41. return response.NewBizError(errors.New("param error"))
  42. }
  43. old, err := models.GetBadgeById(m.ID)
  44. if err != nil {
  45. return response.NewBizError(err)
  46. }
  47. _, err = models.UpdateBadgeById(m.ID, m.ToDTO())
  48. if err != nil {
  49. return response.NewBizError(err)
  50. }
  51. operate_log.Log4Edit(operate_log.BadgeOperate, old, m.ToDTO(), doer.ID, "修改了勋章")
  52. return nil
  53. }
  54. func DelBadge(id int64, doer *models.User) *response.BizError {
  55. if id == 0 {
  56. log.Error(" DelBadge param error")
  57. return response.NewBizError(errors.New("param error"))
  58. }
  59. old, err := models.GetBadgeById(id)
  60. if err != nil {
  61. return response.NewBizError(err)
  62. }
  63. n, _, err := models.GetBadgeUsers(id, models.ListOptions{PageSize: 1, Page: 1})
  64. if err != nil {
  65. return response.NewBizError(err)
  66. }
  67. if n > 0 {
  68. return response.BADGES_STILL_HAS_USERS
  69. }
  70. _, err = models.DelBadge(id)
  71. operate_log.Log4Del(operate_log.BadgeOperate, old, doer.ID, "删除了勋章")
  72. return nil
  73. }