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.

reward_admin_log.go 1.7 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package models
  2. import (
  3. "code.gitea.io/gitea/modules/timeutil"
  4. )
  5. const (
  6. RewardAdminLogProcessing = 1
  7. RewardAdminLogSuccess = 2
  8. RewardAdminLogFailed = 3
  9. )
  10. type RewardAdminLog struct {
  11. ID int64 `xorm:"pk autoincr"`
  12. LogId string `xorm:"INDEX NOT NULL"`
  13. Amount int64 `xorm:"NOT NULL"`
  14. RewardType string
  15. Remark string
  16. Status int
  17. TargetUserId int64 `xorm:"INDEX NOT NULL"`
  18. CreatorId int64 `xorm:"NOT NULL"`
  19. CreatorName string
  20. CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
  21. }
  22. type AdminLogAndUser struct {
  23. AdminRewardAdminLog RewardAdminLog `xorm:"extends"`
  24. User User `xorm:"extends"`
  25. }
  26. func getRewardAdminLog(ra *RewardAdminLog) (*RewardAdminLog, error) {
  27. has, err := x.Get(ra)
  28. if err != nil {
  29. return nil, err
  30. } else if !has {
  31. return nil, ErrRecordNotExist{}
  32. }
  33. return ra, nil
  34. }
  35. func InsertRewardAdminLog(ra *RewardAdminLog) (int64, error) {
  36. return x.Insert(ra)
  37. }
  38. func UpdateRewardAdminLogStatus(logId string, oldStatus, newStatus int) error {
  39. _, err := x.Where("log_id = ? and status = ?", logId, oldStatus).Update(&RewardAdminLog{Status: newStatus})
  40. if err != nil {
  41. return err
  42. }
  43. return nil
  44. }
  45. func GetRewardAdminLogByLogIds(logIds []string) ([]*RewardAdminLog, error) {
  46. if len(logIds) == 0 {
  47. return nil, nil
  48. }
  49. adminLogs := make([]*AdminLogAndUser, 0)
  50. err := x.Table("reward_admin_log").Join("LEFT", "user", "reward_admin_log.creator_id = public.user.id").In("reward_admin_log.log_id", logIds).Find(&adminLogs)
  51. if err != nil {
  52. return nil, err
  53. }
  54. r := make([]*RewardAdminLog, len(adminLogs))
  55. for i, v := range adminLogs {
  56. temp := &v.AdminRewardAdminLog
  57. temp.CreatorName = v.User.Name
  58. r[i] = temp
  59. }
  60. return r, nil
  61. }