user_permission.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_api/models"
  6. "hongze/hongze_api/utils"
  7. "strconv"
  8. )
  9. func CheckUserPermission(userId int) (status int, err error) {
  10. if userId > 0 {
  11. wxUser, err := models.GetWxUserItemByUserId(userId)
  12. if err != nil {
  13. if err.Error() == utils.ErrNoRow() {
  14. status = 40001
  15. err = errors.New("用户信息不存在:userId:" + strconv.Itoa(userId))
  16. return status, err
  17. }
  18. status = 40001
  19. err = errors.New("获取用户信息失败:userId:" + strconv.Itoa(userId) + ";Err:" + err.Error())
  20. return status, err
  21. }
  22. if wxUser == nil {
  23. status = 40001
  24. err = errors.New("获取用户信息失败:userId:" + strconv.Itoa(userId))
  25. return status, err
  26. }
  27. companyId := wxUser.CompanyId
  28. if companyId <= 1 {
  29. status = 40001
  30. return status, err
  31. }
  32. fmt.Println("companyId", companyId)
  33. companyProduct, err := models.GetCompanyById(companyId)
  34. if err != nil {
  35. status = 40001
  36. err = errors.New("获取客户信息失败:userId:" + strconv.Itoa(userId) + ";Err:" + err.Error())
  37. return status, err
  38. }
  39. if len(companyProduct) == 0 {
  40. status = 40001
  41. err = errors.New("客户信息不存在:userId:" + strconv.Itoa(userId))
  42. return status, err
  43. }
  44. for _, v := range companyProduct {
  45. if v.Status == utils.COMPANY_STATUS_FORMAL || //正式
  46. v.Status == utils.COMPANY_STATUS_TRY_OUT || //试用
  47. v.Status == utils.COMPANY_STATUS_FOREVER { //永续
  48. status = 0
  49. break
  50. } else {
  51. status = 40002
  52. err = errors.New("非付费用户" + strconv.Itoa(userId))
  53. }
  54. }
  55. } else {
  56. status = 40001
  57. err = errors.New("用户id错误")
  58. }
  59. return
  60. }