entity.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package domain
  2. import (
  3. "git.sxidc.com/go-framework/baize/infrastructure/database/sql"
  4. "git.sxidc.com/go-tools/utils/strutils"
  5. "git.sxidc.com/service-supports/fserr"
  6. )
  7. type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool)
  8. type Entity interface {
  9. Object
  10. DomainCNName() string
  11. GenerateID() error
  12. GetID() string
  13. CheckID(errCode int) error
  14. IDColumnName() string
  15. }
  16. type BaseEntity struct {
  17. ID string `sqlmapping:"column:id;key;" sqlresult:"column:id;"`
  18. }
  19. func (e *BaseEntity) DomainCNName() string {
  20. return "基础实体"
  21. }
  22. func (e *BaseEntity) GenerateID() error {
  23. e.ID = strutils.SimpleUUID()
  24. return nil
  25. }
  26. func (e *BaseEntity) GetID() string {
  27. return e.ID
  28. }
  29. func (e *BaseEntity) CheckID(errCode int) error {
  30. if strutils.IsStringEmpty(e.ID) {
  31. return fserr.WithCode(nil, errCode, fserr.MsgOption(e.DomainCNName()+"ID为空"))
  32. }
  33. if len([]byte(e.ID)) != FieldIDLen {
  34. return fserr.WithCode(nil, errCode, fserr.MsgOption(e.DomainCNName()+"ID长度不正确"))
  35. }
  36. return nil
  37. }
  38. func (e *BaseEntity) IDColumnName() string {
  39. return ColumnID
  40. }