package sql_executor import ( "git.sxidc.com/go-framework/baize/framework/core/domain/value_object" "git.sxidc.com/go-tools/utils/strutils" "github.com/pkg/errors" "time" ) const ( ColumnSql = "sql" ColumnExecutorID = "executor_id" ColumnExecutorName = "executor_name" ColumnExecutedTime = "executed_time" ) const ( fieldExecutorIDLen = 32 fieldExecutorNameMaxLen = 256 ) type SqlExecuteLog struct { value_object.Base Sql string `sqlmapping:"column:sql;" sqlresult:"column:sql;"` ExecutorID string `sqlmapping:"column:executor_id;" sqlresult:"column:executor_id;"` ExecutorName string `sqlmapping:"column:executor_name;" sqlresult:"column:executor_name;"` ExecutedTime time.Time `sqlmapping:"column:executed_time;" sqlresult:"column:executed_time;"` } func (e *SqlExecuteLog) DomainCNName() string { return "SQL日志" } func (e *SqlExecuteLog) DomainCamelName() string { return "SqlExecuteLog" } func (e *SqlExecuteLog) ForCreate() error { err := e.checkFieldSql() if err != nil { return err } err = e.checkFieldExecutorID() if err != nil { return err } err = e.checkFieldExecutorName() if err != nil { return err } e.ExecutedTime = time.Now().Local() return nil } func (e *SqlExecuteLog) checkFieldSql() error { if strutils.IsStringEmpty(e.Sql) { return errors.New(e.DomainCNName() + "sql为空") } return nil } func (e *SqlExecuteLog) checkFieldExecutorID() error { if strutils.IsStringEmpty(e.ExecutorID) { return errors.New(e.DomainCNName() + "执行人ID为空") } if len(e.ExecutorID) != fieldExecutorIDLen { return errors.New(e.DomainCNName() + "执行人ID长度不正确") } return nil } func (e *SqlExecuteLog) checkFieldExecutorName() error { if strutils.IsStringEmpty(e.ExecutorName) { return errors.New(e.DomainCNName() + "执行人姓名为空") } if len(e.ExecutorName) > fieldExecutorNameMaxLen { return errors.New(e.DomainCNName() + "执行人姓名超出限定长度") } return nil }