xingzai 1 سال پیش
والد
کامیت
1dd943e5f9
2فایلهای تغییر یافته به همراه256 افزوده شده و 3 حذف شده
  1. 3 3
      controllers/activity.go
  2. 253 0
      services/activity.go

+ 3 - 3
controllers/activity.go

@@ -374,7 +374,6 @@ func (this *ActivityNoLoginController) ActivityListNew() {
 
 	condition = ""
 	//活动可见限制
-	//conditionActivity, err := services.GetActivityonditionList(user, activityTypeId, chartPermissionIds, whichDay, activeState, label, 0, source, keyWord, playBack, 1)
 	conditionActivity, err := services.ActivityConditioninitSql(user, conditioninit, isPower)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
@@ -568,9 +567,10 @@ func (this *ActivityNoLoginController) ActivityListNew() {
 				list[k].VideoDetail = mapActivityVideo[v.ActivityId]
 			}
 		}
-		activityList = append(activityList, services.ActivityButtonShow(list[k], user, permissionArr))
-	}
+		//activityList = append(activityList, services.ActivityButtonShow(list[k], user, permissionArr))
 
+	}
+	activityList = services.ActivityArrButtonShow(list, user, permissionArr)
 	//处理不同的报名方式按钮回显
 	mapActivitySignup, err := services.GetActivitySignupResp(mapActivityId, user)
 	if err != nil {

+ 253 - 0
services/activity.go

@@ -847,6 +847,259 @@ func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem, pe
 	return
 }
 
+func ActivityArrButtonShow(items []*models.ActivityDetail, user *models.WxUserItem, permissionArr []string) (itemsActivity []*models.ActivityListResp) {
+
+	var activityIds []int
+	authInfo, permissionArr, e := GetUserRaiPermissionInfo(user.UserId, user.CompanyId)
+	if e != nil {
+		e = errors.New("获取用户权限失败, Err: " + e.Error())
+		return
+	}
+	activityPointsByUserAllMap := GetActivityPointsByUserAllMap() // 获取对用户进行研选扣点的活动
+	for _, activityDetail := range items {
+
+		//IsShowAppointment       bool                       `description:"是否展示预约纪要"`
+		//IsShowOutboundCall      bool                       `description:"是否展示预约外呼"`
+		//IsShowMeetingReminder   bool                       `description:"是否展示会议提醒"`
+		//IsShowHelpSsk           bool                       `description:"是否展示帮我带问"`
+		//IsShowSignup            bool                       `description:"是否展示我要报名"`
+
+		if strings.Contains(activityDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+			activityDetail.IsResearch = true
+		}
+		//如果是 公司调研电话会:3,或 专家线下沙龙:5  而且  除易董同步过来的以外的研选类型活动
+		if (activityDetail.ActivityTypeId == 3 || activityDetail.ActivityTypeId == 5) && activityDetail.YidongActivityId == "" && strings.Contains(activityDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+			activityDetail.IsResearchSpecial = true
+		}
+		if activityDetail.SiginupDeadline == utils.FormatDateTimeInit { //报名截止时间处理
+			activityDetail.SiginupDeadline = ""
+		}
+		//如果报名截止时间不规范,或者是非研选扣点活动就把截止时间设置为空
+		if activityDetail.CancelDeadline == utils.FormatDateTimeInit || !activityDetail.IsResearchPoints {
+			activityDetail.CancelDeadline = ""
+		}
+
+		activityTimeText := activityDetail.ActivityTimeText
+		activityTimeText = strings.Replace(activityTimeText, "(", "(", -1)
+		activityTimeText = strings.Replace(activityTimeText, ")", ")", -1)
+		activityDetail.ActivityTimeText = activityTimeText
+		var yidongActivityUrl string
+		activityDetail.IsShowAppointment = false
+		//易董的操作按钮都隐藏
+		if activityDetail.YidongActivityId != "" {
+			activityDetail.IsShowSignup = false
+			activityDetail.IsShowDetails = true
+
+			if activityDetail.YidongActivityId != "" {
+				ydTgc, _ := GetYiDongCreateUserInfo(user)
+				yidongLongLink, _ := GetYiDongOriginalLink(activityDetail)
+				if yidongLongLink != "" {
+					yidongActivityUrl = yidongLongLink + "%26source=11%26fromHz=true%26tgc=" + ydTgc
+				}
+			}
+		} else {
+
+			//专家电话会 1
+			if activityDetail.ActivityTypeId == 1 && activityDetail.IsLimitPeople == 0 && (activityDetail.ActiveState == "1" || activityDetail.ActiveState == "2") {
+				activityDetail.IsShowHelpSsk = true
+			}
+			if activityDetail.ActiveState == "1" {
+				//新的是否展示规则
+				if activityDetail.IsCanAppointmentMinutes == 1 {
+					activityDetail.IsShowAppointment = true
+				}
+
+				//专家电话会 1
+				if activityDetail.ActivityTypeId == 1 {
+					if activityDetail.LimitPeopleNum == 0 {
+						activityDetail.IsShowOutboundCall = true
+					} else {
+						activityDetail.IsShowSignup = true
+					}
+					activityDetail.IsShowMeetingReminder = true
+					activityDetail.IsShowHelpSsk = true
+				}
+
+				//分析师电话会 2
+				if activityDetail.ActivityTypeId == 2 {
+					if activityDetail.LimitPeopleNum == 0 {
+						activityDetail.IsShowOutboundCall = true
+					} else {
+						activityDetail.IsShowSignup = true
+					}
+					activityDetail.IsShowMeetingReminder = true
+				}
+
+				if activityDetail.ActivityTypeId == 3 {
+					//司调研电话会(3)、扣点的研选活动只展示我要报名
+					if activityDetail.IsResearchPoints || activityDetail.LimitPeopleNum > 0 {
+						activityDetail.IsShowSignup = true
+					} else {
+						activityDetail.IsShowMeetingReminder = true
+						activityDetail.IsShowOutboundCall = true
+					}
+				}
+
+				//公司线下调研 4
+				if activityDetail.ActivityTypeId == 4 {
+					activityDetail.IsShowSignup = true
+				}
+
+				//专家线下沙龙 5
+				if activityDetail.ActivityTypeId == 5 {
+					activityDetail.IsShowSignup = true
+				}
+
+				//分析师线下沙龙 6
+				if activityDetail.ActivityTypeId == 6 {
+					activityDetail.IsShowSignup = true
+				}
+
+				//分析师电话会(C类) 7
+				if activityDetail.ActivityTypeId == 7 {
+					activityDetail.IsShowSignup = true
+					activityDetail.IsShowMeetingReminder = true
+				}
+
+				//买方线下交流 8 // 查研观向 11.0
+				if activityDetail.ActivityTypeId == 8 {
+					activityDetail.IsShowSignup = true
+				}
+
+				//如果是易董创建的活动,展示我要报名,不展示预约外呼
+				if activityDetail.IsYidongConduct {
+					activityDetail.IsShowSignup = true
+					activityDetail.IsShowOutboundCall = false
+				}
+			}
+		}
+
+		activityDetail.IsResearchPoints = activityPointsByUserAllMap[activityDetail.ActivityId]
+
+		v := activityDetail
+		itemActivity := &models.ActivityListResp{
+			ActivityId:              v.ActivityId,
+			ActivityTypeId:          v.ActivityTypeId,
+			ActivityTypeName:        v.ActivityTypeName,
+			ChartPermissionId:       v.ChartPermissionId,
+			ChartPermissionName:     v.ChartPermissionName,
+			IsLimitPeople:           v.IsLimitPeople,
+			LimitPeopleNum:          v.LimitPeopleNum,
+			LastUpdatedTime:         v.LastUpdatedTime,
+			ActivityTime:            v.ActivityTime,
+			ActivityTimeText:        v.ActivityTimeText,
+			DistinguishedGuest:      v.DistinguishedGuest,
+			Host:                    v.Host,
+			Speaker:                 v.Speaker,
+			MainlandTell:            v.MainlandTell,
+			HongKongTell:            v.HongKongTell,
+			TaiwanTell:              v.TaiwanTell,
+			AmericaTell:             v.AmericaTell,
+			ParticipationCode:       v.ParticipationCode,
+			Theme:                   v.Theme,
+			Expert:                  v.Expert,
+			ActivityName:            v.ActivityName,
+			OnlineParticipation:     v.OnlineParticipation,
+			ReportLink:              v.ReportLink,
+			AppAttendance:           v.AppAttendance,
+			ConferencePassword:      v.ConferencePassword,
+			City:                    v.City,
+			Address:                 v.Address,
+			Highlights:              v.Highlights,
+			Remarks:                 v.Remarks,
+			IsSignup:                v.IsSignup,
+			IsCancelMeetingReminder: v.IsCancelMeetingReminder,
+			IsAppointment:           v.IsAppointment,
+			ActiveState:             v.ActiveState,
+			IsShowSustainable:       v.IsShowSustainable,
+			Description:             v.Description,
+			IsResearch:              v.IsResearch,
+			IsHideAppointment:       v.IsHideAppointment,
+			IsCClassMeeting:         v.IsCClassMeeting,
+			Label:                   v.Label,
+			ImgUrl:                  v.ImgUrl,
+			ImgUrlText:              v.ImgUrlText,
+			ActivityType:            v.ActivityType,
+			IsShowOutboundCall:      v.IsShowOutboundCall,
+			IsShowMeetingReminder:   v.IsShowMeetingReminder,
+			IsShowHelpSsk:           v.IsShowHelpSsk,
+			IsShowSignup:            v.IsShowSignup,
+			IsShowAppointment:       v.IsShowAppointment,
+			IsShowDetails:           v.IsShowDetails,
+			AudioLink:               v.AudioLink,
+			VoiceDetail:             v.VoiceList,
+			VideoDetail:             v.VideoDetail,
+			FileType:                v.FileType,
+			SourceType:              v.SourceType,
+			SignupNum:               v.SignupNum,
+			YidongActivityUrl:       yidongActivityUrl,
+			Explain:                 utils.ACtIVITY_SPECIAL_EXPLAIN,
+			TripImgLink:             v.TripImgLink,
+			Days:                    v.Days,
+			SignupType:              v.SignupType,
+			IsYidongConduct:         v.IsYidongConduct,
+			IsCanOutboundCall:       v.IsCanOutboundCall,
+			TencentConferenceNumber: v.TencentConferenceNumber,
+			IsResearchSpecial:       v.IsResearchSpecial,
+			LinkParticipants:        v.LinkParticipants,
+			IsResearchPoints:        v.IsResearchPoints,
+			IsExternalLabel:         v.IsExternalLabel,
+			SiginupDeadline:         v.SiginupDeadline,
+			CancelDeadline:          v.CancelDeadline,
+		}
+		au := new(models.UserPermissionAuthInfo)
+		au.SellerName = authInfo.SellerName
+		au.SellerMobile = authInfo.SellerMobile
+		au.HasPermission = authInfo.HasPermission
+		au.OperationMode = authInfo.OperationMode
+		if au.HasPermission == 1 {
+			// 非宏观权限进一步判断是否有权限
+			if v.ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, v.ChartPermissionName) {
+				au.HasPermission = 2
+			}
+		}
+
+		// 无权限的弹框提示
+		if au.HasPermission != 1 {
+			if au.OperationMode == UserPermissionOperationModeCall {
+				if v.FileType == 1 {
+					au.PopupMsg = UserPermissionPopupMsgCallMicroVoice
+				} else {
+					au.PopupMsg = UserPermissionPopupMsgCallMicroVideo
+				}
+			} else {
+				if v.FileType == 1 {
+					au.PopupMsg = UserPermissionPopupMsgApplyMicroVoice
+				} else {
+					au.PopupMsg = UserPermissionPopupMsgApplyMicroVideo
+				}
+			}
+		}
+		itemActivity.AuthInfo = au
+		//处理用户已经报名了的行程
+		activityIds = append(activityIds, v.ActivityId)
+		itemsActivity = append(itemsActivity, itemActivity)
+	}
+
+	//处理专项调研
+	UserMap, e := GetSpecialTripUserMap(activityIds, user.UserId)
+	if e != nil {
+		e = errors.New("GetSpecialTripUserMap, Err: " + e.Error())
+		return
+	}
+	for _, v := range itemsActivity {
+		if _, ok := UserMap[v.ActivityId]; ok {
+			v.IsTrip = 1
+		}
+		if v.Days == 0 {
+			v.TripStatus = 1
+		} else {
+			v.TripStatus = 2
+		}
+	}
+	return
+}
+
 func ActivityDetaailShow(activityInfo *models.ActivityListResp) (itemActivity *models.ActivityListResp, err error) {
 	itemActivity = activityInfo
 	if GetShowSustainable() && strings.Contains(itemActivity.ChartPermissionName, "研选") {