entity.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package permission
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/domain"
  4. "git.sxidc.com/go-framework/baize/framework/core/domain/entity"
  5. "git.sxidc.com/go-framework/baize/framework/core/tag/check"
  6. "git.sxidc.com/go-tools/utils/strutils"
  7. "github.com/pkg/errors"
  8. )
  9. const (
  10. FieldName = "Name"
  11. FieldDescription = "Description"
  12. FieldResource = "Resource"
  13. FieldAction = "Action"
  14. )
  15. var (
  16. ColumnName = domain.ColumnName(FieldName)
  17. ColumnDescription = domain.ColumnName(FieldDescription)
  18. ColumnResource = domain.ColumnName(FieldResource)
  19. ColumnAction = domain.ColumnName(FieldAction)
  20. )
  21. var fieldMap = map[string]string{
  22. FieldName: "权限名称",
  23. FieldDescription: "权限描述",
  24. FieldResource: "resource",
  25. FieldAction: "action",
  26. }
  27. type Entity struct {
  28. entity.Base
  29. Name string `sqlmapping:"column:name" sqlresult:"column:name" check:"required,lte=256"`
  30. Description string `sqlmapping:"column:description;updateClear" sqlresult:"column:description"`
  31. Resource string `sqlmapping:"column:resource" sqlresult:"column:resource" check:"required"`
  32. Action string `sqlmapping:"column:action" sqlresult:"column:action" check:"required,lte=128"`
  33. PermissionGroupIDs []string `sqlmapping:"-" sqlresult:"-"`
  34. RoleIDs []string `sqlmapping:"-" sqlresult:"-"`
  35. entity.UserIDFields
  36. entity.TimeFields
  37. }
  38. func (e *Entity) DomainCNName() string {
  39. return "权限"
  40. }
  41. func (e *Entity) DomainCamelName() string {
  42. return "Permission"
  43. }
  44. func (e *Entity) ForCreate() error {
  45. checkResult := check.Struct(e, fieldMap)
  46. err := entity.CheckFieldIDResult(checkResult)
  47. if err != nil {
  48. return err
  49. }
  50. err = domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  51. if err != nil {
  52. return err
  53. }
  54. err = domain.CheckField(checkResult, e.DomainCNName(), FieldResource)
  55. if err != nil {
  56. return err
  57. }
  58. err = domain.CheckField(checkResult, e.DomainCNName(), FieldAction)
  59. if err != nil {
  60. return err
  61. }
  62. err = entity.CheckFieldCreateUserIDResult(checkResult)
  63. if err != nil {
  64. return err
  65. }
  66. e.LastUpdateUserID = e.CreateUserID
  67. return nil
  68. }
  69. func (e *Entity) ForDelete() error {
  70. checkResult := check.Struct(e, fieldMap)
  71. err := entity.CheckFieldIDResult(checkResult)
  72. if err != nil {
  73. return err
  74. }
  75. return nil
  76. }
  77. func (e *Entity) ForUpdate() error {
  78. checkResult := check.Struct(e, fieldMap)
  79. err := entity.CheckFieldIDResult(checkResult)
  80. if err != nil {
  81. return err
  82. }
  83. err = entity.CheckFieldLastUpdateUserIDResult(checkResult)
  84. if err != nil {
  85. return err
  86. }
  87. err = e.checkUpdateFields(checkResult)
  88. if err != nil {
  89. return err
  90. }
  91. return nil
  92. }
  93. func (e *Entity) checkUpdateFields(checkResult check.Result) error {
  94. if strutils.AllBlank(e.Name, e.Resource, e.Action) {
  95. return errors.New(e.DomainCNName() + "没有传递需要更新的字段")
  96. }
  97. if strutils.IsStringNotEmpty(e.Name) {
  98. err := domain.CheckField(checkResult, e.DomainCNName(), FieldName)
  99. if err != nil {
  100. return err
  101. }
  102. }
  103. if strutils.IsStringNotEmpty(e.Resource) {
  104. err := domain.CheckField(checkResult, e.DomainCNName(), FieldResource)
  105. if err != nil {
  106. return err
  107. }
  108. }
  109. if strutils.IsStringNotEmpty(e.Action) {
  110. err := domain.CheckField(checkResult, e.DomainCNName(), FieldAction)
  111. if err != nil {
  112. return err
  113. }
  114. }
  115. return nil
  116. }