xingzai 1 an în urmă
părinte
comite
96be02d70b
4 a modificat fișierele cu 38 adăugiri și 12 ștergeri
  1. 10 5
      controllers/activity.go
  2. 9 6
      models/activity.go
  3. 1 0
      models/activity_signup.go
  4. 18 1
      services/activity.go

+ 10 - 5
controllers/activity.go

@@ -477,12 +477,13 @@ func (this *ActivityController) Detail() {
 	}
 	activityInfo.SignupNum = signupCount
 
-	havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
+	havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 		return
 	}
+	resp.IsResearchSpecial = isResearchSpecial
 	if havePower {
 		resp.HasPermission = 1
 		detailResp := services.ActivityButtonShow(activityInfo, user)
@@ -676,12 +677,13 @@ func (this *ActivityController) SignupAdd() {
 		signupType = 4
 	}
 
-	havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
+	havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 		return
 	}
+	resp.IsResearchSpecial = isResearchSpecial
 	if havePower {
 		item := new(models.CygxActivitySignup)
 		item.RegisterPlatform = utils.REGISTER_PLATFORM
@@ -1063,12 +1065,13 @@ func (this *ActivityController) MeetingReminderAdd() {
 		return
 	}
 
-	havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
+	havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 		return
 	}
+	resp.IsResearchSpecial = isResearchSpecial
 	if havePower {
 		item := new(models.CygxActivityMeetingReminder)
 		item.RegisterPlatform = utils.REGISTER_PLATFORM
@@ -1258,12 +1261,13 @@ func (this *ActivityController) ActivityAppointmentAdd() {
 		return
 	}
 
-	havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
+	havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 		return
 	}
+	resp.IsResearchSpecial = isResearchSpecial
 	if havePower {
 		item := new(models.CygxActivityAppointment)
 		item.RegisterPlatform = utils.REGISTER_PLATFORM
@@ -1464,12 +1468,13 @@ func (this *ActivityController) AskAdd() {
 	}
 	resp := new(models.SignupStatus)
 
-	havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
+	havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 		return
 	}
+	resp.IsResearchSpecial = isResearchSpecial
 	if havePower {
 		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
 		if err != nil {

+ 9 - 6
models/activity.go

@@ -145,6 +145,7 @@ type ActivityDetail struct {
 	IsYidongConduct         bool                       `description:"是否属于易董办会 1:是 、0:否"`
 	IsCanOutboundCall       int                        `description:"是否提供外呼 1:是 、0:否"`
 	TencentConferenceNumber string                     `description:"腾讯会议号"`
+	IsResearchSpecial       bool                       `description:"是否属于特殊的研选"`
 }
 
 // 活动详情
@@ -214,6 +215,7 @@ type ActivityListResp struct {
 	IsYidongConduct         bool                       `description:"是否属于易董办会 1:是 、0:否"`
 	IsCanOutboundCall       int                        `description:"是否提供外呼 1:是 、0:否"`
 	TencentConferenceNumber string                     `description:"腾讯会议号"`
+	IsResearchSpecial       bool                       `description:"是否属于特殊的研选"`
 }
 
 type ActivityArticleResp struct {
@@ -223,12 +225,13 @@ type ActivityArticleResp struct {
 }
 
 type CygxActivityResp struct {
-	HasPermission int    `description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请"`
-	PopupMsg      string `description:"权限弹窗信息"`
-	SellerMobile  string `description:"销售电话"`
-	SellerName    string `description:"销售姓名"`
-	IsResearch    bool   `description:"是否属于研选"`
-	Detail        *ActivityListResp
+	HasPermission     int    `description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请"`
+	PopupMsg          string `description:"权限弹窗信息"`
+	SellerMobile      string `description:"销售电话"`
+	SellerName        string `description:"销售姓名"`
+	IsResearch        bool   `description:"是否属于研选"`
+	IsResearchSpecial bool   `description:"是否属于特殊的研选"`
+	Detail            *ActivityListResp
 }
 
 // 列表

+ 1 - 0
models/activity_signup.go

@@ -40,6 +40,7 @@ type SignupStatus struct {
 	GoOutboundMobile  bool   `description:"是否去绑定手机号"`
 	GoBindEmail       bool   `description:"是否去绑定邮箱"`
 	IsResearch        bool   `description:"是否属于研选"`
+	IsResearchSpecial bool   `description:"是否属于特殊的研选"`
 }
 type ActivitySingnupRep struct {
 	ActivityId int `description:"活动id"`

+ 18 - 1
services/activity.go

@@ -456,6 +456,10 @@ func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem) (i
 	if strings.Contains(articleDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 		articleDetail.IsResearch = true
 	}
+	//如果是 公司调研电话会:3,或 专家线下沙龙:5  而且  除易董同步过来的以外的研选类型活动,必须要有研选的正式权限
+	if (articleDetail.ActivityTypeId == 3 || articleDetail.ActivityTypeId == 5) && articleDetail.YidongActivityId == "" && strings.Contains(articleDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+		articleDetail.IsResearchSpecial = true
+	}
 
 	activityTimeText := articleDetail.ActivityTimeText
 	activityTimeText = strings.Replace(activityTimeText, "(", "(", -1)
@@ -611,6 +615,7 @@ func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem) (i
 		IsYidongConduct:         v.IsYidongConduct,
 		IsCanOutboundCall:       v.IsCanOutboundCall,
 		TencentConferenceNumber: v.TencentConferenceNumber,
+		IsResearchSpecial:       v.IsResearchSpecial,
 	}
 	au := new(models.UserPermissionAuthInfo)
 	au.SellerName = authInfo.SellerName
@@ -816,9 +821,13 @@ func GetIndustryNewLabelMap(industryIds []int) (labelMap map[int]bool, err error
 }
 
 // GetSpecialDetailUserPower 处理用户查看详情的权限
-func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.ActivityDetail) (havePower bool, err error) {
+func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.ActivityDetail) (havePower, isResearchSpecial bool, err error) {
 	var companyDetailStatus string
 	var userTypeStr string
+	//如果是 公司调研电话会:3,或 专家线下沙龙:5  而且  除易董同步过来的以外的研选类型活动,必须要有研选的正式权限
+	if (activityInfo.ActivityTypeId == 3 || activityInfo.ActivityTypeId == 5) && activityInfo.YidongActivityId == "" && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+		isResearchSpecial = true
+	}
 	if GetBelongingRai(user.Mobile) || activityInfo.ChartPermissionName == utils.HONG_GUAN_NAME {
 		havePower = true
 		return
@@ -856,6 +865,14 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
 	if permissionStr == "" {
 		return
 	}
+	//如果是 公司调研电话会:3,或 专家线下沙龙:5  而且  除易董同步过来的以外的研选类型活动,必须要有研选的正式权限
+	if isResearchSpecial {
+		if !strings.Contains(permissionStrZhengShi, activityInfo.ChartPermissionName) {
+			havePower = false
+			return
+		}
+	}
+
 	//如果是易董的活动且属于研选类型,只要开通任何权限就可以查看详情
 	if activityInfo.YidongActivityId != "" && permissionStr != "" && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 		havePower = true