entity.go 936 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package domain
  2. import (
  3. "git.sxidc.com/go-tools/utils/strutils"
  4. )
  5. type Entity interface {
  6. Object
  7. DomainCNName() string
  8. GenerateID() error
  9. GetID() string
  10. CheckFieldID(domainCNName string) error
  11. ForCreate() error
  12. ForUpdate() error
  13. }
  14. type BaseEntity struct {
  15. ID string `sqlmapping:"column:id;key;" sqlresult:"column:id;"`
  16. }
  17. func (e *BaseEntity) DomainCNName() string {
  18. panic("领域实体没有实现DomainCNName接口")
  19. }
  20. func (e *BaseEntity) GenerateID() error {
  21. e.ID = strutils.SimpleUUID()
  22. return nil
  23. }
  24. func (e *BaseEntity) GetID() string {
  25. return e.ID
  26. }
  27. func (e *BaseEntity) CheckFieldID(domainCNName string) error {
  28. return CheckID(domainCNName, "ID", e.ID)
  29. }
  30. func (e *BaseEntity) IDColumnName() string {
  31. return ColumnID
  32. }
  33. func (e *BaseEntity) ForCreate() error {
  34. panic("领域实体没有实现ForCreate接口")
  35. }
  36. func (e *BaseEntity) ForUpdate() error {
  37. panic("领域实体没有实现ForUpdate接口")
  38. }