| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- // 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
- }
|