package class import ( "git.sxidc.com/go-framework/baize/convenient/domain/operate_log" "git.sxidc.com/go-framework/baize/framework/core/domain" "git.sxidc.com/go-framework/baize/framework/core/domain/entity" "git.sxidc.com/go-framework/baize/framework/core/tag/check" "git.sxidc.com/go-tools/utils/strutils" "github.com/pkg/errors" ) const ( FieldName = "Name" FieldStudentNum = "StudentNum" ) var ( ColumnName = domain.ColumnName(FieldName) ColumnStudentNum = domain.ColumnName(FieldStudentNum) ) var fieldMap = map[string]string{ FieldName: "班名", FieldStudentNum: "学生数量", } type Entity struct { entity.Base Name string `sqlmapping:"column:name" sqlresult:"column:name" check:"required,lte=128"` StudentNum int `sqlmapping:"column:student_num;updateClear;" sqlresult:"column:student_num"` StudentIDs []string `sqlmapping:"-" sqlresult:"-"` entity.TimeFields } func (e *Entity) DomainCNName() string { return "班级" } func (e *Entity) DomainCamelName() string { return "Class" } func (e *Entity) ForCreate() error { checkResult := check.Struct(e, fieldMap) err := entity.CheckFieldIDResult(checkResult) if err != nil { return err } err = domain.CheckField(checkResult, e.DomainCNName(), FieldName) if err != nil { return err } return nil } func (e *Entity) ForDelete() error { checkResult := check.Struct(e, fieldMap) err := entity.CheckFieldIDResult(checkResult) if err != nil { return err } return nil } func (e *Entity) ForUpdate() error { checkResult := check.Struct(e, fieldMap) err := entity.CheckFieldIDResult(checkResult) if err != nil { return err } err = e.checkUpdateFields(checkResult) if err != nil { return err } return nil } func (e *Entity) ObjectInfo() operate_log.ObjectInfo { return operate_log.ObjectInfo{ Resource: e.DomainCamelName(), ResourceID: e.ID, } } func (e *Entity) OperatorInfo() operate_log.OperatorInfo { return operate_log.OperatorInfo{} } func (e *Entity) LogContent() map[string]any { return map[string]any{ "name": e.Name, "student_num": e.StudentNum, } } func (e *Entity) checkUpdateFields(checkResult check.Result) error { if strutils.AllBlank(e.Name) { return errors.New(e.DomainCNName() + "没有传递需要更新的字段") } if strutils.IsStringNotEmpty(e.Name) { err := domain.CheckField(checkResult, e.DomainCNName(), FieldName) if err != nil { return err } } return nil }