package domain import ( "git.sxidc.com/go-tools/utils/strutils" ) type Entity interface { Object DomainCNName() string DomainCamelName() string GenerateID() error GetID() string CheckFieldID(domainCNName string) error ForCreate() error ForUpdate() error } type BaseEntity struct { ID string `sqlmapping:"column:id;key;" sqlresult:"column:id;"` } func (e *BaseEntity) DomainCNName() string { panic("领域实体没有实现DomainCNName接口") } func (e *BaseEntity) DomainCamelName() string { panic("领域实体没有实现DomainCamelName接口") } func (e *BaseEntity) GenerateID() error { e.ID = strutils.SimpleUUID() return nil } func (e *BaseEntity) GetID() string { return e.ID } func (e *BaseEntity) CheckFieldID(domainCNName string) error { return CheckID(domainCNName, "ID", e.ID) } func (e *BaseEntity) IDColumnName() string { return ColumnID } func (e *BaseEntity) ForCreate() error { panic("领域实体没有实现ForCreate接口") } func (e *BaseEntity) ForUpdate() error { panic("领域实体没有实现ForUpdate接口") }