utils

package module
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2023 License: Apache-2.0 Imports: 28 Imported by: 0

README

utils

utils

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthMiddleware

func AuthMiddleware(c *gin.Context)

func DecodeToken

func DecodeToken(tokenValue string) (int32, string, error)

func GetDefaultKey added in v0.1.4

func GetDefaultKey() string

GetDefaultKey for encript key

func GetToken

func GetToken(account string, userid int32) (string, error)

Types

type ConfigServ

type ConfigServ struct {
	FilePath string
	FileName string
	FileType string
}

func (*ConfigServ) GetConfig

func (s *ConfigServ) GetConfig(target interface{}) error

type EnLogger

type EnLogger struct {
	// contains filtered or unexported fields
}

func NewLogger

func NewLogger(filePath string) (*EnLogger, error)

func (*EnLogger) CloseLog

func (enLog *EnLogger) CloseLog()

func (*EnLogger) WriteLog

func (enLog *EnLogger) WriteLog(v ...interface{})

type StringBuffer

type StringBuffer struct {
	strings.Builder
}

func (*StringBuffer) AppendByte

func (sb *StringBuffer) AppendByte(source byte) *StringBuffer

func (*StringBuffer) AppendBytes

func (sb *StringBuffer) AppendBytes(source []byte) *StringBuffer

func (*StringBuffer) AppendLine

func (sb *StringBuffer) AppendLine(source string) *StringBuffer

func (*StringBuffer) AppendRune

func (sb *StringBuffer) AppendRune(source rune) *StringBuffer

func (*StringBuffer) AppendRunes

func (sb *StringBuffer) AppendRunes(source []rune) *StringBuffer

func (*StringBuffer) AppendStr

func (sb *StringBuffer) AppendStr(source string) *StringBuffer

type TAuth

type TAuth struct {
	Code  int8   `json:"code"`
	User  any    `json:"user"`
	Token string `json:"token"`
}

func Authentication

func Authentication(token string, data any) *TAuth

type TChrPos

type TChrPos = uint8
const (
	PosKeyLeft TChrPos = iota
	PosKey
	PosValLeft
	PosVal
)

type TClaims

type TClaims struct {
	UserID  int32  `json:"user_id"`
	Account string `json:"account"`
	jwt.RegisteredClaims
}

type TEnArrStr

type TEnArrStr struct {
	ArrayString *[]string
}

func (*TEnArrStr) Exists

func (arrStr *TEnArrStr) Exists(target string) bool

func (*TEnArrStr) IndexOf

func (arrStr *TEnArrStr) IndexOf(target string, skip int) int

func (*TEnArrStr) Load

func (arrStr *TEnArrStr) Load(source []string)

func (*TEnArrStr) MatchMapKey

func (arrStr *TEnArrStr) MatchMapKey(source map[string]interface{}) map[string]string

func (*TEnArrStr) Values

func (arrStr *TEnArrStr) Values(iIndex int) (string, error)

type TEnBuffer

type TEnBuffer struct {
	// contains filtered or unexported fields
}

TEnBuffer 开辟一个内存空间,减少GC

func NewEnBuff

func NewEnBuff(maxCap uint64) *TEnBuffer

func (*TEnBuffer) AllBytes

func (eb *TEnBuffer) AllBytes() ([]byte, error)

AllBytes 读取当前的数据,不考虑长度 与 appendBytes 配合使用

func (*TEnBuffer) AppendBytes

func (eb *TEnBuffer) AppendBytes(val []byte)

AppendBytes 不写入长度,直接追加数据

func (*TEnBuffer) Compress

func (eb *TEnBuffer) Compress() error

Compress 调用前必须调用 StopAppend()

func (*TEnBuffer) DeCompress

func (eb *TEnBuffer) DeCompress() error

DeCompress 调用前必须调用 StopAppend()

func (*TEnBuffer) DecodeBase64

func (eb *TEnBuffer) DecodeBase64() error

DecodeBase64 转为base64编码 调用前必须调用 StopAppend()

func (*TEnBuffer) Decrypt

func (eb *TEnBuffer) Decrypt(key []byte)

func (*TEnBuffer) EncodeBase64

func (eb *TEnBuffer) EncodeBase64() error

EncodeBase64 转为base64编码 调用前必须调用 StopAppend()

func (*TEnBuffer) Encrypt

func (eb *TEnBuffer) Encrypt(key []byte)

func (*TEnBuffer) LoadBytes

func (eb *TEnBuffer) LoadBytes(val []byte)

LoadBytes 使用数据直接复写内存

func (*TEnBuffer) ReadBool

func (eb *TEnBuffer) ReadBool() (bool, error)

func (*TEnBuffer) ReadBytes

func (eb *TEnBuffer) ReadBytes() ([]byte, error)

func (*TEnBuffer) ReadFloat

func (eb *TEnBuffer) ReadFloat() (float32, error)

func (*TEnBuffer) ReadFloat64

func (eb *TEnBuffer) ReadFloat64() (float64, error)

func (*TEnBuffer) ReadInt

func (eb *TEnBuffer) ReadInt() (int, error)

func (*TEnBuffer) ReadString

func (eb *TEnBuffer) ReadString() (string, error)

func (*TEnBuffer) ReadStruct

func (eb *TEnBuffer) ReadStruct(val any) error

ReadStruct 调用前必须 调用 StopAppend()

func (*TEnBuffer) ReadTime

func (eb *TEnBuffer) ReadTime() (time.Time, error)

func (*TEnBuffer) ReadUint16

func (eb *TEnBuffer) ReadUint16() (uint16, error)

func (*TEnBuffer) ReadUint32

func (eb *TEnBuffer) ReadUint32() (uint32, error)

func (*TEnBuffer) ReadUint64

func (eb *TEnBuffer) ReadUint64() (uint64, error)

func (*TEnBuffer) ReadUint8

func (eb *TEnBuffer) ReadUint8() (uint8, error)

func (*TEnBuffer) Release

func (eb *TEnBuffer) Release()

Release 释放内存空间

func (*TEnBuffer) Reset

func (eb *TEnBuffer) Reset()

Reset 重置空间

func (*TEnBuffer) StartAppend

func (eb *TEnBuffer) StartAppend()

StartAppend 开始使用内存 star curr 移动至最后

func (*TEnBuffer) StopAppend

func (eb *TEnBuffer) StopAppend()

StopAppend stop=curr curr=start

func (*TEnBuffer) WriteBool

func (eb *TEnBuffer) WriteBool(val bool)

WriteBool true : 1 false : 0

func (*TEnBuffer) WriteBytes

func (eb *TEnBuffer) WriteBytes(val []byte)

WriteBytes 写入长度,再写入数据

func (*TEnBuffer) WriteFloat

func (eb *TEnBuffer) WriteFloat(val float32)

WriteFloat float

func (*TEnBuffer) WriteFloat64

func (eb *TEnBuffer) WriteFloat64(val float64)

WriteFloat64 float64

func (*TEnBuffer) WriteInt

func (eb *TEnBuffer) WriteInt(val int)

WriteInt int 根据实际的大小存储值

func (*TEnBuffer) WriteString

func (eb *TEnBuffer) WriteString(val string)

WriteString 转换为bytes写入

func (*TEnBuffer) WriteStruct

func (eb *TEnBuffer) WriteStruct(val any) error

WriteStruct 写入struct

func (*TEnBuffer) WriteTime

func (eb *TEnBuffer) WriteTime(val time.Time)

WriteTime uint64

func (*TEnBuffer) WriteUint16

func (eb *TEnBuffer) WriteUint16(val uint16)

WriteUint16 uint16

func (*TEnBuffer) WriteUint32

func (eb *TEnBuffer) WriteUint32(val uint32)

WriteUint32 uint32

func (*TEnBuffer) WriteUint64

func (eb *TEnBuffer) WriteUint64(val uint64)

WriteUint64 uint64

func (*TEnBuffer) WriteUint8

func (eb *TEnBuffer) WriteUint8(val byte)

WriteUint8 写入1个字节 或写入 uint8

type TEnString

type TEnString struct {
	String string
}

func (*TEnString) ContainsWithoutQuote

func (str *TEnString) ContainsWithoutQuote(substr, quote string) bool

func (*TEnString) CutFromFirst

func (str *TEnString) CutFromFirst(start string) string

CutFromFirst 从左侧第一个指定字符开始去除右侧的字符,并移除改字符左侧的空字符 CutFromFirst("abcdef (123 (5689","(") ==> "abcdef"

func (*TEnString) CutFromLast

func (str *TEnString) CutFromLast(start string) string

CutFromLast ("abcdef (123 (5689","(") ==> "abcdef (123"

func (*TEnString) Decrypt

func (str *TEnString) Decrypt(key string) string

func (*TEnString) Decrypt4Frontend

func (str *TEnString) Decrypt4Frontend(key []byte) (string, error)

前端加密

async function encrypt(message, key) {
    const keyData = await window.crypto.subtle.importKey(
        "raw",
        new TextEncoder().encode(key),
        "AES-GCM",
        false,
        ["encrypt"]
    );
    const iv = window.crypto.getRandomValues(new Uint8Array(12));
    const data = new TextEncoder().encode(message);
    const encrypted = await window.crypto.subtle.encrypt(
        {
            name: "AES-GCM",
            iv: iv
        },
        keyData,
        data
    );
    const encryptedArray = new Uint8Array(encrypted);
    const result = new Uint8Array(iv.length + encryptedArray.length);
    result.set(iv);
    result.set(encryptedArray, iv.length);
    return btoa(String.fromCharCode.apply(null, result));
}

async function main() {
    const key = "example key 1234";
    const message = "Hello, World!";
    const encrypted = await encrypt(message, key);
    console.log(encrypted);
}

func (*TEnString) EmptyVal

func (str *TEnString) EmptyVal(source, target string) string

func (*TEnString) Encrypt

func (str *TEnString) Encrypt(key string) string

func (*TEnString) Encrypt4Frontend

func (str *TEnString) Encrypt4Frontend(key []byte) (string, error)

前端解密:

async function decrypt(encrypted, key) {
    const encryptedArray = Uint8Array.from(atob(encrypted), c => c.charCodeAt(0));
    const iv = encryptedArray.slice(0, 12);
    const data = encryptedArray.slice(12);
    const keyData = await window.crypto.subtle.importKey(
        "raw",
        new TextEncoder().encode(key),
        "AES-GCM",
        false,
        ["decrypt"]
    );
    const decrypted = await window.crypto.subtle.decrypt(
        {
            name: "AES-GCM",
            iv: iv
        },
        keyData,
        data
    );
    const decoder = new TextDecoder();
    return decoder.decode(decrypted);
}

func (*TEnString) IndexOfByte

func (str *TEnString) IndexOfByte(target byte) []int

IndexOfByte 列出指定字节的全部位置

func (*TEnString) IndexOfString

func (str *TEnString) IndexOfString(target string) []int

IndexOfString 列出指定字符串的全部位置

func (*TEnString) Load

func (str *TEnString) Load(source ...string)

func (*TEnString) LoadWithSplit

func (str *TEnString) LoadWithSplit(split string, source ...string)

LoadWithSplit 使用split拼接多个字符

func (*TEnString) LowerCase

func (str *TEnString) LowerCase(quote string) string

func (*TEnString) MD5Str added in v0.1.4

func (str *TEnString) MD5Str() string

func (*TEnString) Pos

func (str *TEnString) Pos(targets ...string) []int

Pos 一次性列出指定多个字符串的位置,位置顺序与指定字符串的顺序一致

func (*TEnString) RemoveSubstr

func (str *TEnString) RemoveSubstr(start, stop string) (*string, *string)

RemoveSubstr 移除开始和结束的字符,返回剩余的字符和移除的字符,均不包括开始和结束字符

func (*TEnString) Repeat

func (str *TEnString) Repeat(source, split string, count int) string

func (*TEnString) Split

func (str *TEnString) Split(split string) []string

func (*TEnString) SubStr

func (str *TEnString) SubStr(start, stop string) string

SubStr 截取字符串,不包括开始和结束字符

func (*TEnString) SubStrSkipQuote

func (str *TEnString) SubStrSkipQuote(leftStr, rightStr string, quote string) string

SubStrSkipQuote 截取指定字符串位置之间的字符,跳过括弧内的相同字符 待测试

func (*TEnString) SubStrTrim

func (str *TEnString) SubStrTrim(leftStr, rightStr string) string

func (*TEnString) ToMap

func (str *TEnString) ToMap(split, compare, quote string) *map[string]string

ToMap 将字符串转换为map,split,quote 必须为单个字符,quote 可以为空 a=b,c=d | a = b ,c = d a=b c=d e=f a=b and c = d a = 'bf' c="af we"

func (*TEnString) ToMapAny

func (str *TEnString) ToMapAny(split, quote string, compare []string) *map[string]string

ToMapAny 使用不同的compare进行拆解,split必须为单字符,quote 可空,并且必须为单字符 "a>=b,c>=d , e =”' f' ,g = 'o=h'" -->map[a:b c:d e:' f g:o=h]

func (*TEnString) TrimFromLeft

func (str *TEnString) TrimFromLeft(headFlag string) string

TrimFromLeft 从左侧开始移除空字符或指定的字符,直至出现其他的字符

func (*TEnString) TrimFromRight

func (str *TEnString) TrimFromRight(tailFlag string) string

TrimFromRight 从右侧开始移除空字符或指定的字符,直至出现其他的字符 TrimFromRight("abcdef ghijkl ; ",";") ==> "abcdef ghijkl"

type TFilepath

type TFilepath struct {
	CurrentPath string
	DirFlag     string
	FileDirs    *map[string]string
}

func NewFilePath added in v0.1.5

func NewFilePath() (*TFilepath, error)

NewFilePath get current path and os dir flag

func (*TFilepath) GetFileDir added in v0.1.5

func (fp *TFilepath) GetFileDir(fileType string) (string, error)

func (*TFilepath) SetFileDir added in v0.1.5

func (fp *TFilepath) SetFileDir(fileDirs *map[string]string) error

type TLogService

type TLogService struct {
	Logger map[string]*EnLogger
}
var LogServ TLogService

func (*TLogService) InitLog

func (ls *TLogService) InitLog(fp *TFilepath, logs *map[string]string) error

func (*TLogService) WriteLog added in v0.1.5

func (ls *TLogService) WriteLog(logType string, v ...any) error

type TMatchMapKey

type TMatchMapKey struct {
	Data map[string]string
}

func (*TMatchMapKey) GetBool added in v0.1.3

func (ms *TMatchMapKey) GetBool(source map[string]interface{}, key string) (bool, error)

func (*TMatchMapKey) GetFloat32 added in v0.1.3

func (ms *TMatchMapKey) GetFloat32(source map[string]interface{}, key string) (float32, error)

func (*TMatchMapKey) GetFloat64

func (ms *TMatchMapKey) GetFloat64(source map[string]interface{}, key string) (float64, error)

func (*TMatchMapKey) GetInt added in v0.1.3

func (ms *TMatchMapKey) GetInt(source map[string]interface{}, key string) (int, error)

func (*TMatchMapKey) GetInt16 added in v0.1.3

func (ms *TMatchMapKey) GetInt16(source map[string]interface{}, key string) (int16, error)

func (*TMatchMapKey) GetInt32

func (ms *TMatchMapKey) GetInt32(source map[string]interface{}, key string) (int32, error)

func (*TMatchMapKey) GetInt64 added in v0.1.2

func (ms *TMatchMapKey) GetInt64(source map[string]interface{}, key string) (int64, error)

func (*TMatchMapKey) GetInt8 added in v0.1.3

func (ms *TMatchMapKey) GetInt8(source map[string]interface{}, key string) (int8, error)

func (*TMatchMapKey) GetSlice added in v0.1.3

func (ms *TMatchMapKey) GetSlice(source map[string]interface{}, key string) ([]interface{}, error)

func (*TMatchMapKey) GetString

func (ms *TMatchMapKey) GetString(source map[string]interface{}, key string) (string, error)

func (*TMatchMapKey) GetStruct added in v0.1.3

func (ms *TMatchMapKey) GetStruct(source map[string]interface{}, key string) (interface{}, error)

func (*TMatchMapKey) GetTime added in v0.1.3

func (ms *TMatchMapKey) GetTime(source map[string]interface{}, key string) (time.Time, error)

type TRespDataSet

type TRespDataSet struct {
	Total   int         `json:"total"`
	Fields  []string    `json:"fields,omitempty"`
	ArrData interface{} `json:"list,omitempty"`
}

type TResponse

type TResponse struct {
	Code int32         `json:"code"`
	Data *TRespDataSet `json:"data,omitempty"`
	Info string        `json:"message"`
}

func Failure

func Failure(info string) *TResponse

func RespData

func RespData(total int32, fields []string, data interface{}, err error) *TResponse

func ReturnID

func ReturnID(id int32) *TResponse

func Success

func Success(data *TRespDataSet) *TResponse

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL