package task import ( "git.sxidc.com/go-framework/baize/framework/core/domain" "git.sxidc.com/go-framework/baize/framework/core/domain/entity" "github.com/pkg/errors" ) const ( StatusCodeCreated = iota + 1 StatusCodeRunning StatusCodeCompleted StatusCodeError ) const ( statusCreated = "已创建" statusRunning = "运行中" statusCompleted = "已完成" statusError = "错误" ) var ( statusMap = map[int]string{ StatusCodeCreated: statusCreated, StatusCodeRunning: statusRunning, StatusCodeCompleted: statusCompleted, StatusCodeError: statusError, } statusCodeMap = map[string]int{ statusCreated: StatusCodeCreated, statusRunning: StatusCodeRunning, statusCompleted: StatusCodeCompleted, statusError: StatusCodeError, } ) const ( FieldGroup = "Group" FieldContext = "Context" FieldStatus = "Status" FieldErrMsg = "ErrMsg" ) var ( ColumnGroup = domain.ColumnName(FieldGroup) ColumnContext = domain.ColumnName(FieldContext) ColumnStatus = domain.ColumnName(FieldStatus) ColumnErrMsg = domain.ColumnName(FieldErrMsg) ) var fieldMap = map[string]string{ FieldGroup: "组", FieldContext: "上下文", FieldStatus: "状态", FieldErrMsg: "错误信息", } type Entity struct { entity.Base Group string `sqlmapping:"column:group;notUpdate;" sqlresult:"column:group;" check:"required,len=256,when=run/restart"` Context string `sqlmapping:"column:context;notUpdate;" sqlresult:"column:context;"` StatusCode int `sqlmapping:"column:status_code;" sqlresult:"column:status_code;" check:"required,when=run/restart"` Status string `sqlmapping:"-" sqlresult:"-"` ErrMsg string `sqlmapping:"column:err_msg;" sqlresult:"column:err_msg;"` CreateUserID string `sqlmapping:"column:create_user_id;" sqlresult:"column:create_user_id;" check:"required,len=32,when=run/restart"` entity.TimeFields } func (e *Entity) DomainCNName() string { return "任务" } func (e *Entity) DomainCamelName() string { return "Task" } func (e *Entity) GetFieldMap() map[string]string { return fieldMap } func (e *Entity) SetStatusCreated() { e.StatusCode = StatusCodeCreated e.Status = statusCreated } func (e *Entity) SetStatusRunning() { e.StatusCode = StatusCodeRunning e.Status = statusRunning } func (e *Entity) SetStatusCompleted() { e.StatusCode = StatusCodeCompleted e.Status = statusCompleted } func (e *Entity) SetStatusError(errMsg string) { e.StatusCode = StatusCodeError e.Status = statusError e.ErrMsg = errMsg } func (e *Entity) IsStatusCreated() bool { return e.StatusCode == StatusCodeCreated } func (e *Entity) IsStatusRunning() bool { return e.StatusCode == StatusCodeRunning } func (e *Entity) IsStatusCompleted() bool { return e.StatusCode == StatusCodeCompleted } func (e *Entity) IsStatusError() bool { return e.StatusCode == StatusCodeError } func (e *Entity) TransferStatus2StatusCode() error { statusCode, ok := statusCodeMap[e.Status] if !ok { return errors.New("状态对应的状态码不存在") } e.StatusCode = statusCode return nil } func (e *Entity) TransferStatusCode2Status() error { status, ok := statusMap[e.StatusCode] if !ok { return errors.New("状态码对应的状态不存在") } e.Status = status return nil }