utils.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. /*
  2. * @description:工具函数
  3. * @Author: CP
  4. * @Date: 2020-09-03 10:08:52
  5. * @FilePath: \construction_management\web\utils\utils.go
  6. */
  7. package utils
  8. import (
  9. "errors"
  10. "fmt"
  11. "strconv"
  12. "strings"
  13. "github.com/iris-contrib/middleware/jwt"
  14. "github.com/kataras/iris/v12"
  15. "go.mod/comm"
  16. "go.mod/conf"
  17. )
  18. // 发送短信
  19. func SendSMS() {
  20. }
  21. // 字符串转换MAP
  22. func StringToMap(str string, split string) map[string]string {
  23. entries := strings.Split(str, split)
  24. strMap := make(map[string]string)
  25. for _, e := range entries {
  26. parts := strings.Split(e, ":")
  27. if len(parts) <= 1 {
  28. strMap["error"] = strings.Replace(parts[0], " ", "", -1)
  29. } else {
  30. strMap[strings.Replace(parts[0], " ", "", -1)] = strings.Replace(parts[1], " ", "", -1)
  31. }
  32. }
  33. return strMap
  34. }
  35. // 获得项目ID
  36. func GetBackstageKey(ctx iris.Context, key string) (string, error) {
  37. //account := ctx.Values().Get("account").(*models.CmProjectAccount)
  38. // fmt.Println(account)
  39. value := ctx.Values().GetString(key)
  40. if value == "" {
  41. return "", errors.New("项目不存在")
  42. }
  43. return value, nil
  44. }
  45. // 获得项目ID
  46. func GetProjectId(ctx iris.Context) (int, error) {
  47. //account := ctx.Values().Get("account").(*models.CmProjectAccount)
  48. // fmt.Println(account)
  49. projectId, err := ctx.Values().GetInt("projectId")
  50. if err != nil {
  51. return 0, errors.New("项目不存在")
  52. }
  53. return projectId, nil
  54. }
  55. // 获得项目账号ID
  56. func GetProjectAccountId(ctx iris.Context) (int, error) {
  57. userInfo := ctx.Values().Get("jwt").(*jwt.Token).Claims.(jwt.MapClaims)
  58. accountId := userInfo["identity"].(string)
  59. uid, err := GetDecryptId(accountId)
  60. // identityIdInt, err := ctx.Values().GetInt("accountId")
  61. if err != nil {
  62. return 0, errors.New("项目账号不存在")
  63. }
  64. return uid, nil
  65. }
  66. // 获得解密后的ID
  67. func GetDecryptId(id string) (int, error) {
  68. if id == "" {
  69. return 0, errors.New("ID 解析错误")
  70. }
  71. id, err := comm.AesDecrypt(id, conf.SignSecret)
  72. if err != nil {
  73. return 0, errors.New("ID 解析错误")
  74. }
  75. idInt, err := strconv.Atoi(id)
  76. if err != nil {
  77. return 0, errors.New("ID 转换错误")
  78. }
  79. return idInt, nil
  80. }
  81. // 生成code
  82. func CreateRuleCode(code int64, count int64, len int) string {
  83. // fmt.Println("rule", rule, "counts", count)
  84. // egRule := strings.Split(rule.Eg, "-")
  85. // for _, value := range egRule {
  86. // if strings.Contains(value, "_") {
  87. // // fmt.Println("rule", rule.Code, count)
  88. // code := fmt.Printf("%0*d", rule.Code, count+1)
  89. // strings.Replace(rule.Eg, )
  90. // }
  91. // }
  92. // fmt.Println("egRule:", egRule)
  93. // return "123"
  94. // var newCode string
  95. if code == 0 {
  96. a := fmt.Sprintf("%0*d", len, count)
  97. return a
  98. } else {
  99. b := fmt.Sprintf("%0*d", len, count+code)
  100. return b
  101. }
  102. }
  103. // // 获得项目ID
  104. // func GetProjectId(ctx iris.Context) (int, error) {
  105. // jwtInfo := ctx.Values().Get("jwt").(*jwt.Token)
  106. // project := jwtInfo.Claims.(jwt.MapClaims)["project"].(string)
  107. // projectId, err := comm.AesDecrypt(project, conf.CookieSecret)
  108. // if err != nil {
  109. // return 0, errors.New("项目不存在")
  110. // }
  111. // projectIdInt, err := strconv.Atoi(projectId)
  112. // if err != nil {
  113. // return 0, errors.New("项目不存在")
  114. // }
  115. // return projectIdInt, nil
  116. // }
  117. // // 获得项目账号ID
  118. // func GetProjectAccountId(ctx iris.Context) (int, error) {
  119. // jwtInfo := ctx.Values().Get("jwt").(*jwt.Token)
  120. // identity := jwtInfo.Claims.(jwt.MapClaims)["identity"].(string)
  121. // identityId, err := comm.AesDecrypt(identity, conf.CookieSecret)
  122. // if err != nil {
  123. // return 0, errors.New("项目账号不存在")
  124. // }
  125. // identityIdInt, err := strconv.Atoi(identityId)
  126. // if err != nil {
  127. // return 0, errors.New("项目账号不存在")
  128. // }
  129. // return identityIdInt, nil
  130. // }