Browse Source

Merge branch 'master' of http://8.136.199.33:3000/cxzhang/hongze_clpt into cygx_11.0

xingzai 1 year ago
parent
commit
04f0e4a058

+ 17 - 4
controllers/activity.go

@@ -1222,12 +1222,19 @@ func (this *ActivityController) SignupCancel() {
 		br.ErrMsg = "操作失败,Err:" + errInfo.Error()
 		return
 	}
-	checkTime, _ := services.CheckSiginupDeadline(activityInfo)
-	if !checkTime {
-		br.Msg = "报名名单已提交举办方,若想取消,请联系对口销售"
-		br.ErrMsg = "报名名单已提交举办方,若想取消,请联系对口销售"
+	//checkTime, _ := services.CheckSiginupDeadline(activityInfo)
+	//if !checkTime {
+	//	br.Msg = "报名名单已提交举办方,若想取消,请联系对口销售"
+	//	br.ErrMsg = "报名名单已提交举办方,若想取消,请联系对口销售"
+	//	return
+	//}
+	cancelDeadlineMsg := services.CheckCancelDeadline(activityInfo)
+	if cancelDeadlineMsg != "" {
+		br.Msg = cancelDeadlineMsg
+		br.ErrMsg = cancelDeadlineMsg
 		return
 	}
+
 	resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
 	if time.Now().After(resultTime.Add(-time.Minute * 60)) {
 		if signupType == 1 {
@@ -2315,6 +2322,12 @@ func (this *ActivityController) Check() {
 	}
 	//这里的文案顺序提示 权限>时间>研选扣点>邮箱绑定。
 	resp := new(models.ActivityCheck)
+	resp.CancelPopupMsg, err = services.ActivityCancelDeadlineMsg(activityInfo) //处理取消报名截止时间的弹窗文案
+	if err != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "操作失败,Err:" + err.Error()
+		return
+	}
 	hasPermission := 0
 	havePower, isResearchSpecial, err := services.GetActivityDetailUserPower(user, activityInfo)
 	if err != nil {

+ 18 - 0
models/activity.go

@@ -151,6 +151,7 @@ type ActivityDetail struct {
 	SiginupDeadline         string                     `description:"报名截止时间"`
 	IsExternalLabel         bool                       `description:"是否为外部资源"`
 	IsResearchPoints        bool                       `description:"是否为研选扣点"`
+	CancelDeadline          string                     `description:"取消报名截止时间"`
 }
 
 // 活动详情
@@ -227,12 +228,14 @@ type ActivityListResp struct {
 	IsExternalLabel         bool                       `description:"是否为外部资源"`
 	IsResearchPoints        bool                       `description:"是否为研选扣点"`
 	SiginupDeadline         string                     `description:"报名截止时间"`
+	CancelDeadline          string                     `description:"取消报名截止时间"`
 }
 
 type ActivityCheck struct {
 	CheckPermission   bool   `description:"权限是否通过校验"`
 	HasPermission     int    `description:"操作方式,1:有该行业权限,正常展示,2:无该行业权限,3:潜在客户,未提交过申请,4:潜在客户,已提交过申请"`
 	PopupMsg          string `description:"权限弹窗信息"`
+	CancelPopupMsg    string `description:"取消报名时间弹窗信息"`
 	SellerMobile      string `description:"销售电话"`
 	SellerName        string `description:"销售姓名"`
 	Mobile            string `description:"手机号"`
@@ -428,6 +431,7 @@ func GetActivitySpecialSearcheList(condition string, pars []interface{}, conditi
             art.city,
             art.is_research_points,
             art.siginup_deadline,
+            art.cancel_deadline,
 			art.activity_time 
 		FROM
 			cygx_activity AS art
@@ -463,6 +467,7 @@ func GetActivitySpecialSearcheList(condition string, pars []interface{}, conditi
 			"",
 			"",
 			"",
+			"",
 			art.activity_time 
 		FROM
 			cygx_activity_special AS art
@@ -559,6 +564,7 @@ func GetScheduleAndSpecilList(condition string, pars []interface{}, conditionSpe
 			art.is_yidong_conduct,
 			art.is_can_outbound_call,
 			art.is_research_points,
+			art.cancel_deadline,
 			art.host 
 		FROM
 			cygx_activity AS art
@@ -596,6 +602,7 @@ func GetScheduleAndSpecilList(condition string, pars []interface{}, conditionSpe
 			"",
 			"",
 			"",
+			"",
 			art.host 
 		FROM
 			cygx_activity_special AS art
@@ -609,3 +616,14 @@ func GetScheduleAndSpecilList(condition string, pars []interface{}, conditionSpe
 	_, err = o.Raw(sql, pars, parsSpecil, startSize, pageSize).QueryRows(&items)
 	return
 }
+
+// 列表
+func GetActivityListByCondition(condition string, pars []interface{}) (items []*CygxActivity, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_activity WHERE  1 =1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 8 - 7
models/activity_points_set.go

@@ -19,13 +19,14 @@ type CygxActivityPointsSet struct {
 }
 
 type CygxActivityPointsSetRsq struct {
-	ActivityId       int    `gorm:"column:activity_id;NOT NULL" json:"ActivityId"`                        // 活动ID
-	PointsObject     int    `gorm:"column:points_object;default:1;NOT NULL" json:"PointsObject"`          // 扣点对象,1:参会人、2:办会人、3:办会人和参会人
-	CompanyId        int    `gorm:"column:company_id;default:0;NOT NULL" json:"CompanyId"`                // 公司ID
-	CompanyName      string `gorm:"column:company_name;NOT NULL" json:"CompanyName"`                      // 公司名称
-	UserPointsNum    string `gorm:"column:user_points_num;default:0;NOT NULL" json:"UserPointsNum"`       // 参会人扣点数量
-	PointsType       int    `gorm:"column:points_type;default:0;NOT NULL" json:"PointsType"`              // 扣点形式,1:报名即扣点,2:到会即扣点
-	CompanyPointsNum string `gorm:"column:company_points_num;default:0;NOT NULL" json:"CompanyPointsNum"` // 办会人扣点数量
+	ActivityId         int    `gorm:"column:activity_id;NOT NULL" json:"ActivityId"`                        // 活动ID
+	PointsObject       int    `gorm:"column:points_object;default:1;NOT NULL" json:"PointsObject"`          // 扣点对象,1:参会人、2:办会人、3:办会人和参会人
+	CompanyId          int    `gorm:"column:company_id;default:0;NOT NULL" json:"CompanyId"`                // 公司ID
+	CompanyName        string `gorm:"column:company_name;NOT NULL" json:"CompanyName"`                      // 公司名称
+	UserPointsNum      string `gorm:"column:user_points_num;default:0;NOT NULL" json:"UserPointsNum"`       // 参会人扣点数量
+	PointsType         int    `gorm:"column:points_type;default:0;NOT NULL" json:"PointsType"`              // 扣点形式,1:报名即扣点,2:到会即扣点
+	CompanyPointsNum   string `gorm:"column:company_points_num;default:0;NOT NULL" json:"CompanyPointsNum"` // 办会人扣点数量
+	CancelDeadlineType int    `description:"取消报名截止时间类型,0:不设置,1:同报名截止时间, 2:24小时之前、3:48小时之前"`
 }
 
 type YanXuanActivityPointsRedis struct {

+ 63 - 52
services/activity.go

@@ -497,6 +497,7 @@ func HandleActivityTypeHomeList(listType []*models.ActivityTypeHome, listActivit
 		return
 	}
 
+	activityPointsByUserAllMap := GetActivityPointsByUserAllMap() // 获取对用户进行研选扣点的活动
 	mapkeyWord := make(map[string]string)
 	for _, v := range listActivity {
 		if v.Label == "" {
@@ -507,6 +508,7 @@ func HandleActivityTypeHomeList(listType []*models.ActivityTypeHome, listActivit
 			v.ActivityTypeId = 2
 		}
 		item := new(models.CygxActivityLabelList)
+		item.IsResearchPoints = activityPointsByUserAllMap[v.ActivityId]
 		item.KeyWord = LabelStr(v.Label, v.IsShowSubjectName, v.TemporaryLabel)
 		if _, ok := mapkeyWord[fmt.Sprint(v.ActivityTypeId, "-", item.KeyWord)]; ok {
 			continue
@@ -520,9 +522,9 @@ func HandleActivityTypeHomeList(listType []*models.ActivityTypeHome, listActivit
 		if v.IsExternalLabel > 0 {
 			item.IsExternalLabel = true
 		}
-		if v.IsResearchPoints > 0 {
-			item.IsResearchPoints = true
-		}
+		//if v.IsResearchPoints > 0 {
+		item.IsResearchPoints = activityPointsByUserAllMap[v.ActivityId]
+		//}
 
 		item.City = v.City
 		if utf8.RuneCountInString(v.City) != 2 {
@@ -594,37 +596,44 @@ func GetActivityVideoResp(mapActivityId []int) (mapItem map[int]*models.CygxActi
 }
 
 func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem, permissionArr []string) (itemActivity *models.ActivityListResp) {
-	articleDetail := item
+	activityDetail := item
 	//IsShowAppointment       bool                       `description:"是否展示预约纪要"`
 	//IsShowOutboundCall      bool                       `description:"是否展示预约外呼"`
 	//IsShowMeetingReminder   bool                       `description:"是否展示会议提醒"`
 	//IsShowHelpSsk           bool                       `description:"是否展示帮我带问"`
 	//IsShowSignup            bool                       `description:"是否展示我要报名"`
-	if strings.Contains(articleDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
-		articleDetail.IsResearch = true
+
+	activityPointsByUserAllMap := GetActivityPointsByUserAllMap() // 获取对用户进行研选扣点的活动
+
+	if strings.Contains(activityDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+		activityDetail.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
+	if (activityDetail.ActivityTypeId == 3 || activityDetail.ActivityTypeId == 5) && activityDetail.YidongActivityId == "" && strings.Contains(activityDetail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) && utils.InArrayByStr(permissionArr, utils.CHART_PERMISSION_NAME_MF_YANXUAN) {
+		activityDetail.IsResearchSpecial = true
+	}
+	if activityDetail.SiginupDeadline == utils.FormatDateTimeInit { //报名截止时间处理
+		activityDetail.SiginupDeadline = ""
 	}
-	if articleDetail.SiginupDeadline == utils.FormatDateTimeInit { //报名截止时间处理
-		articleDetail.SiginupDeadline = ""
+	//如果报名截止时间不规范,或者是非研选扣点活动就把截止时间设置为空
+	if activityDetail.CancelDeadline == utils.FormatDateTimeInit || !activityDetail.IsResearchPoints {
+		activityDetail.CancelDeadline = ""
 	}
 
-	activityTimeText := articleDetail.ActivityTimeText
+	activityTimeText := activityDetail.ActivityTimeText
 	activityTimeText = strings.Replace(activityTimeText, "(", "(", -1)
 	activityTimeText = strings.Replace(activityTimeText, ")", ")", -1)
-	articleDetail.ActivityTimeText = activityTimeText
+	activityDetail.ActivityTimeText = activityTimeText
 	var yidongActivityUrl string
-	articleDetail.IsShowAppointment = false
+	activityDetail.IsShowAppointment = false
 	//易董的操作按钮都隐藏
-	if articleDetail.YidongActivityId != "" {
-		articleDetail.IsShowSignup = false
-		articleDetail.IsShowDetails = true
+	if activityDetail.YidongActivityId != "" {
+		activityDetail.IsShowSignup = false
+		activityDetail.IsShowDetails = true
 
-		if articleDetail.YidongActivityId != "" {
+		if activityDetail.YidongActivityId != "" {
 			ydTgc, _ := GetYiDongCreateUserInfo(user)
-			yidongLongLink, _ := GetYiDongOriginalLink(articleDetail)
+			yidongLongLink, _ := GetYiDongOriginalLink(activityDetail)
 			if yidongLongLink != "" {
 				yidongActivityUrl = yidongLongLink + "%26source=11%26fromHz=true%26tgc=" + ydTgc
 			}
@@ -632,79 +641,80 @@ func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem, pe
 	} else {
 
 		//专家电话会 1
-		if articleDetail.ActivityTypeId == 1 && articleDetail.IsLimitPeople == 0 && (articleDetail.ActiveState == "1" || articleDetail.ActiveState == "2") {
-			articleDetail.IsShowHelpSsk = true
+		if activityDetail.ActivityTypeId == 1 && activityDetail.IsLimitPeople == 0 && (activityDetail.ActiveState == "1" || activityDetail.ActiveState == "2") {
+			activityDetail.IsShowHelpSsk = true
 		}
-		if articleDetail.ActiveState == "1" {
+		if activityDetail.ActiveState == "1" {
 			//新的是否展示规则
-			if articleDetail.IsCanAppointmentMinutes == 1 {
-				articleDetail.IsShowAppointment = true
+			if activityDetail.IsCanAppointmentMinutes == 1 {
+				activityDetail.IsShowAppointment = true
 			}
 
 			//专家电话会 1
-			if articleDetail.ActivityTypeId == 1 {
-				if articleDetail.LimitPeopleNum == 0 {
-					articleDetail.IsShowOutboundCall = true
+			if activityDetail.ActivityTypeId == 1 {
+				if activityDetail.LimitPeopleNum == 0 {
+					activityDetail.IsShowOutboundCall = true
 				} else {
-					articleDetail.IsShowSignup = true
+					activityDetail.IsShowSignup = true
 				}
-				articleDetail.IsShowMeetingReminder = true
-				articleDetail.IsShowHelpSsk = true
+				activityDetail.IsShowMeetingReminder = true
+				activityDetail.IsShowHelpSsk = true
 			}
 
 			//分析师电话会 2
-			if articleDetail.ActivityTypeId == 2 {
-				if articleDetail.LimitPeopleNum == 0 {
-					articleDetail.IsShowOutboundCall = true
+			if activityDetail.ActivityTypeId == 2 {
+				if activityDetail.LimitPeopleNum == 0 {
+					activityDetail.IsShowOutboundCall = true
 				} else {
-					articleDetail.IsShowSignup = true
+					activityDetail.IsShowSignup = true
 				}
-				articleDetail.IsShowMeetingReminder = true
+				activityDetail.IsShowMeetingReminder = true
 			}
 
-			if articleDetail.ActivityTypeId == 3 {
+			if activityDetail.ActivityTypeId == 3 {
 				//司调研电话会(3)、扣点的研选活动只展示我要报名
-				if articleDetail.IsResearchPoints || articleDetail.LimitPeopleNum > 0 {
-					articleDetail.IsShowSignup = true
+				if activityDetail.IsResearchPoints || activityDetail.LimitPeopleNum > 0 {
+					activityDetail.IsShowSignup = true
 				} else {
-					articleDetail.IsShowMeetingReminder = true
-					articleDetail.IsShowOutboundCall = true
+					activityDetail.IsShowMeetingReminder = true
+					activityDetail.IsShowOutboundCall = true
 				}
 			}
 
 			//公司线下调研 4
-			if articleDetail.ActivityTypeId == 4 {
-				articleDetail.IsShowSignup = true
+			if activityDetail.ActivityTypeId == 4 {
+				activityDetail.IsShowSignup = true
 			}
 
 			//专家线下沙龙 5
-			if articleDetail.ActivityTypeId == 5 {
-				articleDetail.IsShowSignup = true
+			if activityDetail.ActivityTypeId == 5 {
+				activityDetail.IsShowSignup = true
 			}
 
 			//分析师线下沙龙 6
-			if articleDetail.ActivityTypeId == 6 {
-				articleDetail.IsShowSignup = true
+			if activityDetail.ActivityTypeId == 6 {
+				activityDetail.IsShowSignup = true
 			}
 
 			//分析师电话会(C类) 7
-			if articleDetail.ActivityTypeId == 7 {
-				articleDetail.IsShowSignup = true
-				articleDetail.IsShowMeetingReminder = true
+			if activityDetail.ActivityTypeId == 7 {
+				activityDetail.IsShowSignup = true
+				activityDetail.IsShowMeetingReminder = true
 			}
 			//如果是易董创建的活动,展示我要报名,不展示预约外呼
-			if articleDetail.IsYidongConduct {
-				articleDetail.IsShowSignup = true
-				articleDetail.IsShowOutboundCall = false
+			if activityDetail.IsYidongConduct {
+				activityDetail.IsShowSignup = true
+				activityDetail.IsShowOutboundCall = false
 			}
 		}
 	}
+	activityDetail.IsResearchPoints = activityPointsByUserAllMap[activityDetail.ActivityId]
 	authInfo, permissionArr, e := GetUserRaiPermissionInfo(user.UserId, user.CompanyId)
 	if e != nil {
 		e = errors.New("获取用户权限失败, Err: " + e.Error())
 		return
 	}
-	v := articleDetail
+	v := activityDetail
 	itemActivity = &models.ActivityListResp{
 		ActivityId:              v.ActivityId,
 		ActivityTypeId:          v.ActivityTypeId,
@@ -773,6 +783,7 @@ func ActivityButtonShow(item *models.ActivityDetail, user *models.WxUserItem, pe
 		IsResearchPoints:        v.IsResearchPoints,
 		IsExternalLabel:         v.IsExternalLabel,
 		SiginupDeadline:         v.SiginupDeadline,
+		CancelDeadline:          v.CancelDeadline,
 	}
 	au := new(models.UserPermissionAuthInfo)
 	au.SellerName = authInfo.SellerName

+ 50 - 44
services/activity_button.go

@@ -291,8 +291,8 @@ func HandleActivityListButton(list []*models.ActivityDetail, user *models.WxUser
 	return
 }
 
-func ActivityButtonShowSearch(item *models.ActivityDetail, user *models.WxUserItem) (articleDetail *models.ActivityDetail) {
-	articleDetail = item
+func ActivityButtonShowSearch(item *models.ActivityDetail, user *models.WxUserItem) (activityDetail *models.ActivityDetail) {
+	activityDetail = item
 	//IsShowAppointment       bool                       `description:"是否展示预约纪要"`
 	//IsShowOutboundCall      bool                       `description:"是否展示预约外呼"`
 	//IsShowMeetingReminder   bool                       `description:"是否展示会议提醒"`
@@ -303,91 +303,97 @@ func ActivityButtonShowSearch(item *models.ActivityDetail, user *models.WxUserIt
 	//if articleDetail.IsHideAppointment == 0 {
 	//	articleDetail.IsShowAppointment = IsShowAppointmentByactivityInfo(articleDetail, articleDetail.ChartPermissionName)
 	//}
-	if articleDetail.SiginupDeadline == utils.FormatDateTimeInit { //报名截止时间处理
-		articleDetail.SiginupDeadline = ""
-	}
 
+	activityPointsByUserAllMap := GetActivityPointsByUserAllMap() // 获取对用户进行研选扣点的活动
+	activityDetail.IsResearchPoints = activityPointsByUserAllMap[activityDetail.ActivityId]
+	if activityDetail.SiginupDeadline == utils.FormatDateTimeInit { //报名截止时间处理
+		activityDetail.SiginupDeadline = ""
+	}
+	//如果报名截止时间不规范,或者是非研选扣点活动就把截止时间设置为空
+	if activityDetail.CancelDeadline == utils.FormatDateTimeInit || !activityDetail.IsResearchPoints {
+		activityDetail.CancelDeadline = ""
+	}
 	//articleDetail.SourceType = 1
-	activityTimeText := articleDetail.ActivityTimeText
+	activityTimeText := activityDetail.ActivityTimeText
 	activityTimeText = strings.Replace(activityTimeText, "(", "(", -1)
 	activityTimeText = strings.Replace(activityTimeText, ")", ")", -1)
-	articleDetail.ActivityTimeText = activityTimeText
+	activityDetail.ActivityTimeText = activityTimeText
 
-	articleDetail.IsShowAppointment = false
+	activityDetail.IsShowAppointment = false
 	//易董的操作按钮都隐藏
-	if articleDetail.YidongActivityId != "" {
-		articleDetail.IsShowSignup = false
-		articleDetail.IsShowDetails = true
-		if articleDetail.YidongActivityId != "" {
+	if activityDetail.YidongActivityId != "" {
+		activityDetail.IsShowSignup = false
+		activityDetail.IsShowDetails = true
+		if activityDetail.YidongActivityId != "" {
 			ydTgc, _ := GetYiDongCreateUserInfo(user)
-			yidongLongLink, _ := GetYiDongOriginalLink(articleDetail)
+			yidongLongLink, _ := GetYiDongOriginalLink(activityDetail)
 			if yidongLongLink != "" {
-				articleDetail.YidongActivityUrl = yidongLongLink + "%26source=11%26fromHz=true%26tgc=" + ydTgc
+				activityDetail.YidongActivityUrl = yidongLongLink + "%26source=11%26fromHz=true%26tgc=" + ydTgc
 			}
 		}
 	} else {
 		//专家电话会 1
-		if articleDetail.ActivityTypeId == 1 && articleDetail.IsLimitPeople == 0 && (articleDetail.ActiveState == "1" || articleDetail.ActiveState == "2") {
-			articleDetail.IsShowHelpSsk = true
+		if activityDetail.ActivityTypeId == 1 && activityDetail.IsLimitPeople == 0 && (activityDetail.ActiveState == "1" || activityDetail.ActiveState == "2") {
+			activityDetail.IsShowHelpSsk = true
 		}
-		if articleDetail.ActiveState == "1" {
-			if articleDetail.IsCanAppointmentMinutes == 1 {
-				articleDetail.IsShowAppointment = true
+		if activityDetail.ActiveState == "1" {
+			if activityDetail.IsCanAppointmentMinutes == 1 {
+				activityDetail.IsShowAppointment = true
 			}
 			//专家电话会 1
 			//专家电话会限制人数的展示我要报名,不限制的展示预约外外呼
-			if articleDetail.ActivityTypeId == 1 {
+			if activityDetail.ActivityTypeId == 1 {
 				//articleDetail.IsShowOutboundCall = true
-				if articleDetail.LimitPeopleNum == 0 {
-					articleDetail.IsShowOutboundCall = true
+				if activityDetail.LimitPeopleNum == 0 {
+					activityDetail.IsShowOutboundCall = true
 					//articleDetail.IsShowHelpSsk = true
 				} else {
-					articleDetail.IsShowSignup = true
+					activityDetail.IsShowSignup = true
 				}
-				articleDetail.IsShowMeetingReminder = true
-				articleDetail.IsShowHelpSsk = true
+				activityDetail.IsShowMeetingReminder = true
+				activityDetail.IsShowHelpSsk = true
 			}
 
 			//分析师电话会 2
-			if articleDetail.ActivityTypeId == 2 {
-				if articleDetail.LimitPeopleNum == 0 {
-					articleDetail.IsShowOutboundCall = true
+			if activityDetail.ActivityTypeId == 2 {
+				if activityDetail.LimitPeopleNum == 0 {
+					activityDetail.IsShowOutboundCall = true
 				} else {
-					articleDetail.IsShowSignup = true
+					activityDetail.IsShowSignup = true
 				}
-				articleDetail.IsShowMeetingReminder = true
+				activityDetail.IsShowMeetingReminder = true
 			}
 
 			//公司调研电话会 3
-			if articleDetail.ActivityTypeId == 3 {
+			if activityDetail.ActivityTypeId == 3 {
 				//司调研电话会(3)、扣点的研选活动只展示我要报名
-				if articleDetail.IsResearchPoints || articleDetail.LimitPeopleNum > 0 {
-					articleDetail.IsShowSignup = true
+				if activityDetail.IsResearchPoints || activityDetail.LimitPeopleNum > 0 {
+					activityDetail.IsShowSignup = true
 				} else {
-					articleDetail.IsShowMeetingReminder = true
-					articleDetail.IsShowOutboundCall = true
+					activityDetail.IsShowMeetingReminder = true
+					activityDetail.IsShowOutboundCall = true
 				}
 			}
 
 			//公司线下调研 4
-			if articleDetail.ActivityTypeId == 4 {
-				articleDetail.IsShowSignup = true
+			if activityDetail.ActivityTypeId == 4 {
+				activityDetail.IsShowSignup = true
 			}
 
 			//专家线下沙龙 5
-			if articleDetail.ActivityTypeId == 5 {
-				articleDetail.IsShowSignup = true
+			if activityDetail.ActivityTypeId == 5 {
+				activityDetail.IsShowSignup = true
 			}
 
 			//分析师线下沙龙 6
-			if articleDetail.ActivityTypeId == 6 {
-				articleDetail.IsShowSignup = true
+			if activityDetail.ActivityTypeId == 6 {
+				activityDetail.IsShowSignup = true
 			}
 
 			//分析师电话会(C类) 7
-			if articleDetail.ActivityTypeId == 7 {
-				articleDetail.IsShowSignup = true
-				articleDetail.IsShowMeetingReminder = true
+			if activityDetail.ActivityTypeId == 7 {
+				activityDetail.IsShowSignup = true
+				activityDetail.IsShowMeetingReminder = true
 			}
 		}
 	}

+ 42 - 1
services/activity_points.go

@@ -1,16 +1,57 @@
 package services
 
 import (
+	"errors"
 	"fmt"
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/utils"
+	"strconv"
 	"time"
 )
 
 //func init() {
-//	GetActivityPointsAll()
+//	GetActivityPointsByUserAllMap()
 //}
 
+// GetActivityPointsByUserAllMap 获取所有针对用户扣点的活动
+func GetActivityPointsByUserAllMap() (mapResp map[int]bool) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("GetActivityPointsByUserAllMap,Err:"+err.Error(), 2)
+		}
+	}()
+	var condition string
+	var pars []interface{}
+	//获取所有研选类型的活动
+	condition = `  AND chart_permission_id =   ` + strconv.Itoa(utils.CHART_PERMISSION_ID_YANXUAN)
+	listActivity, e := models.GetActivityListByCondition(condition, pars)
+	if e != nil {
+		err = errors.New("GetActivityListByCondition, Err: " + e.Error())
+		return
+	}
+	var activityIds []int
+	condition = ""
+	pars = make([]interface{}, 0)
+	for _, v := range listActivity {
+		activityIds = append(activityIds, v.ActivityId)
+	}
+	condition += ` AND  points_object  IN  (1,3) `
+	condition += ` AND activity_id IN (` + utils.GetOrmInReplace(len(activityIds)) + `)   `
+	pars = append(pars, activityIds)
+	list, e := models.GetCygxActivityPointsSetList(condition, pars, 0, 0)
+	if e != nil {
+		err = errors.New("GetCygxActivityPointsSetList, Err: " + e.Error())
+		return
+	}
+	mapResp = make(map[int]bool, 0)
+	for _, v := range list {
+		mapResp[v.ActivityId] = true
+	}
+	return
+}
+
 // 用户报名添加到处理研选扣点
 func YanXuanActivityPointsBillSignupAdd(activityId, uid int) (err error) {
 	defer func() {

+ 45 - 0
services/activity_signup.go

@@ -128,6 +128,51 @@ func CheckActivityUserEmail(activityInfo *models.ActivityDetail, wxUser *models.
 	return
 }
 
+// 处理取消报名截止时间的弹窗文案
+func ActivityCancelDeadlineMsg(activityInfo *models.ActivityDetail) (popupMsg string, err error) {
+	if !activityInfo.IsResearchPoints {
+		return
+	}
+	activityId := activityInfo.ActivityId
+	//获取活动是否扣点以及扣点规则明细
+	activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
+	if e != nil {
+		err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
+		return
+	}
+	cancelDeadlineType := activityPointsSetDetail.CancelDeadlineType
+	popupMsg = "活动开始前1小时取消报名,可返还点数"
+	//if activityInfo.CancelDeadlineType == 0 {
+	//	popupMsg = "活动开始前1小时取消报名,可返还点数"
+	//}
+	if cancelDeadlineType == 1 && activityInfo.SiginupDeadline != utils.FormatDateTimeInit && activityInfo.SiginupDeadline != "" {
+		siginupDeadline := utils.GetTimeDateRemoveYearAndSecond(activityInfo.SiginupDeadline)
+		popupMsg = siginupDeadline + "前取消报名,可返还点数"
+	}
+	if cancelDeadlineType == 2 {
+		popupMsg = "活动开始前24小时取消报名,可返还点数"
+	}
+	if cancelDeadlineType == 3 {
+		popupMsg = "活动开始前48小时取消报名,可返还点数"
+	}
+	return
+}
+
+// 校验取消报名截止时间
+func CheckCancelDeadline(activityInfo *models.ActivityDetail) (popupMsg string) {
+	if !activityInfo.IsResearchPoints {
+		return
+	}
+	//获取活动是否扣点以及扣点规则明细
+	if activityInfo.CancelDeadline != utils.FormatDateTimeInit {
+		timeResp := utils.StrTimeToTime(activityInfo.CancelDeadline)
+		if timeResp.Before(time.Now()) {
+			popupMsg = "当前时间点已无法取消报名,\n\n若想取消,请联系对口销售"
+		}
+	}
+	return
+}
+
 // 校验报名是否需要绑定邮箱
 func CheckActivityUserAll(activityInfo *models.ActivityDetail, wxUser *models.WxUserItem) (popupMsg string, err error) {
 	_, popupMsg = CheckSiginupDeadline(activityInfo)

+ 14 - 0
utils/common.go

@@ -759,3 +759,17 @@ func GetTimeDateRemoveYear(strTime string) (dataStr string) {
 	dataStr = strings.TrimRight(dataStr, "-")
 	return dataStr
 }
+
+// 时间格式去掉年和秒
+func GetTimeDateRemoveYearAndSecond(strTime string) (dataStr string) {
+	slicePublishTime := strings.Split(strTime, "-")
+	for k, v := range slicePublishTime {
+		if k == 0 {
+			continue
+		}
+		dataStr += v + "-"
+	}
+	dataStr = strings.TrimRight(dataStr, "-")
+	dataStr = dataStr[:len(dataStr)-3]
+	return
+}