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.

block_chain_issue.go 3.2 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package models
  2. import (
  3. "code.gitea.io/gitea/modules/timeutil"
  4. "fmt"
  5. "time"
  6. )
  7. type BlockChainIssueStatus int
  8. const (
  9. BlockChainIssueInit BlockChainIssueStatus = iota
  10. BlockChainIssueSuccess
  11. BlockChainIssueFailed
  12. )
  13. type BlockChainIssue struct {
  14. ID int64 `xorm:"pk autoincr"`
  15. IssueID int64 `xorm:"INDEX NOT NULL unique"`
  16. Contributor string `xorm:"INDEX NOT NULL"`
  17. ContractAddress string `xorm:"INDEX NOT NULL"`
  18. Status BlockChainIssueStatus `xorm:"INDEX NOT NULL DEFAULT 0"`
  19. Amount int64 `xorm:"INDEX"`
  20. UserID int64 `xorm:"INDEX"`
  21. RepoID int64 `xorm:"INDEX"`
  22. TransactionHash string `xorm:"INDEX"`
  23. CreatedUnix timeutil.TimeStamp `xorm:"created"`
  24. UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
  25. DeletedAt time.Time `xorm:"deleted"`
  26. User *User `xorm:"-"`
  27. Repo *Repository `xorm:"-"`
  28. }
  29. func getBlockChainIssueByID(e Engine, id int64) (*BlockChainIssue, error) {
  30. blockChainIssue := new(BlockChainIssue)
  31. has, err := e.ID(id).Get(blockChainIssue)
  32. if err != nil {
  33. return nil, err
  34. } else if !has {
  35. return nil, fmt.Errorf("get block_chain by id failed(%d)", id)
  36. }
  37. return blockChainIssue, nil
  38. }
  39. func GetBlockChainIssueByID(id int64) (*BlockChainIssue, error) {
  40. return getBlockChainIssueByID(x, id)
  41. }
  42. func getBlockChainIssueByPrID(e Engine, prId int64) (*BlockChainIssue, error) {
  43. blockChainIssue := new(BlockChainIssue)
  44. has, err := e.Where("pr_id = ?", prId).Get(blockChainIssue)
  45. if err != nil {
  46. return nil, err
  47. } else if !has {
  48. return nil, fmt.Errorf("get block_chain by pr_id failed(%d)", prId)
  49. }
  50. return blockChainIssue, nil
  51. }
  52. func GetBlockChainIssueByPrID(prId int64) (*BlockChainIssue, error) {
  53. return getBlockChainIssueByPrID(x, prId)
  54. }
  55. func getBlockChainIssueByCommitID(e Engine, commitID string) (*BlockChainIssue, error) {
  56. blockChainIssue := new(BlockChainIssue)
  57. has, err := e.Where("commit_id = ?", commitID).Get(blockChainIssue)
  58. if err != nil {
  59. return nil, err
  60. } else if !has {
  61. return nil, fmt.Errorf("get block_chain_issue by commitID failed(%s)", commitID)
  62. }
  63. return blockChainIssue, nil
  64. }
  65. func GetBlockChainIssueByCommitID(commitID string) (*BlockChainIssue, error) {
  66. return getBlockChainIssueByCommitID(x, commitID)
  67. }
  68. func updateBlockChainIssueCols(e Engine, blockChainIssue *BlockChainIssue, cols ...string) error {
  69. _, err := e.ID(blockChainIssue.ID).Cols(cols...).Update(blockChainIssue)
  70. return err
  71. }
  72. func UpdateBlockChainIssueCols(blockChainIssue *BlockChainIssue, cols ...string) error {
  73. return updateBlockChainIssueCols(x, blockChainIssue, cols...)
  74. }
  75. func GetBlockChainUnSuccessIssues() ([]*BlockChainIssue, error) {
  76. blockChainIssues := make([]*BlockChainIssue, 0, 10)
  77. return blockChainIssues, x.
  78. Where("status != ?", BlockChainIssueSuccess).
  79. Find(&blockChainIssues)
  80. }
  81. func InsertBlockChainIssue(blockChainIssue *BlockChainIssue) (_ *BlockChainIssue, err error) {
  82. if _, err := x.Insert(blockChainIssue); err != nil {
  83. return nil, err
  84. }
  85. return blockChainIssue, nil
  86. }