Documentation ¶
Index ¶
- Constants
- Variables
- func CamelName(name string) string
- func CheckPasswordHash(password, hash string) bool
- func Contract(separator string, strings ...string) (result string)
- func CopyFile(src, dst string) (copyFiles []string, err error)
- func CreateDir(dirName string) error
- func CreateFile(file string) error
- func DeleteFile(src string) (err error)
- func DirNotExistCreate(path string) (err error)
- func Flatten(nested map[string]interface{}, prefix string, style SeparatorStyle) (map[string]interface{}, error)
- func FlattenString(nestedStr, prefix string, style SeparatorStyle) (string, error)
- func GetAllFilesBy(pathName string, ty FileType) (allFiles []string, err error)
- func GetContentType(filepath string) (contentType string, err error)
- func GetDirFatherDeep(dir string) int
- func GetDirSonDeep(dir string) int
- func GetFileContentType(file *os.File) (contentType string, err error)
- func GetFileDir(filePath string) string
- func GetFileName(filePath string) string
- func GetFileNameWithExt(filePath string, ext string) (path string)
- func GetNeedDeleteFiles(src string) (deleteFiles []string, err error)
- func HashPassword(password string) (string, error)
- func HashPasswordWithCost(password string, cost int) (string, error)
- func InitialLowercase(from string) (to string)
- func IsDir(path string) (bool, error)
- func IsFileExist(filename string) bool
- func IsInArray(val interface{}, array interface{}) (exists bool, index int)
- func JSONString(obj interface{}) string
- func ListDir(src string) (infos []string, err error)
- func Md5(from string) (to string, err error)
- func MoveFile(src, dst string) (err error)
- func MySQLJsonUpdate(table string, filed string, conditionFiled string, conditionValue interface{}, ...) (sql string, err error)
- func MySQLJsonUpdateWithConfig(table string, filed string, conditionFiled string, conditionValue interface{}, ...) (sql string, err error)
- func NewPage(items interface{}, totalNum int64, perPage int, page int) *pageData
- func RenameFile(src, dst string) error
- func RenderToFile(filename string, input string, data interface{}, isFile bool) (err error)
- func SearchString(slice []string, s string) int
- func UnZip(zipFileName, destFileName string) (err error)
- func UnderscoreName(name string, upperInitial bool) string
- func ValidFilename(filename string) bool
- func ValidFilepath(filepath string) bool
- func Zip(destFileName string, zipFileNames ...string) (err error)
- type BaseStruct
- type BaseTag
- type BaseUser
- type CROS
- type CodeError
- type CreateStruct
- type DBString
- type Database
- type DeleteStruct
- type Duration
- type Error
- type ErrorCode
- type FileSize
- type FileType
- type Id
- func ParseBase2(id string) (Id, error)
- func ParseBase32(b []byte) (Id, error)
- func ParseBase36(id string) (Id, error)
- func ParseBase58(b []byte) (Id, error)
- func ParseBase64(id string) (Id, error)
- func ParseBytes(id []byte) (Id, error)
- func ParseInt64(id int64) Id
- func ParseIntBytes(id [8]byte) Id
- func ParseString(id string) (Id, error)
- func (f Id) Base2() string
- func (f Id) Base32() string
- func (f Id) Base36() string
- func (f Id) Base58() string
- func (f Id) Base64() string
- func (f Id) Bytes() []byte
- func (f Id) Int64() int64
- func (f Id) IntBytes() [8]byte
- func (f Id) MarshalJSON() ([]byte, error)
- func (f Id) Node() int64
- func (f Id) Step() int64
- func (f Id) String() string
- func (f Id) Time() int64
- func (f *Id) UnmarshalJSON(b []byte) error
- type IdStruct
- type Int64Slice
- type JSONSyntaxError
- type NamedTag
- type Paging
- type SeparatorStyle
- type Snowflake
- type Sorter
- type StringBuilder
- type StringSlice
- type Tagger
- type Timestamp
- type UpdateStruct
Constants ¶
const ( DefaultTimeLayout = "2006-01-02 15:04:05" // 时间常量 // 一天 Day = 24 * time.Hour // 一周 Week = 7 * Day // 一个月 Month = 30 * Day // 一年 Year = 365 * Day )
const (
HeaderContentType = "Content-Type"
)
Variables ¶
var ( ErrOnCopySelf = &CodeError{ErrorCode: 1001, Msg: "不能复制或者移动自身"} ErrSrcIsNotFile = &CodeError{ErrorCode: 1002, Msg: "源文件不是文件"} )
var ( // Separate nested key components with dots, e.g. "a.b.1.c.d" DotStyle = SeparatorStyle{Middle: "."} // Separate with path-like slashes, e.g. a/b/1/c/d PathStyle = SeparatorStyle{Middle: "/"} // Separate ala Rails, e.g. "a[b][c][1][d]" RailsStyle = SeparatorStyle{Before: "[", After: "]"} // Separate with underscores, e.g. "a_b_1_c_d" UnderscoreStyle = SeparatorStyle{Middle: "_"} )
Default styles
var ( // Epoch is set to the twitter snowflake epoch of Nov 04 2010 01:42:54 UTC in milliseconds // You may customize this to set a different epoch for your application. Epoch int64 = 1288834974657 // NodeBits holds the number of bits to use for Snowflake // Remember, you have a total 22 bits to share between Snowflake/Step NodeBits uint8 = 10 // StepBits holds the number of bits to use for Step // Remember, you have a total 22 bits to share between Snowflake/Step StepBits uint8 = 12 )
var ErrInvalidBase32 = errors.New("invalid base32")
ErrInvalidBase32 is returned by ParseBase32 when given an invalid []byte
var ErrInvalidBase58 = errors.New("invalid base58")
ErrInvalidBase58 is returned by ParseBase58 when given an invalid []byte
var NotValidInputError = errors.New("Not a valid input: map or slice")
Nested input must be a map or slice
var NotValidJsonInputError = errors.New("Not a valid input, must be a map")
JSON nested input must be a map
Functions ¶
func CheckPasswordHash ¶
CheckPasswordHash 检查密码的正确性
func CreateFile ¶ added in v1.2.0
func DirNotExistCreate ¶ added in v1.2.0
DirNotExistCreate err为空存在,不会空则
func Flatten ¶
func Flatten(nested map[string]interface{}, prefix string, style SeparatorStyle) (map[string]interface{}, error)
Flatten generates a flat map from a nested one. The original may include values of type map, slice and scalar, but not struct. Keys in the flat map will be a compound of descending map keys and slice iterations. The presentation of keys is set by style. A prefix is joined to each key.
func FlattenString ¶
func FlattenString(nestedStr, prefix string, style SeparatorStyle) (string, error)
FlattenString generates a flat JSON map from a nested one. Keys in the flat map will be a compound of descending map keys and slice iterations. The presentation of keys is set by style. A prefix is joined to each key.
func GetAllFilesBy ¶ added in v1.2.0
func GetContentType ¶ added in v1.2.0
GetContentType 获得文件的ContentType
func GetDirFatherDeep ¶ added in v1.2.0
GetDirFatherDeep dir以/开头
func GetDirSonDeep ¶ added in v1.2.0
func GetFileContentType ¶ added in v1.2.0
GetFileContentType 获得文件的ContentType
func GetFileNameWithExt ¶ added in v1.2.0
GetFileNameWithExt 获得带扩展名的文件名
func GetNeedDeleteFiles ¶ added in v1.2.0
func HashPasswordWithCost ¶
HashPasswordWithCost 生成密码
func MySQLJsonUpdate ¶
func MySQLJsonUpdate( table string, filed string, conditionFiled string, conditionValue interface{}, data map[string]interface{}, ) (sql string, err error)
MySQLJsonUpdate 生成MySQL JSON增量更新SQL语句的快捷方式
func MySQLJsonUpdateWithConfig ¶
func MySQLJsonUpdateWithConfig( table string, filed string, conditionFiled string, conditionValue interface{}, data map[string]interface{}, prefix string, style SeparatorStyle, ) (sql string, err error)
MySQLJsonUpdateWithConfig 生成MySQL JSON增量更新SQL语句
func RenameFile ¶ added in v1.2.0
func RenderToFile ¶
RenderToFile 渲染模板到文件
func SearchString ¶
func ValidFilename ¶ added in v1.2.0
ValidFilename 有效文件名(Windows标准)
Types ¶
type BaseStruct ¶
type BaseStruct struct { // 编号 Id int64 `xorm:"pk notnull unique index('idx_id') default(0)" json:"id,string"` // 创建时间 CreatedAt Timestamp `xorm:"created default('2020-02-04 09:55:52')" json:"createdAt"` // 最后更新时间 UpdatedAt Timestamp `xorm:"updated default('2020-02-04 09:55:52')" json:"updatedAt"` }
BaseStruct Xorm基础模型
func (BaseStruct) IdString ¶ added in v1.2.0
func (b BaseStruct) IdString() string
IdString Id的字符串形式
type BaseUser ¶
type BaseUser struct { BaseStruct `xorm:"extends"` // 用户名 Username DBString `xorm:"varchar(32) notnull default('') unique(uidx_name)" json:"username" validate:"omitempty,min=1,max=32,email"` // 手机号 // 类似于+86-17089792784 Phone DBString `xorm:"varchar(15) notnull default('') unique(uidx_phone)" json:"phone" validate:"omitempty,mobile"` // 密码 Pwd string `xorm:"varchar(512) notnull default('')" json:"-"` }
基础用户数据
type CROS ¶ added in v1.2.0
type CROS struct { AllowOrigins []string `default:"['*']" yaml:"allowOrigins"` AllowCredentials bool `default:"true" yaml:"allowCredentials"` }
CROS 跨域配置
type CodeError ¶ added in v1.2.0
CodeError 带错误编号和消息的错误
func NewCodeError ¶ added in v1.2.0
NewCodeError 创建错误
func (*CodeError) ToErrorCode ¶ added in v1.2.0
type CreateStruct ¶ added in v1.2.0
type CreateStruct struct { // 编号 Id int64 `xorm:"pk notnull unique index('idx_id') default(0)" json:"id,string"` // 创建时间 CreatedAt Timestamp `xorm:"created default('2020-02-04 09:55:52')" json:"createdAt"` }
CreateStruct 带创建时间模型
type Database ¶ added in v1.2.0
type Database struct { Type string `default:"sqlite3"` Address string `default:"127.0.0.1:3306"` Username string Password string Protocol string `default:"tcp"` Suffix string Prefix string Schema string `default:"schema"` MigrationTableName string `default:"migration"` Parameters string Path string `default:"data.db"` }
Database 数据库配置
type DeleteStruct ¶ added in v1.2.0
type DeleteStruct struct { // 编号 Id int64 `xorm:"pk notnull unique index('idx_id') default(0)" json:"id,string"` // 创建时间 CreatedAt Timestamp `xorm:"created default('2020-02-04 09:55:52')" json:"createdAt"` // 最后更新时间 UpdatedAt Timestamp `xorm:"updated default('2020-02-04 09:55:52')" json:"updatedAt"` // 删除时间 // 用户软删除 DeletedAt Timestamp `xorm:"deleted default('2020-02-04 09:55:52')" json:"deletedAt"` }
DeleteStruct 软删除模型
type Duration ¶
Duration 弥补标准库不能使用ParseDuration
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON 解析JSON
type Error ¶ added in v1.2.0
type Error interface { // ToErrorCode 返回错误码 ToErrorCode() ErrorCode // ToMsg 返回错误消息 ToMsg() string // ToData 返回错误实体 // 在某些错误下,可能需要返回额外的信息给前端处理 // 比如,认证错误,需要返回哪些字段有错误 ToData() interface{} }
Error 接口,符合条件的错误统一处理
type Id ¶
type Id int64
An Id is a custom type used for a snowflake Id. This is used so we can attach methods onto the Id.
func ParseBase2 ¶ added in v1.2.0
ParseBase2 converts a Base2 string into a snowflake Id
func ParseBase32 ¶ added in v1.2.0
ParseBase32 parses a base32 []byte into a snowflake Id NOTE: There are many different base32 implementations so becareful when doing any interoperation.
func ParseBase36 ¶ added in v1.2.0
ParseBase36 converts a Base36 string into a snowflake Id
func ParseBase58 ¶ added in v1.2.0
ParseBase58 parses a base58 []byte into a snowflake Id
func ParseBase64 ¶
ParseBase64 converts a base64 string into a snowflake Id
func ParseBytes ¶
ParseBytes converts a byte slice into a snowflake Id
func ParseIntBytes ¶
ParseIntBytes converts an array of bytes encoded as big endian integer as a snowflake Id
func ParseString ¶
ParseString converts a string into a snowflake Id
func (Id) Base32 ¶ added in v1.2.0
Base32 uses the z-base-32 character set but encodes and decodes similar to base58, allowing it to create an even smaller result string. NOTE: There are many different base32 implementations so becareful when doing any interoperation.
func (Id) IntBytes ¶
IntBytes returns an array of bytes of the snowflake Id, encoded as a big endian integer.
func (Id) MarshalJSON ¶
MarshalJSON returns a json byte array string of the snowflake Id.
func (*Id) UnmarshalJSON ¶
UnmarshalJSON converts a json byte array of a snowflake Id into an Id type.
type IdStruct ¶
type IdStruct struct { // 编号 Id int64 `xorm:"pk notnull unique index('idx_id') default(0)" json:"id,string"` }
IdStruct 带序列号的模型
type Int64Slice ¶ added in v1.2.0
type Int64Slice []int64
func (*Int64Slice) FromDB ¶ added in v1.2.0
func (s *Int64Slice) FromDB(bytes []byte) error
func (Int64Slice) MarshalJSON ¶ added in v1.2.0
func (s Int64Slice) MarshalJSON() ([]byte, error)
func (Int64Slice) ToDB ¶ added in v1.2.0
func (s Int64Slice) ToDB() ([]byte, error)
func (*Int64Slice) UnmarshalJSON ¶ added in v1.2.0
func (s *Int64Slice) UnmarshalJSON(bytes []byte) error
func (*Int64Slice) UnmarshalParam ¶ added in v1.2.0
func (s *Int64Slice) UnmarshalParam(src string) error
type JSONSyntaxError ¶
type JSONSyntaxError struct {
// contains filtered or unexported fields
}
A JSONSyntaxError is returned from UnmarshalJSON if an invalid Id is provided.
func (JSONSyntaxError) Error ¶
func (j JSONSyntaxError) Error() string
type NamedTag ¶
type NamedTag struct { BaseTag // contains filtered or unexported fields }
NamedTag 描述Golang的Tag标记
type Paging ¶
type Paging struct { // 当前页 Page int `default:"1" json:"page" validate:"min=1"` // 每页个数 PerPage int `default:"20" json:"perPage" validate:"min=1"` // 查询关键字 Keyword string `json:"keyword"` // 排序顺序 SortOrder string `default:"DESC" json:"sortOrder" validate:"oneof=asc ASC ascending ASCENDING desc DESC descending DESCENDING"` }
Paging 分页对象
type SeparatorStyle ¶
type SeparatorStyle struct { Before string // Prepend to key Middle string // Add between keys After string // Append to key }
The style of keys. If there is an input with two nested keys "f" and "g", with "f" at the root,
{ "f": { "g": ... } }
the output will be the concatenation
f{Middle}{Before}g{After}...
Any struct element may be blank. If you use Middle, you will probably leave Before & After blank, and vice-versa. See examples in flatten_test.go and the "Default styles" here.
type Snowflake ¶
type Snowflake struct {
// contains filtered or unexported fields
}
A Snowflake struct holds the basic information needed for a snowflake generator node
func NewSnowflake ¶
NewSnowflake returns a new snowflake node that can be used to generate snowflake IDs
type StringBuilder ¶ added in v1.2.0
内嵌bytes.StringBuilder,支持连写
func NewStringBuilder ¶ added in v1.2.0
func NewStringBuilder() *StringBuilder
func (*StringBuilder) Append ¶ added in v1.2.0
func (b *StringBuilder) Append(i interface{}) *StringBuilder
type StringSlice ¶
type StringSlice []string
func (*StringSlice) UnmarshalParam ¶
func (ss *StringSlice) UnmarshalParam(src string) error
type Timestamp ¶
Timestamp 时间戳
func ParseTimestamp ¶
ParseTimestamp 从Time对象生成Timestamp
func (Timestamp) MarshalJSON ¶
MarshalJSON 序列化成JSON时调用
func (*Timestamp) UnmarshalJSON ¶
UnmarshalJSON 反序列化成JSON时调用
func (*Timestamp) UnmarshalParam ¶
UnmarshalParam 从Echo参数转换
type UpdateStruct ¶ added in v1.2.0
type UpdateStruct struct { // 编号 Id int64 `xorm:"pk notnull unique index('idx_id') default(0)" json:"id,string"` // 最后更新时间 UpdatedAt Timestamp `xorm:"updated default('2020-02-04 09:55:52')" json:"updatedAt"` }
UpdateStruct 带修改时间模型