代码拉取完成,页面将自动刷新
package utils
import (
"crypto/md5"
"encoding/base64"
"fmt"
"gopkg.in/yaml.v3"
"io/ioutil"
"strconv"
"strings"
)
func Base64Encode(s string) string {
return base64.StdEncoding.EncodeToString([]byte(s))
}
func Base64Decode(s string) string {
decoded, _ := base64.StdEncoding.DecodeString(s)
return string(decoded)
}
func InStringArray(s string, arr []string) bool {
for _, s1 := range arr {
if s == s1 {
return true
}
}
return false
}
func NewMd5Password(password string, secret string) string {
return Md5Sum(secret + Md5Sum(password) + secret)
}
func Md5Sum(s string) string {
return fmt.Sprintf("%x", md5.Sum([]byte(s)))
}
func FmtPageParams(pageNum, pageSize int64) (int64, int64) {
if pageSize <= 0 || pageSize > 1000 {
pageSize = 1000
}
if pageNum <= 0 {
pageNum = 1
}
return pageNum, pageSize
}
//比较版本,-1:小于,0:相等,1:大于
// v1.1.1 compare v1.2.1
func CompareVersion(ver, cVer string) int {
if strings.HasPrefix(ver,"v"){
ver=ver[1:]
}
if strings.HasPrefix(cVer,"v"){
cVer=cVer[1:]
}
verArr := strings.Split(ver, ".") //当前的版本
cVerArr := strings.Split(cVer, ".") //比较的版本
var max int
if len(verArr) >= len(cVerArr) {
max = len(verArr)
} else {
max = len(cVerArr)
}
for i := 0; i < max; i++ {
cv := 0
v := 0
if i >= len(verArr) {
v = 0
} else {
v, _ = strconv.Atoi(verArr[i])
}
if i >= len(cVerArr) {
cv = 0
} else {
cv, _ = strconv.Atoi(cVerArr[i])
}
if v < cv {
return -1
}
if v > cv {
return 1
}
}
return 0
}
func ReadYaml(data interface{}, yamlContent string) error {
err := yaml.Unmarshal([]byte(yamlContent), data)
if err != nil {
return err
}
return nil
}
func ReadYamlFile(data interface{}, configPath string) error {
yamlFile, err := ioutil.ReadFile(configPath)
if err != nil {
return err
}
err = yaml.Unmarshal(yamlFile, data)
if err != nil {
return err
}
return nil
}
func Interface2Int64(d interface{}) int64 {
var r int64
switch d.(type) {
case float32:
r, _ = strconv.ParseInt(fmt.Sprint(d), 10, 64)
case float64:
r, _ = strconv.ParseInt(fmt.Sprint(d), 10, 64)
case int:
r = int64(d.(int))
case int8:
r = int64(d.(int8))
case int16:
r = int64(d.(int16))
case int32:
r = int64(d.(int32))
case int64:
r = d.(int64)
case string:
r, _ = strconv.ParseInt(d.(string), 10, 64)
}
return r
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。