user_permission.go 3.2 KB

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