utils.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. "strconv"
  11. "strings"
  12. "github.com/dgrijalva/jwt-go"
  13. "github.com/kataras/iris/v12"
  14. "go.mod/comm"
  15. "go.mod/conf"
  16. )
  17. // 字符串转换MAP
  18. func StringToMap(str string, split string) map[string]string {
  19. entries := strings.Split(str, split)
  20. strMap := make(map[string]string)
  21. for _, e := range entries {
  22. parts := strings.Split(e, ":")
  23. strMap[strings.Replace(parts[0], " ", "", -1)] = strings.Replace(parts[1], " ", "", -1)
  24. }
  25. return strMap
  26. }
  27. // 获得项目ID
  28. func GetProjectId(ctx iris.Context) (int, error) {
  29. jwtInfo := ctx.Values().Get("jwt").(*jwt.Token)
  30. project := jwtInfo.Claims.(jwt.MapClaims)["project"].(string)
  31. projectId, err := comm.AesDecrypt(project, conf.CookieSecret)
  32. if err != nil {
  33. return 0, errors.New("项目不存在")
  34. }
  35. projectIdInt, err := strconv.Atoi(projectId)
  36. if err != nil {
  37. return 0, errors.New("项目不存在")
  38. }
  39. return projectIdInt, nil
  40. }
  41. // 获得项目账号ID
  42. func GetProjectAccountId(ctx iris.Context) (int, error) {
  43. jwtInfo := ctx.Values().Get("jwt").(*jwt.Token)
  44. identity := jwtInfo.Claims.(jwt.MapClaims)["identity"].(string)
  45. identityId, err := comm.AesDecrypt(identity, conf.CookieSecret)
  46. if err != nil {
  47. return 0, errors.New("项目账号不存在")
  48. }
  49. identityIdInt, err := strconv.Atoi(identityId)
  50. if err != nil {
  51. return 0, errors.New("项目账号不存在")
  52. }
  53. return identityIdInt, nil
  54. }