utils.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package utils
  2. import (
  3. "crypto/hmac"
  4. "crypto/sha1"
  5. "encoding/hex"
  6. "git.qianqiusoft.com/qianqiusoft/go-uuid/uuid"
  7. "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
  8. "net/url"
  9. "strings"
  10. )
  11. const (
  12. hmac_key = "hmac_key_"
  13. )
  14. func NewUUID() string {
  15. //return uuid.NewV4().String()
  16. return uuid.New()
  17. }
  18. func GenerateToken(plain string) string {
  19. hash := hmac.New(sha1.New, []byte(hmac_key))
  20. hash.Write([]byte(plain))
  21. return hex.EncodeToString(hash.Sum(nil))
  22. }
  23. func TotalPage(record, size int) int {
  24. tp := record / size
  25. if tp < 0 {
  26. return 1
  27. }
  28. if record%size == 0 {
  29. return tp
  30. }
  31. return tp + 1
  32. }
  33. func FormatForBrowse(agent, val string) string {
  34. if strings.Contains(strings.ToLower(agent), "safari/") && !strings.Contains(strings.ToLower(agent), "chrome/") {
  35. logs.Debug("Safari浏览器编码")
  36. } else if strings.Contains(strings.ToLower(agent), "firefox/") {
  37. logs.Debug("Firefox浏览器编码")
  38. } else if strings.Contains(strings.ToLower(agent), "chrome/") && strings.Contains(strings.ToLower(agent), "safari/") && !strings.Contains(strings.ToLower(agent), "edge/") {
  39. logs.Debug("Chrome浏览器编码")
  40. } else {
  41. logs.Debug("IE浏览器编码")
  42. val = url.QueryEscape(val)
  43. val = strings.Replace(val, "+", "%20", -1)
  44. }
  45. return val
  46. }