Bläddra i källkod

Merge branch 'cygx_9.3.1_0' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 2 år sedan
förälder
incheckning
6a8ec47145
4 ändrade filer med 418 tillägg och 346 borttagningar
  1. 196 212
      controllers/activity.go
  2. 0 1
      models/company_activity_trip.go
  3. 29 44
      services/activity.go
  4. 193 89
      services/activity_special.go

+ 196 - 212
controllers/activity.go

@@ -615,61 +615,56 @@ func (this *ActivityCoAntroller) SignupAdd() {
 	}
 	//SignupStatus "报名状态:人数已满:FullStarffed、单机构超过两人:TwoPeople、爽约次数过多:BreakPromise、超时:Overtime 、成功:Success"`
 	//HasPermission "1:有该行业权限,正常展示,2:无该行业权限,3:潜在客户,未提交过申请,4:潜在客户,已提交过申请"`
-	var companyDetailStatus string
-	if user.CompanyId <= 1 {
-		companyDetailStatus = ""
-	} else {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyPermission == "" {
-			if applyCount > 0 {
-				hasPermission = 4
+
+	companyPermission, err := models.GetCompanyPermission(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+		return
+	}
+	if companyPermission == "" {
+		if applyCount > 0 {
+			hasPermission = 4
+		} else {
+			if sellerItem != nil {
+				hasPermission = 5
 			} else {
-				if sellerItem != nil {
-					hasPermission = 5
+				//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+				sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取信息失败"
+					br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+					return
+				}
+				if sellerItemQy != nil {
+					hasPermission = 2
+					resp.SellerMobile = sellerItemQy.Mobile
+					resp.SellerName = sellerItemQy.RealName
 				} else {
-					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取信息失败"
-						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-						return
-					}
-					if sellerItemQy != nil {
-						hasPermission = 2
-						resp.SellerMobile = sellerItemQy.Mobile
-						resp.SellerName = sellerItemQy.RealName
-					} else {
-						hasPermission = 3
-					}
+					hasPermission = 3
 				}
 			}
-			resp.HasPermission = hasPermission
-			resp.ActivityId = activityId
-			resp.OperationMode = "Apply"
-			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
 		}
-		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
-		}
-		companyDetailStatus = companyDetail.Status
+		resp.HasPermission = hasPermission
+		resp.ActivityId = activityId
+		resp.OperationMode = "Apply"
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
+	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
 	}
 	var userType int
 	var permissionStr string
@@ -717,10 +712,16 @@ func (this *ActivityCoAntroller) SignupAdd() {
 		}
 		//1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
 		//OperationMode     string `description:"操作方式 Apply:立即申请、Call:拨号 为空则为有权限"`
-		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		//havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		//if err != nil {
+		//	br.Msg = "获取信息失败!"
+		//	br.ErrMsg = "获取失败,Err:" + err.Error()
+		//	return
+		//}
+		havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
 		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 			return
 		}
 		if havePower {
@@ -1294,61 +1295,55 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
 			return
 		}
 	}
-	var companyDetailStatus string
-	if user.CompanyId <= 1 {
-		companyDetailStatus = ""
-	} else {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyPermission == "" {
-			if applyCount > 0 {
-				hasPermission = 4
+	companyPermission, err := models.GetCompanyPermission(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+		return
+	}
+	if companyPermission == "" {
+		if applyCount > 0 {
+			hasPermission = 4
+		} else {
+			if sellerItem != nil {
+				hasPermission = 5
 			} else {
-				if sellerItem != nil {
-					hasPermission = 5
+				//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+				sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取信息失败"
+					br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+					return
+				}
+				if sellerItemQy != nil {
+					hasPermission = 2
+					resp.SellerMobile = sellerItemQy.Mobile
+					resp.SellerName = sellerItemQy.RealName
 				} else {
-					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取信息失败"
-						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-						return
-					}
-					if sellerItemQy != nil {
-						hasPermission = 2
-						resp.SellerMobile = sellerItemQy.Mobile
-						resp.SellerName = sellerItemQy.RealName
-					} else {
-						hasPermission = 3
-					}
+					hasPermission = 3
 				}
 			}
-			resp.ActivityId = activityId
-			resp.HasPermission = hasPermission
-			resp.OperationMode = "Apply"
-			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
 		}
-		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
-		}
-		companyDetailStatus = companyDetail.Status
+		resp.ActivityId = activityId
+		resp.HasPermission = hasPermission
+		resp.OperationMode = "Apply"
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
+	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
 	}
 	var userType int
 	var permissionStr string
@@ -1399,10 +1394,10 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
 			}
 		}
 
-		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
 		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 			return
 		}
 		if havePower {
@@ -2361,61 +2356,55 @@ func (this *ActivityCoAntroller) CheckAsk() {
 		}
 	}
 	hasPermission := 0
-	var companyDetailStatus string
-	if user.CompanyId <= 1 {
-		companyDetailStatus = ""
-	} else {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyPermission == "" {
-			if applyCount > 0 {
-				hasPermission = 4
+	companyPermission, err := models.GetCompanyPermission(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+		return
+	}
+	if companyPermission == "" {
+		if applyCount > 0 {
+			hasPermission = 4
+		} else {
+			if sellerItem != nil {
+				hasPermission = 5
 			} else {
-				if sellerItem != nil {
-					hasPermission = 5
+				//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+				sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取信息失败"
+					br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+					return
+				}
+				if sellerItemQy != nil {
+					hasPermission = 2
+					resp.SellerMobile = sellerItemQy.Mobile
+					resp.SellerName = sellerItemQy.RealName
 				} else {
-					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取信息失败"
-						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-						return
-					}
-					if sellerItemQy != nil {
-						hasPermission = 2
-						resp.SellerMobile = sellerItemQy.Mobile
-						resp.SellerName = sellerItemQy.RealName
-					} else {
-						hasPermission = 3
-					}
+					hasPermission = 3
 				}
 			}
-			resp.ActivityId = activityId
-			resp.HasPermission = hasPermission
-			resp.OperationMode = "Apply"
-			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
 		}
-		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
-		}
-		companyDetailStatus = companyDetail.Status
+		resp.ActivityId = activityId
+		resp.HasPermission = hasPermission
+		resp.OperationMode = "Apply"
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
+	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
 	}
 	var userType int
 	var permissionStr string
@@ -2459,10 +2448,10 @@ func (this *ActivityCoAntroller) CheckAsk() {
 				return
 			}
 		}
-		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
 		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 			return
 		}
 		if havePower {
@@ -3733,61 +3722,56 @@ func (this *ActivityCoAntroller) ActivityAppointmentAdd() {
 		}
 	}
 	hasPermission := 0
-	var companyDetailStatus string
-	if user.CompanyId <= 1 {
-		companyDetailStatus = ""
-	} else {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyPermission == "" {
-			if applyCount > 0 {
-				hasPermission = 4
+
+	companyPermission, err := models.GetCompanyPermission(user.CompanyId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+		return
+	}
+	if companyPermission == "" {
+		if applyCount > 0 {
+			hasPermission = 4
+		} else {
+			if sellerItem != nil {
+				hasPermission = 5
 			} else {
-				if sellerItem != nil {
-					hasPermission = 5
+				//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+				sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取信息失败"
+					br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
+					return
+				}
+				if sellerItemQy != nil {
+					hasPermission = 2
+					resp.SellerMobile = sellerItemQy.Mobile
+					resp.SellerName = sellerItemQy.RealName
 				} else {
-					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取信息失败"
-						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-						return
-					}
-					if sellerItemQy != nil {
-						hasPermission = 2
-						resp.SellerMobile = sellerItemQy.Mobile
-						resp.SellerName = sellerItemQy.RealName
-					} else {
-						hasPermission = 3
-					}
+					hasPermission = 3
 				}
 			}
-			resp.ActivityId = activityId
-			resp.HasPermission = hasPermission
-			resp.OperationMode = "Apply"
-			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
 		}
-		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
-		}
-		companyDetailStatus = companyDetail.Status
+		resp.ActivityId = activityId
+		resp.HasPermission = hasPermission
+		resp.OperationMode = "Apply"
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+		return
+	}
+	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
 	}
 	var userType int
 	var permissionStr string
@@ -3833,10 +3817,10 @@ func (this *ActivityCoAntroller) ActivityAppointmentAdd() {
 			}
 		}
 
-		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
+		havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
 		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 			return
 		}
 		if havePower {

+ 0 - 1
models/company_activity_trip.go

@@ -69,7 +69,6 @@ func GetCompanyPermissionByUserZhengShiTrip(companyId int) (permission string, e
 			WHERE  a.company_id=?
 			AND c.is_suspend=0
             AND b.cygx_auth=1
-			AND a.is_upgrade = 1 
 			AND ( a.is_upgrade = 1 AND c.STATUS = '正式' OR c.STATUS = '永续' ) `
 	o := orm.NewOrm()
 	err = o.Raw(sql, companyId).QueryRow(&permission)

+ 29 - 44
services/activity.go

@@ -385,6 +385,7 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 // GetSpecialDetailUserPower 处理用户查看详情的权限
 func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.ActivityDetail) (havePower bool, err error) {
 	var companyDetailStatus string
+	var userTypeStr string
 	userType, permissionStr, e := GetUserType(user.CompanyId)
 	if e != nil {
 		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
@@ -396,7 +397,6 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
 			err = e
 			return
 		}
-		var userTypeStr string
 		userTypeStr = mapUserType[userType]
 		if !strings.Contains(userTypeStr, userTypeStr) {
 			return
@@ -449,6 +449,22 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
 	if activityInfo.YidongActivityId != "" && permissionStr != "" && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 		havePower = true
 	}
+
+	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
+	if errs != nil {
+		err = errs
+		return
+	}
+	if strings.Contains(permissionShengji, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, "8") {
+		havePower = true
+		return
+	}
+
+	if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, userTypeStr) {
+		havePower = true
+		return
+	}
+
 	if havePower && activityInfo.LimitPeopleNum > 0 {
 		//对于一些特殊的活动,即使权限满足也不给产看
 		noPower, e := GetShareNoPowe(activityInfo, permissionStr, userType, user)
@@ -706,8 +722,6 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 		condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
 	}
 
-	fmt.Println(keyWord)
-	fmt.Println(keyWordNoIk)
 	//有搜索条件传过来时,不判进行状态条件
 	if keyWord != "" {
 		if ikType == 2 || ikType == 3 {
@@ -768,6 +782,8 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 		if len(ativityVIdArry) > 0 {
 			ativityVIdstr := strings.Join(ativityVIdArry, ",")
 			condition += ` AND art.activity_id IN  (` + ativityVIdstr + `) `
+		} else {
+			condition += ` AND art.activity_id = 0    `
 		}
 	}
 
@@ -775,51 +791,20 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	//condition += ` AND art.visible_range != 1  AND art.publish_status = 1 `
 	condition += `   AND art.publish_status = 1 `
 
-	permissionZhengShiStr, errs := models.GetCompanyPermissionByUserZhengShi(user.CompanyId)
-	if errs != nil {
-		err = errs
+	conditionShengji, conditionZhengshi, conditionHangYe, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
 		return
 	}
-	//9:其他行业正式客户:前述所有正式客户以外的正式客户 查询处理
-	if permissionZhengShiStr != "" && userType == 9 {
-		slicePerZhengshi := strings.Split(permissionZhengShiStr, ",")
-		permissionZhengShiStr = ""
-		for _, v := range slicePerZhengshi {
-			if userType == 1 {
-				//研选权限处理(永续客户无法查看研选)
-				if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
-					permissionZhengShiStr += "'" + v + "',"
-				}
-			} else {
-				permissionZhengShiStr += "'" + v + "',"
-			}
-		}
-		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(主观)", "", -1)
-		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(客观)", "", -1)
-		permissionZhengShiStr = strings.TrimRight(permissionZhengShiStr, ",")
-		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%9%'	   AND art.chart_permission_name  NOT  IN (` + permissionZhengShiStr + `)` + condition + `) `
+
+	if conditionShengji != "" {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionShengji + condition + ` ) `
 	}
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
-	if errs != nil {
-		err = errs
-		return
+	if conditionZhengshi != "" {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionZhengshi + condition + ` ) `
 	}
-	if permissionShengji != "" {
-		slicePerShengji := strings.Split(permissionShengji, ",")
-		permissionShengji = ""
-		for _, v := range slicePerShengji {
-			if userType == 1 {
-				//研选权限处理(永续客户无法查看研选)
-				if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
-					permissionShengji += "'" + v + "',"
-				}
-			} else {
-				permissionShengji += "'" + v + "',"
-			}
-		}
-		permissionShengji = strings.TrimRight(permissionShengji, ",")
-		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%8%'	   AND art.chart_permission_name  IN (` + permissionShengji + `)` + condition + `) `
+	if conditionHangYe != "" {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionHangYe + condition + ` ) `
 	}
 
 	conditionHz = condition

+ 193 - 89
services/activity_special.go

@@ -15,6 +15,61 @@ import (
 //	UpdateCygxActivitySpecialSignupNum()
 //}
 
+// ActivityLabelSpecialUserSql 专项产业调研用户权限查询数据预处理
+func ActivityLabelSpecialUserSql(user *models.WxUserItem) (conditionShengji, conditionZhengshi, conditionHangYe string, err error) {
+	_, userType, e := HandleActivityLabelSpecialTripPermission(user)
+	if e != nil {
+		err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
+		return
+	}
+	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
+	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
+	if errs != nil {
+		err = errs
+		return
+	}
+	if permissionShengji != "" {
+		slicePerShengji := strings.Split(permissionShengji, ",")
+		permissionShengji = ""
+		for _, v := range slicePerShengji {
+			permissionShengji += "'" + v + "',"
+		}
+		permissionShengji = strings.TrimRight(permissionShengji, ",")
+		conditionShengji = ` art.customer_type_ids LIKE '%8%' AND art.chart_permission_name  IN (` + permissionShengji + `)`
+	}
+	//9:其他行业正式客户:前述所有正式客户以外的正式客户 查询处理
+	permissionZhengShiStr, errs := models.GetCompanyPermissionByUserZhengShi(user.CompanyId)
+	if errs != nil {
+		err = errs
+		return
+	}
+	if permissionZhengShiStr != "" {
+		slicePerZhengshi := strings.Split(permissionZhengShiStr, ",")
+		permissionZhengShiStr = ""
+		for _, v := range slicePerZhengshi {
+			if userType == 1 {
+				//研选权限处理(永续客户无法查看研选)
+				if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
+					permissionZhengShiStr += "'" + v + "',"
+				}
+			} else {
+				permissionZhengShiStr += "'" + v + "',"
+			}
+		}
+		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(主观)", "", -1)
+		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(客观)", "", -1)
+		permissionZhengShiStr = strings.TrimRight(permissionZhengShiStr, ",")
+		permissionZhengShiStr += `, '宏观'`
+		if userType != 1 && userType != 2 && userType != 10 {
+			conditionHangYe = `  art.customer_type_ids LIKE '%3%'	   AND art.chart_permission_name    IN (` + permissionZhengShiStr + `)`
+		}
+		if userType == 9 {
+			conditionZhengshi = `  art.customer_type_ids LIKE '%9%'	   AND art.chart_permission_name  NOT  IN (` + permissionZhengShiStr + `)`
+		}
+	}
+	return
+}
+
 // 修改专项调研,用户与公司的参与数量
 func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
 	defer func() {
@@ -96,14 +151,15 @@ func GetActivityLabelSpecialList(user *models.WxUserItem, isPower int, chartPerm
 	}
 	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
 	var condition string
+	var conditionUser string
 	if companyDetail.Status == "永续" {
-		condition, e = HandleActivityLabelSpecialPermission(user)
+		conditionUser, e = HandleActivityLabelSpecialPermission(user)
 		if e != nil {
 			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
 			return
 		}
 	} else {
-		condition, _, e = HandleActivityLabelSpecialTripPermission(user)
+		conditionUser, _, e = HandleActivityLabelSpecialTripPermission(user)
 		if e != nil {
 			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
 			return
@@ -120,17 +176,72 @@ func GetActivityLabelSpecialList(user *models.WxUserItem, isPower int, chartPerm
 		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `) `
 	}
 	conditionTrip := condition
-	conditionTrip += ` AND art.activity_time_end > ` + "'" + time.Now().Format(utils.FormatDateTime) + " '"
-	conditionTrip += ` AND art.days > 0  ORDER BY art.activity_time ASC `
-	specialList, err := models.GetActivityLabelSpecialListAll(conditionTrip, pars, 0, 8)
-	if err != nil {
+	conditionTripSql := condition
+	conditionNoTrip := condition
+	conditionNoTripSql := condition
+	//condition += conditionUser
+	conditionShengji, conditionZhengshi, conditionHangYe, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
 		return
 	}
-	//if len(specialList) < 8 {
-	//	conditionTrip += ` AND art.days = 0  ORDER BY art.last_updated_time DESC`
+	conditionTrip += ` AND art.days > 0   AND art.activity_time_end  > '` + time.Now().Format(utils.FormatDateTime) + ` '`
+
+	var conditionZhengshiTrip string
+	var conditionShengjiTrip string
+	var conditionHangYeTrip string
 
-	condition += ` AND art.days = 0  ORDER BY art.last_updated_time DESC`
-	specialListNotrip, e := models.GetActivityLabelSpecialListAll(condition, pars, 0, 20)
+	//处理专项调研确认行程的其它正式客户权限查询
+	if conditionZhengshi != "" {
+		conditionZhengshiTrip = ` OR ( ` + conditionZhengshi + conditionTrip + ` )`
+	}
+	//处理升级权限查询
+	if conditionShengji != "" {
+		conditionShengjiTrip = ` OR ( ` + conditionShengji + conditionTrip + ` )`
+	}
+	//处理行业套餐客户权限查询
+	if conditionHangYe != "" {
+		conditionHangYeTrip = ` OR ( ` + conditionHangYe + conditionTrip + ` )`
+	}
+	if conditionZhengshi != "" {
+		conditionTrip += conditionZhengshiTrip
+	}
+	if conditionShengjiTrip != "" {
+		conditionTrip += conditionShengjiTrip
+	}
+	if conditionHangYeTrip != "" {
+		conditionTrip += conditionHangYeTrip
+	}
+
+	conditionTripSql += conditionUser + conditionTrip + `  ORDER BY art.activity_time ASC `
+	specialList, err := models.GetActivityLabelSpecialListAll(conditionTripSql, pars, 0, 80)
+	if err != nil {
+		return
+	}
+	conditionNoTrip += ` AND art.days = 0  `
+	var conditionShengjiNoTrip string
+	var conditionZhengshiNoTrip string
+	var conditionHangYeNoTrip string
+	if conditionShengji != "" {
+		conditionShengjiNoTrip = ` OR ( ` + conditionShengji + conditionNoTrip + ` )`
+	}
+	if conditionZhengshi != "" {
+		conditionZhengshiNoTrip = ` OR ( ` + conditionZhengshi + conditionNoTrip + ` )`
+	}
+	if conditionHangYe != "" {
+		conditionHangYeNoTrip = ` OR ( ` + conditionHangYe + conditionNoTrip + ` )`
+	}
+	if conditionShengji != "" {
+		conditionNoTrip += conditionShengjiNoTrip
+	}
+	if conditionZhengshi != "" {
+		conditionNoTrip += conditionZhengshiNoTrip
+	}
+	if conditionHangYe != "" {
+		conditionNoTrip += conditionHangYeNoTrip
+	}
+	conditionNoTripSql += conditionUser + conditionNoTrip + ` ORDER BY art.last_updated_time DESC`
+	specialListNotrip, e := models.GetActivityLabelSpecialListAll(conditionNoTripSql, pars, 0, 200)
 	if e != nil {
 		err = e
 		return
@@ -238,7 +349,6 @@ func GetActivitySpecialPrepareList(user *models.WxUserItem, startSize, pageSize
 	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
 	var condition string
 	var conditionUser string
-	var userType int
 	if companyDetail.Status == "永续" {
 		conditionUser, e = HandleActivityLabelSpecialPermission(user)
 		if e != nil {
@@ -246,7 +356,7 @@ func GetActivitySpecialPrepareList(user *models.WxUserItem, startSize, pageSize
 			return
 		}
 	} else {
-		conditionUser, userType, e = HandleActivityLabelSpecialTripPermission(user)
+		conditionUser, _, e = HandleActivityLabelSpecialTripPermission(user)
 		if e != nil {
 			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
 			return
@@ -260,32 +370,45 @@ func GetActivitySpecialPrepareList(user *models.WxUserItem, startSize, pageSize
 		pars = append(pars, keywords)
 	}
 
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
-	if errs != nil {
-		err = errs
+	conditionShengji, conditionZhengshi, conditionHangYe, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
 		return
 	}
-	var conditionOr string
-	if permissionShengji != "" && userType != 2 {
-		slicePerShengji := strings.Split(permissionShengji, ",")
-		permissionShengji = ""
-		for _, v := range slicePerShengji {
-			permissionShengji += "'" + v + "',"
-		}
-		permissionShengji = strings.TrimRight(permissionShengji, ",")
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%8%' AND art.chart_permission_name  IN (` + permissionShengji + `)` + condition + `) `
-		pars = append(pars, pars)
+	conditionNoTrip := condition
+	var conditionShengjiNoTrip string
+	var conditionZhengshiNoTrip string
+	var conditionHangYeNoTrip string
+	if conditionShengji != "" {
+		conditionShengjiNoTrip = ` OR ( ` + conditionShengji + conditionNoTrip + ` )`
 	}
-	condition += conditionUser + conditionOr
-	totalPrepare, e = models.GetActivitySpecialCount(condition, pars)
+	if conditionZhengshi != "" {
+		conditionZhengshiNoTrip = ` OR ( ` + conditionZhengshi + conditionNoTrip + ` )`
+	}
+	//处理行业套餐权限查询
+	if conditionHangYe != "" {
+		conditionHangYeNoTrip = ` OR ( ` + conditionHangYe + conditionNoTrip + ` )`
+	}
+
+	if conditionShengji != "" {
+		conditionNoTrip += conditionShengjiNoTrip
+	}
+	if conditionZhengshi != "" {
+		conditionNoTrip += conditionZhengshiNoTrip
+	}
+	if conditionHangYe != "" {
+		conditionNoTrip += conditionHangYeNoTrip
+	}
+	conditionNoTripSql := conditionUser + conditionNoTrip
+	//condition += conditionUser + conditionOr
+	totalPrepare, e = models.GetActivitySpecialCount(conditionNoTripSql, pars)
 	if e != nil {
 		err = errors.New("GetActivitySpecialCount, Err: " + e.Error())
 		return
 	}
 
-	condition += `  ORDER BY art.last_updated_time DESC `
-	list, e = models.GetCygxActivitySpecialDetailList(condition, pars, user.UserId, startSize, pageSize)
+	//conditionNoTripSql += `  ORDER BY art.last_updated_time DESC `
+	list, e = models.GetCygxActivitySpecialDetailList(conditionNoTripSql, pars, user.UserId, startSize, pageSize)
 	if e != nil {
 		err = errors.New("GetCygxActivitySpecialDetailList, Err: " + e.Error())
 		return
@@ -306,7 +429,7 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
 	var condition string
 	var conditionUser string
-	var userType int
+	//var userType int
 	if companyDetail.Status == "永续" {
 		conditionUser, e = HandleActivityLabelSpecialPermission(user)
 		if e != nil {
@@ -314,7 +437,7 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 			return
 		}
 	} else {
-		conditionUser, userType, e = HandleActivityLabelSpecialTripPermission(user)
+		conditionUser, _, e = HandleActivityLabelSpecialTripPermission(user)
 		if e != nil {
 			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
 			return
@@ -324,78 +447,67 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 	condition += ` AND art.days >0  AND art.publish_status =1   AND art.is_offline = 0  `
 	if state == 1 {
 		condition += ` AND art.activity_time >  '` + time.Now().Format(utils.FormatDateTime) + `'`
-		//pars = append(pars, time.Now())
 	}
 	if state == 2 {
 		condition += ` AND art.activity_time < '` + time.Now().Format(utils.FormatDateTime) + `'`
-		//pars = append(pars, time.Now())
 		condition += ` AND art.activity_time_end > '` + time.Now().Format(utils.FormatDateTime) + `'`
-		//pars = append(pars, time.Now())
 	}
 	if state == 3 {
 		condition += ` AND art.activity_time_end < '` + time.Now().Format(utils.FormatDateTime) + `'`
-		//pars = append(pars, time.Now())
 	}
 	if state == 4 {
 		condition += ` AND art.activity_time_end > '` + time.Now().Format(utils.FormatDateTime) + `'`
-		//pars = append(pars, time.Now())
 	}
 	if keywords != "" {
 		keywords = "%" + keywords + "%"
-		condition += ` AND art.research_theme LIKE ? `
-		pars = append(pars, keywords)
+		condition += ` AND art.research_theme LIKE  ` + keywords
+		//pars = append(pars, keywords)
 	}
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
-	if errs != nil {
-		err = errs
+	conditionTrip := condition
+	conditionTripSql := condition
+
+	conditionShengji, conditionZhengshi, conditionHangYe, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
 		return
 	}
-	var conditionOr string
-	if permissionShengji != "" {
-		slicePerShengji := strings.Split(permissionShengji, ",")
-		permissionShengji = ""
-		for _, v := range slicePerShengji {
-			permissionShengji += "'" + v + "',"
-		}
-		permissionShengji = strings.TrimRight(permissionShengji, ",")
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%8%' AND art.chart_permission_name  IN (` + permissionShengji + `)` + condition + `) `
-		//pars = append(pars, pars)
+	conditionTrip += ` AND art.days > 0   AND art.activity_time_end  > '` + time.Now().Format(utils.FormatDateTime) + ` '`
+
+	var conditionZhengshiTrip string
+	var conditionShengjiTrip string
+	var conditionHangYeTrip string
+
+	//处理专项调研确认行程的其它正式客户权限查询
+	if conditionZhengshi != "" {
+		conditionZhengshiTrip = ` OR ( ` + conditionZhengshi + conditionTrip + ` )`
 	}
-	//9:其他行业正式客户:前述所有正式客户以外的正式客户 查询处理
-	permissionZhengShiStr, errs := models.GetCompanyPermissionByUserZhengShi(user.CompanyId)
-	if errs != nil {
-		err = errs
-		return
+	//处理专项调研确认行程的升级权限查询
+	if conditionShengji != "" {
+		conditionShengjiTrip = ` OR ( ` + conditionShengji + conditionTrip + ` )`
 	}
-	if permissionZhengShiStr != "" && userType == 9 {
-		slicePerZhengshi := strings.Split(permissionZhengShiStr, ",")
-		permissionZhengShiStr = ""
-		for _, v := range slicePerZhengshi {
-			if userType == 1 {
-				//研选权限处理(永续客户无法查看研选)
-				if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
-					permissionZhengShiStr += "'" + v + "',"
-				}
-			} else {
-				permissionZhengShiStr += "'" + v + "',"
-			}
-		}
-		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(主观)", "", -1)
-		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(客观)", "", -1)
-		permissionZhengShiStr = strings.TrimRight(permissionZhengShiStr, ",")
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%9%'	   AND art.chart_permission_name  NOT  IN (` + permissionZhengShiStr + `)` + condition + `) `
-		//pars = append(pars, pars)
+	//处理行业套餐客户权限查询
+	if conditionHangYe != "" {
+		conditionHangYeTrip = ` OR ( ` + conditionHangYe + conditionTrip + ` )`
+	}
+
+	if conditionZhengshi != "" {
+		conditionTrip += conditionZhengshiTrip
+	}
+	if conditionShengjiTrip != "" {
+		conditionTrip += conditionShengjiTrip
 	}
+	if conditionHangYeTrip != "" {
+		conditionTrip += conditionHangYeTrip
+	}
+	conditionTripSql += conditionUser + conditionTrip + `  ORDER BY art.activity_time ASC `
 
-	condition += conditionUser + conditionOr
-	totalConfirm, e = models.GetActivitySpecialCount(condition, pars)
+	totalConfirm, e = models.GetActivitySpecialCount(conditionTripSql, pars)
 	if e != nil {
 		err = errors.New("GetActivitySpecialCount, Err: " + e.Error())
 		return
 	}
 	condition += `  ORDER BY art.activity_time ASC `
-	list, e = models.GetCygxActivitySpecialDetailList(condition, pars, user.UserId, startSize, pageSize)
+	list, e = models.GetCygxActivitySpecialDetailList(conditionTripSql, pars, user.UserId, startSize, pageSize)
 	if e != nil {
 		err = errors.New("GetCygxActivitySpecialDetailList, Err: " + e.Error())
 		return
@@ -800,18 +912,10 @@ func GetSpecialDetailUserPower(user *models.WxUserItem, activityInfo *models.Cyg
 		return
 	}
 
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
-	if errs != nil {
-		err = errs
+	if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, "8") {
+		havePower = true
 		return
 	}
-	if permissionShengji != "" {
-		if strings.Contains(permissionShengji, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, "8") {
-			havePower = true
-			return
-		}
-	}
 	return
 }