user_permission.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. // HasPermission 是否有权限:1-有权限; 2-无权限; 3-潜在客户未提交申请; 4-潜在客户已提交申请 5-仅有FICC权限
  18. func GetUserRaiPermissionInfo(userId, companyId int) (authInfo models.UserPermissionAuthInfo, permissionArr []string, err error) {
  19. // 用户申请记录
  20. applyCount, e := models.GetApplyRecordCount(userId)
  21. if e != nil && e.Error() != utils.ErrNoRow() {
  22. err = errors.New("获取用户申请信息失败, Err: " + e.Error())
  23. return
  24. }
  25. // 潜在用户
  26. if companyId <= 1 {
  27. authInfo.HasPermission = 3
  28. if applyCount > 0 {
  29. authInfo.HasPermission = 4
  30. }
  31. authInfo.OperationMode = UserPermissionOperationModeApply
  32. authInfo.PopupMsg = UserPermissionPopupMsgApplyActivity
  33. return
  34. }
  35. // 销售信息
  36. ficcSeller, e := models.GetSellerByCompanyIdCheckFicc(companyId, utils.COMPANY_PRODUCT_FICC_ID)
  37. if e != nil && e.Error() != utils.ErrNoRow() {
  38. err = errors.New("获取FICC销售信息失败, Err: " + e.Error())
  39. return
  40. }
  41. raiSeller, e := models.GetSellerByCompanyIdCheckFicc(companyId, utils.COMPANY_PRODUCT_RAI_ID)
  42. if e != nil && e.Error() != utils.ErrNoRow() {
  43. err = errors.New("获取权益销售信息失败, Err: " + e.Error())
  44. return
  45. }
  46. if raiSeller != nil {
  47. authInfo.SellerMobile = raiSeller.Mobile
  48. authInfo.SellerName = raiSeller.RealName
  49. }
  50. // 仅有FICC权限
  51. if ficcSeller != nil && raiSeller == nil {
  52. authInfo.HasPermission = 5
  53. authInfo.OperationMode = UserPermissionOperationModeApply
  54. authInfo.PopupMsg = UserPermissionPopupMsgApplyActivity
  55. return
  56. }
  57. // permissions示例: 医药,消费,科技,智造,策略,专家,买方研选
  58. permissions, e := models.GetCompanyPermission(companyId)
  59. if e != nil {
  60. err = errors.New("获取客户权限失败, Err: " + e.Error())
  61. return
  62. }
  63. if permissions == "" {
  64. // 无权益权限
  65. if raiSeller != nil {
  66. // 有销售信息
  67. authInfo.HasPermission = 2
  68. authInfo.OperationMode = UserPermissionOperationModeCall
  69. authInfo.PopupMsg = UserPermissionPopupMsgCallActivity
  70. return
  71. }
  72. // 无销售信息, 无申请, 视作潜在用户
  73. authInfo.HasPermission = 3
  74. authInfo.OperationMode = UserPermissionOperationModeApply
  75. return
  76. }
  77. // 有基本的权益权限
  78. authInfo.HasPermission = 1
  79. permissionArr = strings.Split(permissions, ",")
  80. return
  81. }