Sfoglia il codice sorgente

Merge branch 'cygx_10.5.4' of http://8.136.199.33:3000/cxzhang/hongze_clpt

xingzai 1 anno fa
parent
commit
deccaa3d31

+ 17 - 8
controllers/activity.go

@@ -358,7 +358,7 @@ func (this *ActivityController) ActivityListNew() {
 				list[k].VideoDetail = mapActivityVideo[v.ActivityId]
 			}
 		}
-		activityList = append(activityList, services.ActivityButtonShow(list[k], user))
+		activityList = append(activityList, services.ActivityButtonShow(list[k], user, permissionArr))
 	}
 
 	//处理不同的报名方式按钮回显
@@ -477,15 +477,17 @@ 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)
+		//permissionArr := make([]string, 0)
+		detailResp := services.ActivityButtonShow(activityInfo, user, make([]string, 0))
 		detailResp, err = services.ActivityDetaailShow(detailResp)
 		if err != nil {
 			br.Msg = "获取信息失败"
@@ -676,12 +678,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 +1066,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 +1262,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 +1469,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 {
@@ -1718,6 +1724,9 @@ func (this *ActivityController) ActivityListSearch() {
 		// 判断是否属于研选类型的活动
 		if strings.Contains(v.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 			item.IsResearch = true
+			if (v.ActivityTypeId == 3 || v.ActivityTypeId == 5) && v.YidongActivityId == "" && strings.Contains(v.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) && utils.InArrayByStr(permissionArr, utils.CHART_PERMISSION_NAME_MF_YANXUAN) {
+				item.IsResearchSpecial = true
+			}
 		}
 		if v.VoiceList != nil || v.VideoDetail != nil {
 			item.AudioLink = true
@@ -2008,7 +2017,7 @@ func (this *ActivityController) ScheduleList() {
 		}
 		v.SignupType = mapActivitySignup[v.ActivityId]
 		//处理列表的标签是否展示逻辑
-		resp.List = append(resp.List, services.ActivityButtonShow(v, user))
+		resp.List = append(resp.List, services.ActivityButtonShow(v, user, make([]string, 0)))
 	}
 	resp.Paging = page
 	br.Ret = 200

+ 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"`

+ 1 - 0
models/resource_data.go

@@ -67,6 +67,7 @@ type CygxResourceDataResp struct {
 	IsYidongConduct         bool                       `description:"是否属于易董办会 1:是 、0:否"`
 	IsCanOutboundCall       int                        `description:"是否提供外呼 1:是 、0:否"`
 	TencentConferenceNumber string                     `description:"腾讯会议号"`
+	IsResearchSpecial       bool                       `description:"是否属于特殊的研选"`
 }
 
 type HomeResourceDataListResp struct {

+ 29 - 7
services/activity.go

@@ -446,7 +446,7 @@ func GetActivityVideoResp(mapActivityId []int) (mapItem map[int]*models.CygxActi
 	return
 }
 
-func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem) (itemActivity *models.ActivityListResp) {
+func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem, permissionArr []string) (itemActivity *models.ActivityListResp) {
 	articleDetail := item
 	//IsShowAppointment       bool                       `description:"是否展示预约纪要"`
 	//IsShowOutboundCall      bool                       `description:"是否展示预约外呼"`
@@ -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) && utils.InArrayByStr(permissionArr, utils.CHART_PERMISSION_NAME_MF_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,13 +821,33 @@ 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
 	if GetBelongingRai(user.Mobile) || activityInfo.ChartPermissionName == utils.HONG_GUAN_NAME {
 		havePower = true
 		return
 	}
+	userType, permissionStr, permissionStrZhengShi, e := GetUserTypeZhengShi(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
+		return
+	}
+	//如果是 公司调研电话会:3,或 专家线下沙龙:5  而且  除易董同步过来的以外的研选类型活动,必须要有研选的正式权限
+	if (activityInfo.ActivityTypeId == 3 || activityInfo.ActivityTypeId == 5) && activityInfo.YidongActivityId == "" && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+		isResearchSpecial = true
+	}
+	//如果是 公司调研电话会:3,或 专家线下沙龙:5  而且  除易董同步过来的以外的研选类型活动,必须要有研选的正式权限
+	if isResearchSpecial {
+		if !strings.Contains(permissionStr, utils.CHART_PERMISSION_NAME_YANXUAN) {
+			//如果连试用权限都没有,那么久按照普通的研选样式展示
+			isResearchSpecial = false
+		}
+		if !strings.Contains(permissionStrZhengShi, activityInfo.ChartPermissionName) {
+			havePower = false
+			return
+		}
+	}
 	//处理决策人可见权限
 	if user.IsMaker == 0 && activityInfo.IsMakerShow == 1 {
 		havePower = false
@@ -848,14 +873,11 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
 			return
 		}
 	}
-	userType, permissionStr, permissionStrZhengShi, e := GetUserTypeZhengShi(user.CompanyId)
-	if e != nil {
-		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
-		return
-	}
+
 	if permissionStr == "" {
 		return
 	}
+
 	//如果是易董的活动且属于研选类型,只要开通任何权限就可以查看详情
 	if activityInfo.YidongActivityId != "" && permissionStr != "" && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 		havePower = true

+ 1 - 1
services/resource_data.go

@@ -207,7 +207,7 @@ func GetResourceDataList(condition string, pars []interface{}, startSize, pageSi
 		}
 		var activityListRersp []*models.ActivityListResp
 		for _, v := range activityList {
-			activityListRersp = append(activityListRersp, ActivityButtonShow(v, user))
+			activityListRersp = append(activityListRersp, ActivityButtonShow(v, user, make([]string, 0)))
 		}
 		//处理不同的报名方式按钮回显
 		mapActivitySignup, e := GetActivitySignupResp(activityIds, user)