entity.go 1.0 KB

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