From 8bbd49554f6df0b9b6e0eacbe8d0eb9ba9f839bf Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Mon, 17 Jul 2023 18:43:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E9=80=9A=E8=BF=87=20golang=20?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=94=9F=E6=88=90=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=BB=A3=E7=A0=81=E6=94=AF=E6=8C=81=E9=80=9A?= =?UTF-8?q?=E8=BF=87=20Sync=20=E5=87=BD=E6=95=B0=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=9A=84=E9=85=8D=E7=BD=AE=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E9=85=8D=E7=BD=AE=E8=A2=AB=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E9=80=A0=E6=88=90=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- planner/pce/tmpls/golang.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/planner/pce/tmpls/golang.go b/planner/pce/tmpls/golang.go index f7afb2b..6d0f400 100644 --- a/planner/pce/tmpls/golang.go +++ b/planner/pce/tmpls/golang.go @@ -27,6 +27,7 @@ func (slf *Golang) Render(templates ...*pce.TmplStruct) (string, error) { import ( jsonIter "github.com/json-iterator/go" "github.com/kercylan98/minotaur/utils/log" + "github.com/kercylan98/minotaur/utils/hash" "sync" ) @@ -192,13 +193,22 @@ func (slf *Golang) Render(templates ...*pce.TmplStruct) (string, error) { // GetConfigs 获取所有配置 func GetConfigs() map[Sign]any { - return configs + mutex.Lock() + defer mutex.Unlock() + return hash.Copy(configs) } // GetConfigSigns 获取所有配置的标识 func GetConfigSigns() []Sign { return signs } + + // Sync 同步操作配置 + func Sync(handle func(configs map[Sign]any)) { + mutex.Lock() + defer mutex.Unlock() + handle(hash.Copy(configs)) + } `, slf) } From ab0a7cbbbc786f198ab71aed4515ed8422a78cdf Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Mon, 17 Jul 2023 20:13:05 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=BB=E9=94=AE?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E7=9A=84=E6=95=B0=E6=8D=AE=E8=A2=AB=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- planner/pce/cs/xlsx.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/planner/pce/cs/xlsx.go b/planner/pce/cs/xlsx.go index b81c6a5..b407d41 100644 --- a/planner/pce/cs/xlsx.go +++ b/planner/pce/cs/xlsx.go @@ -104,12 +104,16 @@ func (slf *Xlsx) GetData() [][]pce.DataInfo { } } - for i, field := range slf.GetFields() { - var isIndex = i-1 < slf.GetIndexCount() + for i, field := range fields { + var isIndex = i < slf.GetIndexCount() var value string if valueCell := slf.get(field.Index, y); valueCell != nil { value = valueCell.String() + if isIndex && len(strings.TrimSpace(value)) == 0 { + stop = true + break + } } else if isIndex { stop = true break @@ -118,12 +122,10 @@ func (slf *Xlsx) GetData() [][]pce.DataInfo { if valueCell == nil { break } - if len(fields) > i-1 { - line = append(line, pce.DataInfo{ - DataField: field, - Value: value, - }) - } + line = append(line, pce.DataInfo{ + DataField: field, + Value: value, + }) } if len(line) > 0 { data = append(data, line) From 28c60970447da65180a74c69cc47dfa25cce4cac Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Tue, 18 Jul 2023 09:33:54 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=BD=AC=E6=8D=A2=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/str/str.go | 154 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 3 deletions(-) diff --git a/utils/str/str.go b/utils/str/str.go index 33e8d7b..9dc2fa2 100644 --- a/utils/str/str.go +++ b/utils/str/str.go @@ -19,11 +19,11 @@ var ( // FirstUpper 首字母大写 func FirstUpper(str string) string { var upperStr string - vv := []rune(str) // 后文有介绍 + vv := []rune(str) for i := 0; i < len(vv); i++ { if i == 0 { - if vv[i] >= 97 && vv[i] <= 122 { // 后文有介绍 - vv[i] -= 32 // string的码表相差32位 + if vv[i] >= 97 && vv[i] <= 122 { + vv[i] -= 32 upperStr += string(vv[i]) } else { return str @@ -34,3 +34,151 @@ func FirstUpper(str string) string { } return upperStr } + +// FirstLower 首字母小写 +func FirstLower(str string) string { + var lowerStr string + vv := []rune(str) + for i := 0; i < len(vv); i++ { + if i == 0 { + if vv[i] >= 65 && vv[i] <= 90 { + vv[i] += 32 + lowerStr += string(vv[i]) + } else { + return str + } + } else { + lowerStr += string(vv[i]) + } + } + return lowerStr +} + +// FirstUpperBytes 首字母大写 +func FirstUpperBytes(str []byte) []byte { + var upperStr []byte + vv := []rune(string(str)) + for i := 0; i < len(vv); i++ { + if i == 0 { + if vv[i] >= 97 && vv[i] <= 122 { + vv[i] -= 32 + upperStr = append(upperStr, string(vv[i])...) + } else { + return str + } + } else { + upperStr = append(upperStr, string(vv[i])...) + } + } + return upperStr +} + +// FirstLowerBytes 首字母小写 +func FirstLowerBytes(str []byte) []byte { + var lowerStr []byte + vv := []rune(string(str)) + for i := 0; i < len(vv); i++ { + if i == 0 { + if vv[i] >= 65 && vv[i] <= 90 { + vv[i] += 32 + lowerStr = append(lowerStr, string(vv[i])...) + } else { + return str + } + } else { + lowerStr = append(lowerStr, string(vv[i])...) + } + } + return lowerStr +} + +// IsEmpty 判断字符串是否为空 +func IsEmpty(str string) bool { + return len(str) == 0 +} + +// IsEmptyBytes 判断字符串是否为空 +func IsEmptyBytes(str []byte) bool { + return len(str) == 0 +} + +// IsNotEmpty 判断字符串是否不为空 +func IsNotEmpty(str string) bool { + return !IsEmpty(str) +} + +// IsNotEmptyBytes 判断字符串是否不为空 +func IsNotEmptyBytes(str []byte) bool { + return !IsEmptyBytes(str) +} + +// SnakeString 蛇形字符串 +func SnakeString(str string) string { + var snakeStr string + vv := []rune(str) + for i := 0; i < len(vv); i++ { + if vv[i] >= 65 && vv[i] <= 90 { + vv[i] += 32 + snakeStr += "_" + string(vv[i]) + } else { + snakeStr += string(vv[i]) + } + } + return snakeStr +} + +// SnakeStringBytes 蛇形字符串 +func SnakeStringBytes(str []byte) []byte { + var snakeStr []byte + vv := []rune(string(str)) + for i := 0; i < len(vv); i++ { + if vv[i] >= 65 && vv[i] <= 90 { + vv[i] += 32 + snakeStr = append(snakeStr, '_') + snakeStr = append(snakeStr, string(vv[i])...) + } else { + snakeStr = append(snakeStr, string(vv[i])...) + } + } + return snakeStr +} + +// CamelString 驼峰字符串 +func CamelString(str string) string { + var camelStr string + vv := []rune(str) + for i := 0; i < len(vv); i++ { + if vv[i] == '_' { + i++ + if vv[i] >= 97 && vv[i] <= 122 { + vv[i] -= 32 + camelStr += string(vv[i]) + } else { + return str + } + } else { + camelStr += string(vv[i]) + } + } + return camelStr +} + +// CamelStringBytes 驼峰字符串 +func CamelStringBytes(str []byte) []byte { + var camelStr []byte + vv := []rune(string(str)) + for i := 0; i < len(vv); i++ { + if vv[i] == '_' { + i++ + if vv[i] >= 97 && vv[i] <= 122 { + vv[i] -= 32 + camelStr = append(camelStr, string(vv[i])...) + } else { + return str + } + } else { + camelStr = append(camelStr, string(vv[i])...) + } + } + return camelStr +}