package domain import ( "git.sxidc.com/go-tools/utils/strutils" "git.sxidc.com/service-supports/fserr" ) type Entity interface { Object DomainCNName() string GenerateID() error GetID() string CheckID(errCode int) error IDColumnName() string } type BaseEntity struct { ID string `sqlmapping:"column:id;key;" sqlresult:"column:id;"` } func (e *BaseEntity) DomainCNName() string { panic("领域实体没有实现DomainCNName接口") } func (e *BaseEntity) GenerateID() error { e.ID = strutils.SimpleUUID() return nil } func (e *BaseEntity) GetID() string { return e.ID } func (e *BaseEntity) CheckID(errCode int) error { if strutils.IsStringEmpty(e.ID) { return fserr.WithCode(nil, errCode, fserr.MsgOption(e.DomainCNName()+"ID为空")) } if len([]byte(e.ID)) != FieldIDLen { return fserr.WithCode(nil, errCode, fserr.MsgOption(e.DomainCNName()+"ID长度不正确")) } return nil } func (e *BaseEntity) IDColumnName() string { return ColumnID }