// Copyright (c) 2015 qianqiusoft.com // Licensed to You under the GNU Affero GPL v3 // See the LICENSE file at git.qianqiusoft.com/qianqiusoft/light-vocation/LICENSE // http://www.gnu.org/licenses/why-affero-gpl.en.html package utils import ( "fmt" "net/url" "strings" "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs" ) func SubString(str string, begin, length int) (substr string) { //将字符串的转换成[]rune rs := []rune(str) lth := len(rs) // 简单的越界判断 if begin < 0 { begin = 0 } if begin >= lth { begin = lth } end := begin + length if end > lth { end = lth } // 返回子串 return string(rs[begin:end]) } func FormatCamelString(str string) string { res := "" array := strings.Split(str, "_") for _, val := range array { if len(val) > 0 { res += strings.ToUpper(SubString(val, 0, 1)) + strings.ToLower(SubString(val, 1, len(str)-1)) } } return res } func FormatFieldAndJsonString(columnName string) string { return strings.ToLower(columnName) } func GetSizeOfColumn(size int) string { //fmt.Printf(".............size is %d", size) if size <= 0 { return "" } else { ss := fmt.Sprintf("size(%d);", size) //fmt.Println(ss) return ss } } func ConvertColTypeToDBType(colType string) string { colType = strings.ToLower(colType) switch colType { case "string": return "varchar" case "text": return "text" case "datetime": return "datetime" default: return colType } } func ConvertColType(colType string) string { colType = strings.ToLower(colType) switch colType { case "string-text": return "string" case "time.Time-date": return "time.Time" case "text": return "string" case "string": return "string" case "datetime": return "time.Time" default: return colType } } func TotalPage(record, size int) int { tp := record / size if tp < 0 { return 1 } if record%size == 0 { return tp } return tp + 1 } func FormatForBrowse(agent, val string) string { if strings.Contains(strings.ToLower(agent), "safari/") && !strings.Contains(strings.ToLower(agent), "chrome/") { logs.Debug("Safari浏览器编码") } else if strings.Contains(strings.ToLower(agent), "firefox/") { logs.Debug("Firefox浏览器编码") } else if strings.Contains(strings.ToLower(agent), "chrome/") && strings.Contains(strings.ToLower(agent), "safari/") && !strings.Contains(strings.ToLower(agent), "edge/") { logs.Debug("Chrome浏览器编码") } else { logs.Debug("IE浏览器编码") val = url.QueryEscape(val) val = strings.Replace(val, "+", "%20", -1) } return val }