user_permission.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package services
  2. import (
  3. "errors"
  4. "hongze/hongze_cygx/models"
  5. "hongze/hongze_cygx/utils"
  6. "strings"
  7. )
  8. var (
  9. UserPermissionOperationModeApply = "Apply"
  10. UserPermissionOperationModeCall = "Call"
  11. UserPermissionPopupMsgApplyActivity = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
  12. UserPermissionPopupMsgCallActivity = "您暂无权限参加此活动,若想参加可以联系对口销售"
  13. UserPermissionPopupMsgApplyMicroVideo = "您暂无权限查看此视频,若想查看可以申请开通对应的试用权限"
  14. UserPermissionPopupMsgCallMicroVideo = "您暂无权限查看此视频若想查看可以联系对口销售"
  15. )
  16. // GetUserRaiPermissionInfo 获取权限类型及信息
  17. func GetUserRaiPermissionInfo(userId, companyId int) (authInfo models.UserPermissionAuthInfo, permissionArr []string, err error) {
  18. // 用户申请记录
  19. applyCount, e := models.GetApplyRecordCount(userId)
  20. if e != nil && e.Error() != utils.ErrNoRow() {
  21. err = errors.New("获取用户申请信息失败, Err: " + e.Error())
  22. return
  23. }
  24. // 潜在用户
  25. if companyId <= 1 {
  26. authInfo.HasPermission = 3
  27. if applyCount > 0 {
  28. authInfo.HasPermission = 4
  29. }
  30. authInfo.OperationMode = UserPermissionOperationModeApply
  31. authInfo.PopupMsg = UserPermissionPopupMsgApplyActivity
  32. return
  33. }
  34. // 销售信息
  35. ficcSeller, e := models.GetSellerByCompanyIdCheckFicc(companyId, utils.COMPANY_PRODUCT_FICC_ID)
  36. if e != nil && e.Error() != utils.ErrNoRow() {
  37. err = errors.New("获取FICC销售信息失败, Err: " + e.Error())
  38. return
  39. }
  40. raiSeller, e := models.GetSellerByCompanyIdCheckFicc(companyId, utils.COMPANY_PRODUCT_RAI_ID)
  41. if e != nil && e.Error() != utils.ErrNoRow() {
  42. err = errors.New("获取权益销售信息失败, Err: " + e.Error())
  43. return
  44. }
  45. if raiSeller != nil {
  46. authInfo.SellerMobile = raiSeller.Mobile
  47. authInfo.SellerName = raiSeller.RealName
  48. }
  49. // permissions示例: 医药,消费,科技,智造,策略,专家,买方研选
  50. permissions, e := models.GetCompanyPermission(companyId)
  51. if e != nil {
  52. err = errors.New("获取客户权限失败, Err: " + e.Error())
  53. return
  54. }
  55. if permissions == "" {
  56. // 试用已申请过
  57. if applyCount > 0 {
  58. authInfo.HasPermission = 4
  59. return
  60. }
  61. // 仅有FICC权限
  62. if ficcSeller != nil && raiSeller == nil {
  63. authInfo.HasPermission = 5
  64. return
  65. }
  66. // 无权益权限
  67. if raiSeller != nil {
  68. // 有销售信息
  69. authInfo.HasPermission = 2
  70. authInfo.OperationMode = UserPermissionOperationModeCall
  71. authInfo.PopupMsg = UserPermissionPopupMsgCallActivity
  72. return
  73. }
  74. // 无销售信息, 无申请
  75. authInfo.HasPermission = 3
  76. return
  77. }
  78. // 有基本的权益权限
  79. authInfo.HasPermission = 1
  80. permissionArr = strings.Split(permissions, ",")
  81. return
  82. }