entity.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package task
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/domain"
  4. "git.sxidc.com/go-framework/baize/framework/core/domain/entity"
  5. "github.com/pkg/errors"
  6. )
  7. const (
  8. StatusCodeCreated = iota + 1
  9. StatusCodeRunning
  10. StatusCodeCompleted
  11. StatusCodeError
  12. )
  13. const (
  14. statusCreated = "已创建"
  15. statusRunning = "运行中"
  16. statusCompleted = "已完成"
  17. statusError = "错误"
  18. )
  19. var (
  20. statusMap = map[int]string{
  21. StatusCodeCreated: statusCreated,
  22. StatusCodeRunning: statusRunning,
  23. StatusCodeCompleted: statusCompleted,
  24. StatusCodeError: statusError,
  25. }
  26. statusCodeMap = map[string]int{
  27. statusCreated: StatusCodeCreated,
  28. statusRunning: StatusCodeRunning,
  29. statusCompleted: StatusCodeCompleted,
  30. statusError: StatusCodeError,
  31. }
  32. )
  33. const (
  34. FieldGroup = "Group"
  35. FieldContext = "Context"
  36. FieldStatus = "Status"
  37. FieldErrMsg = "ErrMsg"
  38. )
  39. var (
  40. ColumnGroup = domain.ColumnName(FieldGroup)
  41. ColumnContext = domain.ColumnName(FieldContext)
  42. ColumnStatus = domain.ColumnName(FieldStatus)
  43. ColumnErrMsg = domain.ColumnName(FieldErrMsg)
  44. )
  45. var fieldMap = map[string]string{
  46. FieldGroup: "组",
  47. FieldContext: "上下文",
  48. FieldStatus: "状态",
  49. FieldErrMsg: "错误信息",
  50. }
  51. type Entity struct {
  52. entity.Base
  53. Group string `sqlmapping:"column:group;notUpdate;" sqlresult:"column:group;" check:"required,len=256,when=run/restart"`
  54. Context string `sqlmapping:"column:context;notUpdate;" sqlresult:"column:context;"`
  55. StatusCode int `sqlmapping:"column:status_code;" sqlresult:"column:status_code;" check:"required,when=run/restart"`
  56. Status string `sqlmapping:"-" sqlresult:"-"`
  57. ErrMsg string `sqlmapping:"column:err_msg;" sqlresult:"column:err_msg;"`
  58. CreateUserID string `sqlmapping:"column:create_user_id;" sqlresult:"column:create_user_id;" check:"required,len=32,when=run/restart"`
  59. entity.TimeFields
  60. }
  61. func (e *Entity) DomainCNName() string {
  62. return "任务"
  63. }
  64. func (e *Entity) DomainCamelName() string {
  65. return "Task"
  66. }
  67. func (e *Entity) GetFieldMap() map[string]string {
  68. return fieldMap
  69. }
  70. func (e *Entity) SetStatusCreated() {
  71. e.StatusCode = StatusCodeCreated
  72. e.Status = statusCreated
  73. }
  74. func (e *Entity) SetStatusRunning() {
  75. e.StatusCode = StatusCodeRunning
  76. e.Status = statusRunning
  77. }
  78. func (e *Entity) SetStatusCompleted() {
  79. e.StatusCode = StatusCodeCompleted
  80. e.Status = statusCompleted
  81. }
  82. func (e *Entity) SetStatusError(errMsg string) {
  83. e.StatusCode = StatusCodeError
  84. e.Status = statusError
  85. e.ErrMsg = errMsg
  86. }
  87. func (e *Entity) IsStatusCreated() bool {
  88. return e.StatusCode == StatusCodeCreated
  89. }
  90. func (e *Entity) IsStatusRunning() bool {
  91. return e.StatusCode == StatusCodeRunning
  92. }
  93. func (e *Entity) IsStatusCompleted() bool {
  94. return e.StatusCode == StatusCodeCompleted
  95. }
  96. func (e *Entity) IsStatusError() bool {
  97. return e.StatusCode == StatusCodeError
  98. }
  99. func (e *Entity) TransferStatus2StatusCode() error {
  100. statusCode, ok := statusCodeMap[e.Status]
  101. if !ok {
  102. return errors.New("状态对应的状态码不存在")
  103. }
  104. e.StatusCode = statusCode
  105. return nil
  106. }
  107. func (e *Entity) TransferStatusCode2Status() error {
  108. status, ok := statusMap[e.StatusCode]
  109. if !ok {
  110. return errors.New("状态码对应的状态不存在")
  111. }
  112. e.Status = status
  113. return nil
  114. }