Browse Source

C类电话会展示处理

xingzai 2 years ago
parent
commit
e2bc2e1dca
3 changed files with 403 additions and 248 deletions
  1. 275 248
      controllers/activity.go
  2. 1 0
      models/activity.go
  3. 127 0
      services/activity.go

+ 275 - 248
controllers/activity.go

@@ -528,6 +528,9 @@ func (this *ActivityCoAntroller) ScheduleList() {
 		if v.IsHideAppointment == 0 {
 			list[k].IsShowAppointment = services.IsShowAppointment(v.ActivityTypeId, v.ChartPermissionName)
 		}
+		if v.ActivityTypeId == utils.C_CLASS_ACTIVITY_TYPE_ID {
+			list[k].IsCClassMeeting = true
+		}
 	}
 	//添加我的日程访问记录
 	item := new(models.CygxPageHistoryRecord)
@@ -2636,101 +2639,109 @@ func (this *ActivityCoAntroller) ActivityListNew() {
 		currentIndex = 1
 	}
 	startSize = utils.StartIndex(currentIndex, pageSize)
-	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+	//userType, permissionStr, err := services.GetUserType(user.CompanyId)
 	var condition string
 	var pars []interface{}
 	//活动可见限制
-	var sqlExport string
-	slicePer := strings.Split(permissionStr, ",")
-	var permissionSqlStr string
-	for _, v := range slicePer {
-		if userType == 1 {
-			//if v != "研选" {
-			if !strings.Contains(v, "研选") {
-				permissionSqlStr += "'" + v + "',"
-			}
-		} else {
-			permissionSqlStr += "'" + v + "',"
-		}
-	}
-	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
-	permissionSqlStr = strings.Replace(permissionSqlStr, "(主观)", "", -1)
-	permissionSqlStr = strings.Replace(permissionSqlStr, "(客观)", "", -1)
-	permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionSqlStr + `)`
-	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
-	if userType == 2 {
-		sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
-	}
-	if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
-		sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
-	}
-	sqlExport += `) `
-
-	//主题
-	if label != "" {
-		condition = ` AND art.label  LIKE '%` + label + `%' `
-	}
-	if whichDay != "" {
-		var startDate string
-		var endDate string
-		if whichDay == "1" {
-			startDate = time.Now().Format(utils.FormatDate)
-			endDate = startDate
-		} else if whichDay == "2" {
-			startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-			endDate = startDate
-		} else {
-			startDate = time.Now().Format(utils.FormatDate)
-			endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-		}
-		condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
-		condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
-	}
-	//行业名称
-	if len(chartPermissionIds) > 0 {
-		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
-	}
-	if activeState != "" {
-		if activeState == "1" {
-			condition += ` AND art.active_state  IN (1,2)`
-		} else {
-			condition += ` AND art.active_state  IN (` + activeState + `)`
-		}
-	} else {
-		condition += ` AND art.active_state  IN (1)`
-	}
-	if activityTypeId != "" {
-		condition += ` AND art.activity_type_id  IN (` + activityTypeId + `)`
-	}
+	//var sqlExport string
+	//slicePer := strings.Split(permissionStr, ",")
+	//var permissionSqlStr string
+	//for _, v := range slicePer {
+	//	if userType == 1 {
+	//		//if v != "研选" {
+	//		if !strings.Contains(v, "研选") {
+	//			permissionSqlStr += "'" + v + "',"
+	//		}
+	//	} else {
+	//		permissionSqlStr += "'" + v + "',"
+	//	}
+	//}
+	//permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
+	//permissionSqlStr = strings.Replace(permissionSqlStr, "(主观)", "", -1)
+	//permissionSqlStr = strings.Replace(permissionSqlStr, "(客观)", "", -1)
+	//permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionSqlStr + `)`
+	//sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
+	//if userType == 2 {
+	//	sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+	//}
+	//if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+	//	sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+	//}
+	//sqlExport += `) `
+	//
+	////主题
+	//if label != "" {
+	//	condition = ` AND art.label  LIKE '%` + label + `%' `
+	//}
+	//if whichDay != "" {
+	//	var startDate string
+	//	var endDate string
+	//	if whichDay == "1" {
+	//		startDate = time.Now().Format(utils.FormatDate)
+	//		endDate = startDate
+	//	} else if whichDay == "2" {
+	//		startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+	//		endDate = startDate
+	//	} else {
+	//		startDate = time.Now().Format(utils.FormatDate)
+	//		endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+	//	}
+	//	condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
+	//	condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
+	//}
+	////行业名称
+	//if len(chartPermissionIds) > 0 {
+	//	condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
+	//}
+	//if activeState != "" {
+	//	if activeState == "1" {
+	//		condition += ` AND art.active_state  IN (1,2)`
+	//	} else {
+	//		condition += ` AND art.active_state  IN (` + activeState + `)`
+	//	}
+	//} else {
+	//	condition += ` AND art.active_state  IN (1)`
+	//}
+	//if activityTypeId != "" {
+	//	condition += ` AND art.activity_type_id  IN (` + activityTypeId + `)`
+	//}
+	//
+	//condition += ` AND art.publish_status = 1 `
+	//var conditionOr string
+	//// 有专家权限的这几种用户,不做行业权限校验
+	//if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+	//	conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	//}
+	//if (userType == 5) && strings.Contains(permissionStr, "专家") {
+	//	conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	//}
+	//if userType == 1 {
+	//	conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + permissionSqlStr + `) `
+	//} else {
+	//	conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + `) `
+	//}
+	////判断客户规模是否属于可见范围的活动
+	//companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	//if err != nil && err.Error() != utils.ErrNoRow() {
+	//	br.Msg = "获取信息失败"
+	//	br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+	//	return
+	//}
+	//if companyProduct != nil {
+	//	if companyProduct.Scale != "" {
+	//		conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+	//	}
+	//}
 
-	condition += ` AND art.publish_status = 1 `
-	var conditionOr string
-	// 有专家权限的这几种用户,不做行业权限校验
-	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
-		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
-	}
-	if (userType == 5) && strings.Contains(permissionStr, "专家") {
-		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
-	}
-	if userType == 1 {
-		conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + permissionSqlStr + `) `
-	} else {
-		conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + `) `
-	}
-	//判断客户规模是否属于可见范围的活动
-	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+	conditionActivity, err := services.GetActivityonditionList(user, activityTypeId, chartPermissionIds, whichDay, activeState, label, 0)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
 		return
 	}
-	if companyProduct != nil {
-		if companyProduct.Scale != "" {
-			conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
-		}
-	}
 
-	condition += ` AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+	//condition += ` AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+	condition += ` AND art.is_limit_people = 1 ` + conditionActivity
 	total, err := models.GetActivityCount(condition, pars)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -2816,6 +2827,9 @@ func (this *ActivityCoAntroller) ActivityListNew() {
 		if v.IsHideAppointment == 0 {
 			list[k].IsShowAppointment = services.IsShowAppointment(v.ActivityTypeId, v.ChartPermissionName)
 		}
+		if v.ActivityTypeId == utils.C_CLASS_ACTIVITY_TYPE_ID {
+			list[k].IsCClassMeeting = true
+		}
 	}
 	page := paging.GetPaging(currentIndex, pageSize, total)
 	resp := new(models.GetCygxActivityListRep)
@@ -3256,12 +3270,12 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	if activeState == "undefined" || activeState == "" {
 		activeState = "1"
 	}
-	adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取本组下的销售失败,Err:" + err.Error()
-		return
-	}
+	//adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
+	//if err != nil {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "获取本组下的销售失败,Err:" + err.Error()
+	//	return
+	//}
 	userType, permissionStr, err := services.GetUserType(user.CompanyId)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -3302,7 +3316,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
 		return
 	}
-	isMaker := user.IsMaker
+	//isMaker := user.IsMaker
 
 	var sqlExport string
 	resp := new(models.ActivityTypeListHomeResp)
@@ -3312,85 +3326,91 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 			continue
 		}
 		var condition string
-		var conditionAdmin string
-		permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionNameStr + `)`
-		sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
-		if userType == 2 {
-			sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
-		}
-		if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
-			sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
-		}
-		sqlExport += `) `
-		if v.ActivityTypeId == utils.ANALYST_TELL_ACTIVITY_TYPE_ID {
-			condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id IN (` + strconv.Itoa(v.ActivityTypeId) + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
-		} else {
-			condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + strconv.Itoa(v.ActivityTypeId)
-		}
-		//活动仅决策人可见
-		if isMaker == 0 {
-			condition += ` AND art.is_maker_show = 0  `
-		}
-
-		if isPower == 1 {
-			condition += permissionSqlStr
-		}
-		//行业名称
-		if len(chartPermissionIds) > 0 {
-			condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
-		}
-		var conditionOr string
-		if whichDay != "" {
-			var startDate string
-			var endDate string
-			if whichDay == "1" {
-				startDate = time.Now().Format(utils.FormatDate)
-				endDate = startDate
-			} else if whichDay == "2" {
-				startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-				endDate = startDate
-			} else {
-				startDate = time.Now().Format(utils.FormatDate)
-				endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-			}
-			condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
-			condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
-		}
-		if activeState != "" {
-			// 默认查看未开始跟进行中
-			if activeState == "1" {
-				condition += ` AND art.active_state  IN (1,2)`
-			} else {
-				condition += ` AND art.active_state  IN (` + activeState + `)`
-			}
-		} else {
-			condition += ` AND art.active_state  IN (1,2)`
-		}
-		conditionAdmin = condition
-		//查询全部可见的数据(是否全部客户可见)
-		condition += ` AND art.visible_range != 1  `
+		//var conditionAdmin string
+		//permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionNameStr + `)`
+		//sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
+		//if userType == 2 {
+		//	sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+		//}
+		//if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+		//	sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+		//}
+		//sqlExport += `) `
+		//if v.ActivityTypeId == utils.ANALYST_TELL_ACTIVITY_TYPE_ID {
+		//	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id IN (` + strconv.Itoa(v.ActivityTypeId) + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
+		//} else {
+		//	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + strconv.Itoa(v.ActivityTypeId)
+		//}
+		////活动仅决策人可见
+		//if isMaker == 0 {
+		//	condition += ` AND art.is_maker_show = 0  `
+		//}
+		//
+		//if isPower == 1 {
+		//	condition += permissionSqlStr
+		//}
+		////行业名称
+		//if len(chartPermissionIds) > 0 {
+		//	condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
+		//}
+		//var conditionOr string
+		//if whichDay != "" {
+		//	var startDate string
+		//	var endDate string
+		//	if whichDay == "1" {
+		//		startDate = time.Now().Format(utils.FormatDate)
+		//		endDate = startDate
+		//	} else if whichDay == "2" {
+		//		startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+		//		endDate = startDate
+		//	} else {
+		//		startDate = time.Now().Format(utils.FormatDate)
+		//		endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+		//	}
+		//	condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
+		//	condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
+		//}
+		//if activeState != "" {
+		//	// 默认查看未开始跟进行中
+		//	if activeState == "1" {
+		//		condition += ` AND art.active_state  IN (1,2)`
+		//	} else {
+		//		condition += ` AND art.active_state  IN (` + activeState + `)`
+		//	}
+		//} else {
+		//	condition += ` AND art.active_state  IN (1,2)`
+		//}
+		//conditionAdmin = condition
+		////查询全部可见的数据(是否全部客户可见)
+		//condition += ` AND art.visible_range != 1  `
+		//
+		//if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		//	conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+		//}
+		//if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		//	conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+		//}
+		//if userType == 1 {
+		//	conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
+		//} else {
+		//	conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
+		//}
+		//if companyProduct != nil {
+		//	if companyProduct.Scale != "" {
+		//		conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+		//	}
+		//}
+		//if adminIds != "" {
+		//	conditionOr += ` OR ( art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		//}
 
-		if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
-			conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
-		}
-		if (userType == 5) && strings.Contains(permissionStr, "专家") {
-			conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
-		}
-		if userType == 1 {
-			conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
-		} else {
-			conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
-		}
-		if companyProduct != nil {
-			if companyProduct.Scale != "" {
-				conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
-			}
-		}
-		if adminIds != "" {
-			conditionOr += ` OR ( art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		conditionActivity, err := services.GetActivityonditionList(user, strconv.Itoa(v.ActivityTypeId), chartPermissionIds, whichDay, activeState, "", isPower)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
+			return
 		}
-
-		condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+		condition += `AND art.is_limit_people = 1 ` + conditionActivity
 		sortTime = ` mintimesort ASC `
 		labelList, err := models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
 		if err != nil {
@@ -4303,19 +4323,19 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 	if activeState == "undefined" || activeState == "" || activeState == "1" {
 		activeState = "1,2"
 	}
-	adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取本组下的销售失败,Err:" + err.Error()
-		return
-	}
+	//adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
+	//if err != nil {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "获取本组下的销售失败,Err:" + err.Error()
+	//	return
+	//}
 	userType, permissionStr, err := services.GetUserType(user.CompanyId)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	isMaker := user.IsMaker
+	//isMaker := user.IsMaker
 
 	var startSize int
 	pageSize = 8
@@ -4368,76 +4388,83 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 			continue
 		}
 		var condition string
-		var conditionAdmin string
-		permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionNameStr + `)`
-		if v.ActivityTypeId == utils.ANALYST_TELL_ACTIVITY_TYPE_ID {
-			condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id IN (` + strconv.Itoa(v.ActivityTypeId) + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
-		} else {
-			condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + strconv.Itoa(v.ActivityTypeId)
-		}
-		//活动仅决策人可见
-		if isMaker == 0 {
-			condition += ` AND art.is_maker_show = 0  `
-		}
-
-		//condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + strconv.Itoa(v.ActivityTypeId)
-		if isPower == 1 {
-			condition += permissionSqlStr
-		}
-		//行业名称
-		if len(chartPermissionIds) > 0 {
-			condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
-		}
-		var conditionOr string
-		if whichDay != "" {
-			var startDate string
-			var endDate string
-			if whichDay == "1" {
-				startDate = time.Now().Format(utils.FormatDate)
-				endDate = startDate
-			} else if whichDay == "2" {
-				startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-				endDate = startDate
-			} else {
-				startDate = time.Now().Format(utils.FormatDate)
-				endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-			}
-			condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
-			condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
-		}
-
-		if activeState != "" {
-			condition += ` AND art.active_state  IN (` + activeState + `)`
-		} else {
-			condition += ` AND art.active_state  IN (1,2)`
-		}
-
-		conditionAdmin = condition
-		//查询全部可见的数据(是否全部客户可见)
-		condition += ` AND art.visible_range != 1  `
-
-		if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
-			conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
-		}
-		if (userType == 5) && strings.Contains(permissionStr, "专家") {
-			conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
-		}
-		if userType == 1 {
-			conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
-		} else {
-			conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
-		}
-
-		if companyProduct != nil {
-			if companyProduct.Scale != "" {
-				conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
-			}
-		}
-
-		if adminIds != "" {
-			conditionOr += ` OR ( art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		//var conditionAdmin string
+		//permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionNameStr + `)`
+		//if v.ActivityTypeId == utils.ANALYST_TELL_ACTIVITY_TYPE_ID {
+		//	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id IN (` + strconv.Itoa(v.ActivityTypeId) + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
+		//} else {
+		//	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + strconv.Itoa(v.ActivityTypeId)
+		//}
+		////活动仅决策人可见
+		//if isMaker == 0 {
+		//	condition += ` AND art.is_maker_show = 0  `
+		//}
+		//
+		////condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + strconv.Itoa(v.ActivityTypeId)
+		//if isPower == 1 {
+		//	condition += permissionSqlStr
+		//}
+		////行业名称
+		//if len(chartPermissionIds) > 0 {
+		//	condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
+		//}
+		//var conditionOr string
+		//if whichDay != "" {
+		//	var startDate string
+		//	var endDate string
+		//	if whichDay == "1" {
+		//		startDate = time.Now().Format(utils.FormatDate)
+		//		endDate = startDate
+		//	} else if whichDay == "2" {
+		//		startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+		//		endDate = startDate
+		//	} else {
+		//		startDate = time.Now().Format(utils.FormatDate)
+		//		endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+		//	}
+		//	condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
+		//	condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
+		//}
+		//
+		//if activeState != "" {
+		//	condition += ` AND art.active_state  IN (` + activeState + `)`
+		//} else {
+		//	condition += ` AND art.active_state  IN (1,2)`
+		//}
+		//
+		//conditionAdmin = condition
+		////查询全部可见的数据(是否全部客户可见)
+		//condition += ` AND art.visible_range != 1  `
+		//
+		//if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		//	conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+		//}
+		//if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		//	conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+		//}
+		//if userType == 1 {
+		//	conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
+		//} else {
+		//	conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
+		//}
+		//
+		//if companyProduct != nil {
+		//	if companyProduct.Scale != "" {
+		//		conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+		//	}
+		//}
+		//
+		//if adminIds != "" {
+		//	conditionOr += ` OR ( art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		//}
+		conditionActivity, err := services.GetActivityonditionList(user, strconv.Itoa(v.ActivityTypeId), chartPermissionIds, whichDay, activeState, "", isPower)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
+			return
 		}
-		condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+		//condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
+		condition += `AND art.is_limit_people = 1 ` + conditionActivity
 		sortTime = ` mintimesort ASC `
 		labelList, err := models.GetActivityLabelListAll(condition, sortTime, pars, startSize, pageSize)
 		if err != nil {

+ 1 - 0
models/activity.go

@@ -180,6 +180,7 @@ type CygxActivityList struct {
 	ActivityType            int    `description:"活动线上线下类型 1线上,0 线下"`
 	IsHideAppointment       int    `description:"是否隐藏预约纪要按钮  1是,0 否"`
 	JmcjRoadshowTitle       string `description:"进门财经手动匹配的活动名称"`
+	IsCClassMeeting         bool   `description:"是否是c类电话会"`
 }
 
 type GetCygxActivityListRep struct {

+ 127 - 0
services/activity.go

@@ -420,6 +420,133 @@ func GetHavePower(activityInfo *models.ActivityDetail, permissionStr, companyDet
 	return
 }
 
+//获取活动列表查询权限的SQL
+// @Param   ChartPermissionIds   query   string  false     "行业id 多个用 , 隔开"
+// @Param   ActivityTypeIds   query   string  false     "活动类型id 多个用 , 隔开"
+// @Param   ActiveState   query   string  false       "活动进行状态 未开始:1、进行中2、已结束3"
+// @Param   WhichDay   query   string  false       "哪一天 今天:1、明天:2,多个用 , 隔开"
+// @Param   IsPower   query   int  false       "是否选择有权限行业 ,1是 0 否 默认0"
+// @Param   Label   query   string  false       "搜索主题 多个用 , 隔开"
+func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermissionIds, whichDay, activeState, label string, isPower int) (conditionActivity string, err error) {
+	adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
+	if err != nil {
+		return
+	}
+	userType, permissionStr, err := GetUserType(user.CompanyId)
+	if err != nil {
+		return
+	}
+	//判断客户规模是否属于可见范围的活动
+	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	isMaker := user.IsMaker
+	slicePer := strings.Split(permissionStr, ",")
+	var permissionSqlStr string
+	var permissionNameStr string
+	for _, v := range slicePer {
+		if userType == 1 {
+			//研选权限处理
+			if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
+				permissionNameStr += "'" + v + "',"
+			}
+		} else {
+			permissionNameStr += "'" + v + "',"
+		}
+	}
+	permissionNameStr = strings.Replace(permissionNameStr, "(主观)", "", -1)
+	permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
+	permissionNameStr = strings.TrimRight(permissionNameStr, ",")
+	var condition string
+	var conditionAdmin string
+	var sqlExport string // 专家权限处理
+	permissionSqlStr = ` AND art.chart_permission_name  IN (` + permissionNameStr + `)`
+	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
+	if userType == 2 {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+	}
+	if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+	}
+	sqlExport += `) `
+	// 如果是C类电话会就不展示内容,且合并到分析师电话会
+	if activityTypeId == strconv.Itoa(utils.ANALYST_TELL_ACTIVITY_TYPE_ID) {
+		condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id IN (` + activityTypeId + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
+	} else {
+		condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + activityTypeId
+	}
+	//活动仅决策人可见
+	if isMaker == 0 {
+		condition += ` AND art.is_maker_show = 0  `
+	}
+	//主题
+	if label != "" {
+		condition = ` AND art.label  LIKE '%` + label + `%' `
+	}
+
+	if isPower == 1 {
+		condition += permissionSqlStr
+	}
+	//行业名称
+	if len(chartPermissionIds) > 0 {
+		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
+	}
+	var conditionOr string
+	if whichDay != "" {
+		var startDate string
+		var endDate string
+		if whichDay == "1" {
+			startDate = time.Now().Format(utils.FormatDate)
+			endDate = startDate
+		} else if whichDay == "2" {
+			startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+			endDate = startDate
+		} else {
+			startDate = time.Now().Format(utils.FormatDate)
+			endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+		}
+		condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
+		condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
+	}
+	if activeState != "" {
+		// 默认查看未开始跟进行中
+		if activeState == "1" {
+			condition += ` AND art.active_state  IN (1,2)`
+		} else {
+			condition += ` AND art.active_state  IN (` + activeState + `)`
+		}
+	} else {
+		condition += ` AND art.active_state  IN (1,2)`
+	}
+	conditionAdmin = condition
+	//查询全部可见的数据(是否全部客户可见)
+	condition += ` AND art.visible_range != 1  `
+
+	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	}
+	if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	}
+	if userType == 1 {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
+	} else {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
+	}
+	if companyProduct != nil {
+		if companyProduct.Scale != "" {
+			conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+		}
+	}
+	if adminIds != "" {
+		conditionOr += ` OR ( art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+	}
+
+	conditionActivity = condition + permissionSqlStr + sqlExport + conditionOr
+	return
+}
+
 //研选系列专家电话会,会前1小时将问题列表发送给邮箱
 func SendEmailFileForAskMsgResearch(cont context.Context) (err error) {
 	var msg string