浏览代码

将uuid替换为gid。

paddy 3 年之前
父节点
当前提交
b831b93b88
共有 2 个文件被更改,包括 69 次插入10 次删除
  1. 54 0
      utils/gid.go
  2. 15 10
      utils/utils.go

+ 54 - 0
utils/gid.go

@@ -0,0 +1,54 @@
+package utils
+
+import (
+	"encoding/json"
+	"errors"
+	"fmt"
+	"git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
+	"io/ioutil"
+	"net/http"
+)
+
+var _gidUrl = ""
+var _gidTagPrefix = "s"
+
+//{"code":200,"data":1}
+type Res struct {
+	Code int   `json:"code"`
+	Data int64 `json:"data"`
+}
+
+func GetGid(tag string) (id int64, err error) {
+	if _gidUrl == "" {
+		_gidUrl = config.AppConfig.GetKey("gid_url")
+		_gidTagPrefix = config.AppConfig.GetKey("gid_tag_prefix")
+	}
+
+	req, err := http.NewRequest("GET", _gidUrl+_gidTagPrefix+tag, nil)
+	if err != nil {
+		return
+	}
+	res, err := http.DefaultClient.Do(req)
+	if err != nil {
+		return
+	}
+	if res == nil {
+		err = errors.New("res is nil")
+		return
+	}
+	defer func() {
+		_ = res.Body.Close()
+	}()
+	body, err := ioutil.ReadAll(res.Body)
+	var ret Res
+	err = json.Unmarshal(body, &ret)
+	if err != nil {
+		return
+	}
+	if ret.Code != 200 {
+		err = fmt.Errorf("gid code(%d) error", ret.Code)
+		return
+	}
+	id = ret.Data
+	return
+}

+ 15 - 10
utils/utils.go

@@ -10,6 +10,7 @@ import (
 	"net/url"
 	"net/url"
 	"regexp"
 	"regexp"
 	"strings"
 	"strings"
+	"fmt"
 )
 )
 
 
 const (
 const (
@@ -17,8 +18,12 @@ const (
 )
 )
 
 
 func NewUUID() string {
 func NewUUID() string {
-	//return uuid.NewV4().String()
-	return uuid.New()
+	id, err := GetGid("2")
+	if err != nil {
+		return uuid.New()
+	} else {
+		return fmt.Sprint(id)
+	}
 }
 }
 
 
 func GenerateToken(plain string) string {
 func GenerateToken(plain string) string {
@@ -53,10 +58,10 @@ func FormatForBrowse(agent, val string) string {
 	return val
 	return val
 }
 }
 
 
-func GetHostname(ctx *gin.Context)string{
+func GetHostname(ctx *gin.Context) string {
 	host := ctx.Request.Host
 	host := ctx.Request.Host
 	i := strings.Index(host, ":")
 	i := strings.Index(host, ":")
-	if i > 0{
+	if i > 0 {
 		host = host[:i]
 		host = host[:i]
 	}
 	}
 
 
@@ -67,24 +72,24 @@ func GetHostname(ctx *gin.Context)string{
 * @brief: 把域名分成列表,最小包括部分顶级域名,例如:www.baidu.com 返回[www.baidu.com, baidu.com]
 * @brief: 把域名分成列表,最小包括部分顶级域名,例如:www.baidu.com 返回[www.baidu.com, baidu.com]
 × @param1 hostname: 请求名称
 × @param1 hostname: 请求名称
 */
 */
-func GetHostnames(ctx *gin.Context)[]string{
+func GetHostnames(ctx *gin.Context) []string {
 	hostname := GetHostname(ctx)
 	hostname := GetHostname(ctx)
 	patternstr := `(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})(\.(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})){3}`
 	patternstr := `(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})(\.(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})){3}`
 	reg := regexp.MustCompile(patternstr)
 	reg := regexp.MustCompile(patternstr)
 	if res := reg.FindAllString(hostname, -1); res == nil {
 	if res := reg.FindAllString(hostname, -1); res == nil {
 		arr := []string{}
 		arr := []string{}
 		parts := strings.Split(hostname, ".")
 		parts := strings.Split(hostname, ".")
-		if len(parts) <= 2{
+		if len(parts) <= 2 {
 			arr = append(arr, hostname)
 			arr = append(arr, hostname)
-		}else{
+		} else {
 			arr = append(arr, hostname)
 			arr = append(arr, hostname)
-			for i := 0; i < len(parts) - 2; i++ {
+			for i := 0; i < len(parts)-2; i++ {
 				arr = append(arr, strings.Join(parts[i+1:], "."))
 				arr = append(arr, strings.Join(parts[i+1:], "."))
 			}
 			}
 		}
 		}
-		return  arr
+		return arr
 	} else {
 	} else {
 		// 直接返回ip
 		// 直接返回ip
 		return []string{hostname}
 		return []string{hostname}
 	}
 	}
-}
+}