Browse Source

专家权限的客户,可以参加【专家线下沙龙

xingzai 3 years ago
parent
commit
b69472024a
3 changed files with 259 additions and 268 deletions
  1. 166 268
      controllers/activity.go
  2. 3 0
      controllers/home.go
  3. 90 0
      services/activity.go

+ 166 - 268
controllers/activity.go

@@ -110,57 +110,64 @@ func (this *ActivityCoAntroller) ActivityList() {
 		return
 	}
 
-	var userType int
-	var permissionStr string
-	if user.CompanyId <= 1 {
-		userType = 0
-	} else {
-		total, err := models.GetCountCompanyDetailByIdGroup(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
-			return
-		}
-		if total == 0 {
-			userType = 0
-		} else {
-			companyDetail, err := models.GetCompanyDetailByIdGroup(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败!"
-				br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-				return
-			}
-			if companyDetail == nil {
-				br.Msg = "获取信息失败!"
-				br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-				return
-			}
-			permissionStr, err = models.GetCompanyPermission(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-				return
-			}
-			//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
-			if companyDetail.Status == "永续" {
-				userType = 1
-			} else if companyDetail.Status == "试用" {
-				userType = 5
-			} else if companyDetail.Status == "正式" {
-				if permissionStr == "专家" {
-					userType = 4
-				} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
-					userType = 2
-				} else {
-					userType = 3
-				}
-				if userType == 3 {
-					if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
-						userType = 4
-					}
-				}
-			}
-		}
+	//var userType int
+	//var permissionStr string
+	//if user.CompanyId <= 1 {
+	//	userType = 0
+	//} else {
+	//	total, err := models.GetCountCompanyDetailByIdGroup(user.CompanyId)
+	//	if err != nil {
+	//		br.Msg = "获取失败"
+	//		br.ErrMsg = "获取失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	if total == 0 {
+	//		userType = 0
+	//	} else {
+	//		companyDetail, err := models.GetCompanyDetailByIdGroup(user.CompanyId)
+	//		if err != nil {
+	//			br.Msg = "获取信息失败!"
+	//			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+	//			return
+	//		}
+	//		if companyDetail == nil {
+	//			br.Msg = "获取信息失败!"
+	//			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
+	//			return
+	//		}
+	//		permissionStr, err = models.GetCompanyPermission(user.CompanyId)
+	//		if err != nil {
+	//			br.Msg = "获取信息失败"
+	//			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+	//			return
+	//		}
+	//		//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+	//		if companyDetail.Status == "永续" {
+	//			userType = 1
+	//		} else if companyDetail.Status == "试用" {
+	//			userType = 5
+	//		} else if companyDetail.Status == "正式" {
+	//			if permissionStr == "专家" {
+	//				userType = 4
+	//			} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
+	//				userType = 2
+	//			} else {
+	//				userType = 3
+	//			}
+	//			if userType == 3 {
+	//				if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
+	//					userType = 4
+	//				}
+	//			}
+	//		}
+	//	}
+	//}
+
+	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+		return
 	}
 	if isShowJurisdiction == 1 && chartPermissionIds == "" && userType == 4 {
 		activityTypeIds = "1,3"
@@ -470,60 +477,75 @@ func (this *ActivityCoAntroller) Detail() {
 		companyDetailStatus = companyDetail.Status
 	}
 
-	var userType int
-	var permissionStr string
-	if user.CompanyId <= 1 {
-		userType = 0
-	} else {
-		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyDetail == nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-			return
-		}
-		//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
-		if companyDetail.Status == "永续" {
-			userType = 1
-		} else if companyDetail.Status == "试用" {
-			userType = 5
-		} else if companyDetail.Status == "正式" {
-			permissionStr, err = models.GetCompanyPermission(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-				return
-			}
-			if permissionStr == "专家" {
-				userType = 4
-			} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
-				userType = 2
-			} else {
-				userType = 3
-			}
-		}
+	//var userType int
+	//var permissionStr string
+	//if user.CompanyId <= 1 {
+	//	userType = 0
+	//} else {
+	//	companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
+	//	if err != nil {
+	//		br.Msg = "获取信息失败!"
+	//		br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+	//		return
+	//	}
+	//	if companyDetail == nil {
+	//		br.Msg = "获取信息失败!"
+	//		br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
+	//		return
+	//	}
+	//	//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+	//	if companyDetail.Status == "永续" {
+	//		userType = 1
+	//	} else if companyDetail.Status == "试用" {
+	//		userType = 5
+	//	} else if companyDetail.Status == "正式" {
+	//		permissionStr, err = models.GetCompanyPermission(user.CompanyId)
+	//		if err != nil {
+	//			br.Msg = "获取信息失败"
+	//			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+	//			return
+	//		}
+	//		if permissionStr == "专家" {
+	//			userType = 4
+	//		} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
+	//			userType = 2
+	//		} else {
+	//			userType = 3
+	//		}
+	//	}
+	//}
+
+	userType, permissionStr, err := services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+		return
 	}
+
+	fmt.Println("用户:", userType)
 	if activityInfo.IsLimitPeople > 0 {
-		var noPower bool
-		if (userType == 1 || userType == 4 || userType == 5) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
-			noPower = true
-		}
-		//带有专家权限的 2、大套餐客户(4个行业全开通的正式客户)  3、分行业套餐客户(开通对应行业的正式客户)
-		if userType == 2 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
-			noPower = true
-		}
-		if userType == 2 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
-			noPower = true
-		}
-		if userType == 3 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
-			noPower = true
-		}
-		if userType == 3 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
-			noPower = true
+		//var noPower bool
+		//if (userType == 1 || userType == 4 || userType == 5) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
+		//	noPower = true
+		//}
+		////1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+		//if userType == 2 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
+		//	noPower = true
+		//}
+		//if userType == 2 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
+		//	noPower = true
+		//}
+		//if userType == 3 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
+		//	noPower = true
+		//}
+		//if userType == 3 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
+		//	noPower = true
+		//}
+		noPower, err := services.GetShareNoPowe(activityInfo, permissionStr, userType)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+			return
 		}
 		if noPower {
 			br.Msg = "您暂无查看该活动权限"
@@ -584,18 +606,22 @@ func (this *ActivityCoAntroller) Detail() {
 		}
 		//1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
 		//OperationMode     string `description:"操作方式 Apply:立即申请、Call:拨号 为空则为有权限"`
-		var havePower bool
-		if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
-			havePower = true
-		} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
-			havePower = true
-		} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
-			havePower = true
-		} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
-			havePower = true
-		} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
-			havePower = true
-		}
+		//var havePower bool
+		//if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
+		//	havePower = true
+		//} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
+		//	havePower = true
+		//} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
+		//	havePower = true
+		//} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
+		//	havePower = true
+		//} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
+		//	havePower = true
+		//} else if activityInfo.ActivityTypeId == 5 && strings.Contains(permissionStr, "专家") {
+		//	havePower = true
+		//}
+
+		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
 		if havePower {
 			hasPermission = 1
 			resp.HaqveJurisdiction = true
@@ -744,39 +770,11 @@ func (this *ActivityCoAntroller) SignupAdd() {
 	}
 	var userType int
 	var permissionStr string
-	if user.CompanyId <= 1 {
-		userType = 0
-	} else {
-		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyDetail == nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-			return
-		}
-		if companyDetail.Status == "永续" {
-			userType = 1
-		} else if companyDetail.Status == "试用" {
-			userType = 5
-		} else if companyDetail.Status == "正式" {
-			permissionStr, err = models.GetCompanyPermission(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-				return
-			}
-			if permissionStr == "专家" {
-				userType = 4
-			} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
-				userType = 2
-			} else {
-				userType = 3
-			}
-		}
+	userType, permissionStr, err = services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败!"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
 	}
 	if userType == 1 && activityInfo.ChartPermissionName == "研选" {
 		br.Msg = "您暂无查看该活动权限"
@@ -786,12 +784,6 @@ func (this *ActivityCoAntroller) SignupAdd() {
 
 	item := new(models.CygxActivitySignup)
 	if user.CompanyId > 1 {
-		permissionStr, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-			return
-		}
 		companyItem, err := models.GetCompanyDetailById(user.CompanyId)
 		//冻结客户
 		if err != nil {
@@ -812,17 +804,11 @@ func (this *ActivityCoAntroller) SignupAdd() {
 		}
 		//1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
 		//OperationMode     string `description:"操作方式 Apply:立即申请、Call:拨号 为空则为有权限"`
-		var havePower bool
-		if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
-			havePower = true
-		} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
-			havePower = true
-		} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
-			havePower = true
-		} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
-			havePower = true
-		} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
-			havePower = true
+		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		if err != nil {
+			br.Msg = "获取信息失败!"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
 		}
 		if havePower {
 			hasPermission = 1
@@ -1223,8 +1209,6 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
 	if detail.IsShowJurisdiction == 1 {
 		resp.IsShowJurisdiction = true
 	}
-	fmt.Println(isShowJurisdiction)
-
 	if isShowJurisdiction == 1 || detail.IsShowJurisdiction == 1 {
 		resp.IsShowJurisdiction = true
 		for k, _ := range listChartPermissionid {
@@ -1246,56 +1230,11 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
 		activeStateList[0].IsChoose = true
 	}
 	var userType int
-	var permissionStr string
-	if user.CompanyId <= 1 {
-		userType = 0
-	} else {
-		total, err := models.GetCountCompanyDetailByIdGroup(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
-			return
-		}
-		if total == 0 {
-			userType = 0
-		} else {
-			companyDetail, err := models.GetCompanyDetailByIdGroup(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败!"
-				br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-				return
-			}
-			if companyDetail == nil {
-				br.Msg = "获取信息失败!"
-				br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-				return
-			}
-			permissionStr, err = models.GetCompanyPermission(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-				return
-			}
-			//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
-			if companyDetail.Status == "永续" {
-				userType = 1
-			} else if companyDetail.Status == "试用" {
-				userType = 5
-			} else if companyDetail.Status == "正式" {
-				if permissionStr == "专家" {
-					userType = 4
-				} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
-					userType = 2
-				} else {
-					userType = 3
-				}
-				if userType == 3 {
-					if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
-						userType = 4
-					}
-				}
-			}
-		}
+	userType, _, err = services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败!"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
 	}
 	var listChartPermissionidNew []*models.ActivityChartPermission
 	for _, v := range listChartPermissionid {
@@ -1407,39 +1346,11 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
 	}
 	var userType int
 	var permissionStr string
-	if user.CompanyId <= 1 {
-		userType = 0
-	} else {
-		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyDetail == nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-			return
-		}
-		if companyDetail.Status == "永续" {
-			userType = 1
-		} else if companyDetail.Status == "试用" {
-			userType = 5
-		} else if companyDetail.Status == "正式" {
-			permissionStr, err = models.GetCompanyPermission(user.CompanyId)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-				return
-			}
-			if permissionStr == "专家" {
-				userType = 4
-			} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
-				userType = 2
-			} else {
-				userType = 3
-			}
-		}
+	userType, permissionStr, err = services.GetUserType(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败!"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
 	}
 	if userType == 1 && activityInfo.ChartPermissionName == "研选" {
 		br.Msg = "您暂无查看该活动权限"
@@ -1452,12 +1363,6 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
 		return
 	}
 	if user.CompanyId > 1 {
-		permissionStr, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-			return
-		}
 		companyItem, err := models.GetCompanyDetailById(user.CompanyId)
 		//冻结客户
 		if err != nil {
@@ -1477,17 +1382,11 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
 			}
 		}
 
-		var havePower bool
-		if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
-			havePower = true
-		} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
-			havePower = true
-		} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
-			havePower = true
-		} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
-			havePower = true
-		} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
-			havePower = true
+		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		if err != nil {
+			br.Msg = "获取信息失败!"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
 		}
 		if havePower {
 			hasPermission = 1
@@ -1884,7 +1783,6 @@ func (this *ActivityCoAntroller) LabelList() {
 		} else {
 			conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + `) `
 		}
-		//conditionOr += `	OR ( art.is_limit_people = 0 	  ` + condition + `) `
 		condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
 	}
 	sortTime = ` mintimesort ASC `

+ 3 - 0
controllers/home.go

@@ -88,6 +88,9 @@ func (this *HomeController) ListHome() {
 		if strings.Contains(item.CategoryName, "研选") {
 			list[i].IsResearch = true
 		}
+		if item.Pv > 999 {
+			list[i].Pv = 999
+		}
 	}
 	resp.List = list
 	resp.Paging = page

+ 90 - 0
services/activity.go

@@ -303,3 +303,93 @@ func EditUserOutboundMobile(cont context.Context) (err error) {
 	fmt.Println("修改完成")
 	return
 }
+
+//获取 用户类型   //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+func GetUserType(companyId int) (userType int, permissionStrnew string, err error) {
+
+	var permissionStr string
+	if companyId <= 1 {
+		userType = 0
+	} else {
+		total, errs := models.GetCountCompanyDetailByIdGroup(companyId)
+		if errs != nil {
+			err = errs
+			return
+		}
+		if total == 0 {
+			userType = 0
+		} else {
+			companyDetail, errs := models.GetCompanyDetailByIdGroup(companyId)
+			if errs != nil {
+				err = errs
+				return
+			}
+			permissionStr, errs = models.GetCompanyPermission(companyId)
+			if errs != nil {
+				err = errs
+				return
+			}
+			//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+			if companyDetail.Status == "永续" {
+				userType = 1
+			} else if companyDetail.Status == "试用" {
+				userType = 5
+			} else if companyDetail.Status == "正式" {
+				if permissionStr == "专家" {
+					userType = 4
+				} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
+					userType = 2
+				} else {
+					userType = 3
+				}
+				if userType == 3 {
+					if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
+						userType = 4
+					}
+				}
+			}
+		}
+	}
+	permissionStrnew = permissionStr
+	return
+}
+
+// 校验被分享的用户是否有查看详情的权限
+func GetShareNoPowe(activityInfo *models.ActivityDetail, permissionStr string, userType int) (noPower bool, err error) {
+	//var noPower bool
+	if (userType == 1 || userType == 4 || userType == 5) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
+		noPower = true
+	}
+	//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+	if userType == 2 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
+		noPower = true
+	}
+	if userType == 2 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
+		noPower = true
+	}
+	if userType == 3 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
+		noPower = true
+	}
+	if userType == 3 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
+		noPower = true
+	}
+	return
+}
+
+// 校验用户报名的权限
+func GetHavePower(activityInfo *models.ActivityDetail, permissionStr, companyDetailStatus string, userType int) (havePower bool, err error) {
+	if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
+		havePower = true
+	} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
+		havePower = true
+	} else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
+		havePower = true
+	} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
+		havePower = true
+	} else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
+		havePower = true
+	} else if activityInfo.ActivityTypeId == 5 && strings.Contains(permissionStr, "专家") {
+		havePower = true
+	}
+	return
+}