package entity import ( "git.sxidc.com/go-tools/utils/strutils" "github.com/pkg/errors" "time" ) const ( // FieldID ID字段名 FieldID = "ID" // FieldTenantID 租户ID字段名 FieldTenantID = "TenantID" // FieldCreateUserID 创建用户ID字段名 FieldCreateUserID = "CreateUserID" // FieldLastUpdateUserID 最近更新用户ID字段名 FieldLastUpdateUserID = "LastUpdateUserID" // FieldDeleteUserID 删除用户ID字段名 FieldDeleteUserID = "DeleteUserID" // FieldOperatorUserName 操作者用户名 FieldOperatorUserName = "OperatorUserName" // FieldCreatedTime 创建时间字段名 FieldCreatedTime = "CreatedTime" // FieldLastUpdatedTime 最近更新时间字段名 FieldLastUpdatedTime = "LastUpdatedTime" ) const ( // ColumnID ID列名 ColumnID = "id" // ColumnTenantID 租户ID列名 ColumnTenantID = "tenant_id" // ColumnCreateUserID 创建用户ID列名 ColumnCreateUserID = "create_user_id" // ColumnLastUpdateUserID 最新更新用户ID列名 ColumnLastUpdateUserID = "last_update_user_id" // ColumnDeleteUserID 删除用户ID列名 ColumnDeleteUserID = "delete_user_id" // ColumnOperatorUserName 操作者用户名列名 ColumnOperatorUserName = "operator_user_name" // ColumnCreatedTime 创建时间列名 ColumnCreatedTime = "created_time" // ColumnLastUpdatedTime 最近更新时间列名 ColumnLastUpdatedTime = "last_updated_time" ) const ( idLen = 32 ) // TenantIDField 租户ID字段 type TenantIDField struct { TenantID string `sqlmapping:"column:tenant_id;" sqlresult:"column:tenant_id;" check:"required,len=32,when=create"` } // UserIDFields 用户ID相关字段 type UserIDFields struct { CreateUserID string `sqlmapping:"column:create_user_id;" sqlresult:"column:create_user_id;" check:"required,len=32,when=create"` LastUpdateUserID string `sqlmapping:"column:last_update_user_id;" sqlresult:"column:last_update_user_id;" check:"required,len=32,when=update"` DeleteUserID string `sqlmapping:"-" sqlresult:"-" check:"required,len=32,when=delete"` } // OperatorUserNameField 操作者用户名 type OperatorUserNameField struct { OperatorUserName string `sqlmapping:"-" sqlresult:"-" check:"required,when=create/delete/update"` } // TimeFields 时间相关字段 type TimeFields struct { CreatedTime time.Time `sqlmapping:"column:created_time;" sqlresult:"column:created_time;"` LastUpdatedTime time.Time `sqlmapping:"column:last_updated_time;" sqlresult:"column:last_updated_time;"` } // CheckIDTypeValue 校验ID类型的字段,如ID,租户ID,用户ID等,特点是字符串类型,不能为空且长度严格为32字节 // 参数: // - domainCNName: 领域中文名,可以使用DomainCNName()方法获得 // - fieldCNName: 字段的中文名称(用于构造报错信息) // - id: id字段的值 // 返回值: // - 错误 func CheckIDTypeValue(domainCNName string, fieldCNName string, id string) error { if strutils.IsStringEmpty(id) { return errors.New(domainCNName + fieldCNName + "为空") } if len(id) != idLen { return errors.New(domainCNName + fieldCNName + "长度不正确") } return nil }