electricity_bill_calc_service/tools/utils.go

41 lines
994 B
Go

package tools
import (
"encoding/json"
"strings"
"github.com/mozillazg/go-pinyin"
"github.com/samber/lo"
)
func ContainsInsensitive(element string, slice []string) bool {
lowercasedElement := strings.TrimSpace(strings.ToLower(element))
return lo.Contains(slice, lowercasedElement)
}
func PinyinAbbr(source string) string {
abbr := pinyin.Pinyin(source, pinyin.NewArgs())
var abbrCollect = make([]string, 0)
for _, a := range abbr {
abbrCollect = append(abbrCollect, a[0][0:1])
}
finalAbbr := strings.Join(abbrCollect, "")
return finalAbbr
}
// 将给定结构体的内容通过JSON转换为`map[string]interface{}`类型的值
func ConvertStructToMap[T any](origin T) map[string]interface{} {
incr, _ := json.Marshal(origin)
var dest map[string]interface{}
json.Unmarshal(incr, &dest)
return dest
}
func ConvertSliceToInterfaceSlice[T any](origin []T) []interface{} {
dest := make([]interface{}, len(origin))
for i, e := range origin {
dest[i] = e
}
return dest
}