소스 검색

报名详情,报名数量回显

xingzai 2 년 전
부모
커밋
f44e38e59c
6개의 변경된 파일156개의 추가작업 그리고 46개의 파일을 삭제
  1. 19 23
      controllers/activity.go
  2. 13 0
      controllers/activity_special.go
  3. 1 0
      models/activity.go
  4. 50 0
      models/company_activity_trip.go
  5. 72 22
      services/activity_special.go
  6. 1 1
      utils/common.go

+ 19 - 23
controllers/activity.go

@@ -1444,7 +1444,7 @@ func (this *ActivityCoAntroller) SignupAdd() {
 				//1:预约外呼 、2:设置会议提醒 、 3:预约纪要 、4:活动报名
 				if signupType == 1 {
 					go services.ActivityUserRemind(user, activityInfo, 1)
-					resp.PopupMsg = item.CountryCode + "-" + item.Mobile + "<br/>预约成功,已加入您的活动日程<br/><br/>想要及时获取活动时间变更通知,请关注【查研观向小助手】公众号`"
+					resp.PopupMsg = item.CountryCode + "-" + item.Mobile + "<br/>预约成功,已加入您的活动日程<br/><br/>想要及时获取活动时间变更通知,请关注【查研观向小助手】公众号"
 				} else {
 					go services.ActivityUserRemind(user, activityInfo, 4)
 					resp.PopupMsg = "报名成功,已加入您的活动日程<br/><br/>想要及时获取活动时间变更通知,请关注【查研观向小助手】公众号"
@@ -3050,12 +3050,12 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 		return
 	}
 	//判断客户规模是否属于可见范围的活动
-	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-		return
-	}
+	//companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	//if err != nil && err.Error() != utils.ErrNoRow() {
+	//	br.Msg = "获取信息失败"
+	//	br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+	//	return
+	//}
 	//isMaker := user.IsMaker
 
 	//var sqlExport string
@@ -3091,11 +3091,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 
 	//查询专项产业调研展示权限 仅对大套餐客户跟永续客户展示
 	if whichDay == "" {
-		var scale string
-		if companyProduct != nil {
-			scale = companyProduct.Scale
-		}
-		speciaItem, err := services.GetActivityLabelSpecialList(userType, isPower, chartPermissionIds, scale, permissionNameStr)
+		speciaItem, err := services.GetActivityLabelSpecialList(user, isPower, chartPermissionIds, permissionNameStr)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -4025,12 +4021,12 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 		return
 	}
 	//判断客户规模是否属于可见范围的活动
-	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-		return
-	}
+	//companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	//if err != nil && err.Error() != utils.ErrNoRow() {
+	//	br.Msg = "获取信息失败"
+	//	br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+	//	return
+	//}
 	var sqlExport string
 	//处理专家权限的查询
 	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
@@ -4075,11 +4071,11 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 
 	if whichDay == "" {
 		//查询专项产业调研展示权限
-		var scale string
-		if companyProduct != nil {
-			scale = companyProduct.Scale
-		}
-		speciaItem, err := services.GetActivityLabelSpecialList(userType, isPower, chartPermissionIds, scale, permissionNameStr)
+		//var scale string
+		//if companyProduct != nil {
+		//	scale = companyProduct.Scale
+		//}
+		speciaItem, err := services.GetActivityLabelSpecialList(user, isPower, chartPermissionIds, permissionNameStr)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,Err:" + err.Error()

+ 13 - 0
controllers/activity_special.go

@@ -318,6 +318,19 @@ func (this *ActivitySpecialCoAntroller) SpecialDetail() {
 			br.ErrMsg = "HandleActivitySpecialShow,Err:" + err.Error()
 			return
 		}
+		var condition string
+		var pars []interface{}
+
+		condition += ` AND activity_id =  ? `
+		pars = append(pars, activityInfo.ActivityId)
+
+		tripTota, err := models.GetActivitySpecialTripCountByActivityId(condition, pars)
+		if err != nil {
+			br.Msg = "获取数据失败!"
+			br.ErrMsg = "GetActivitySpecialTripCountByActivityId,Err:" + err.Error()
+			return
+		}
+		activityInfo.TripNum = tripTota
 		activityInfo.ActivityTypeName = "专项调研"
 		resp.Detail = activityInfo
 	}

+ 1 - 0
models/activity.go

@@ -816,6 +816,7 @@ type CygxActivitySpecialDetail struct {
 	Scale                 string `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。多个用, 隔开"`
 	CustomerTypeIds       string `description:"活动可见的客户类型,多个ID用 , 隔开"`
 	IsTrip                int    `description:"是否报名 1是 ,0 否"`
+	TripNum               int    `description:"已报名人数"`
 	Days                  int    `description:"调研天数"`
 	Host                  string `description:"主持人"`
 	PersonInCharge        string `description:"纪要负责人"`

+ 50 - 0
models/company_activity_trip.go

@@ -75,3 +75,53 @@ func GetCompanyPermissionByUserZhengShiTrip(companyId int) (permission string, e
 	err = o.Raw(sql, companyId).QueryRow(&permission)
 	return
 }
+
+//GetCompanyReportPermissionUpgrade 获取升级的权限类型
+func GetCompanyReportPermissionUpgrade(companyId, productId int) (items []*CompanyReportPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+	re.*
+FROM
+	company_report_permission  as re 
+	INNER JOIN chart_permission as  c ON c.chart_permission_id = re.chart_permission_id
+WHERE
+	re.company_id = ? 
+	AND re.product_id = ? 
+	AND re.is_upgrade = 1 
+	AND c.permission_type = 1
+	AND STATUS = '正式' `
+	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
+	return
+}
+
+// GetChartPermissionByIds 主键获取权限
+func GetChartPermissionByIds(permissionIds []string) (list []*ChartPermission, err error) {
+	qb, _ := orm.NewQueryBuilder("mysql")
+	// 构建查询对象
+	qb.Select("*").From("chart_permission").
+		Where("chart_permission_id").In(permissionIds...)
+	// 导出 SQL 语句
+	sql := qb.String()
+
+	// 执行 SQL 语句
+	o := orm.NewOrm()
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+//GetCompanyPermissionNameCheck 通过名称判断客户是否开了某一类型的权限
+func GetCompanyPermissionNameCheck(companyId, productId int, permissionName string) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			COUNT( 1 ) AS count 
+		FROM
+			company_report_permission AS a 
+			INNER JOIN chart_permission as  c  ON c.chart_permission_id = a.chart_permission_id
+		WHERE
+			a.company_id = ?
+			AND a.STATUS = '正式'
+			AND a.product_id = ? 
+			AND c.chart_permission_name = ? `
+	err = o.Raw(sql, companyId, productId, permissionName).QueryRow(&count)
+	return
+}

+ 72 - 22
services/activity_special.go

@@ -72,8 +72,38 @@ func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
 }
 
 //处理专项调研的展示
-func GetActivityLabelSpecialList(userType, isPower int, chartPermissionIds, scale, permissionNameStr string) (item *models.ActivityTypeHome, err error) {
+func GetActivityLabelSpecialList(user *models.WxUserItem, isPower int, chartPermissionIds, permissionNameStr string) (item *models.ActivityTypeHome, err error) {
+	itemList := new(models.ActivityTypeHome)
+	userType, e := GetSpecialUserType(user)
+	if e != nil {
+		err = errors.New("GetSpecialUserType, Err: " + e.Error())
+		return
+	}
+	if userType == 0 {
+		itemList.List = make([]*models.CygxActivityLabelList, 0)
+		item = itemList
+		return
+	}
+	companyDetail, e := models.GetCompanyDetailByIdGroupTrip(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanyDetailByIdGroupTrip, Err: " + e.Error())
+		return
+	}
+	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
 	var condition string
+	if companyDetail.Status == "永续" {
+		condition, e = HandleActivityLabelSpecialPermission(user)
+		if e != nil {
+			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
+			return
+		}
+	} else {
+		condition, e = HandleActivityLabelSpecialTripPermission(user)
+		if e != nil {
+			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
+			return
+		}
+	}
 	var pars []interface{}
 	condition = ` AND art.publish_status = 1  AND art.label != '' `
 
@@ -84,11 +114,6 @@ func GetActivityLabelSpecialList(userType, isPower int, chartPermissionIds, scal
 	if chartPermissionIds != "" {
 		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `) `
 	}
-	var conditionOr string
-	if scale != "" {
-		conditionOr += ` OR (  art.scale LIKE '%` + scale + `%'	 ` + condition + `) `
-	}
-	condition += ` AND  art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%'` + conditionOr
 	specialList, err := models.GetActivityLabelSpecialListAll(condition, pars, 0, 8)
 	if err != nil {
 		return
@@ -98,7 +123,7 @@ func GetActivityLabelSpecialList(userType, isPower int, chartPermissionIds, scal
 		specialList[k2].ImgUrlBg = "https://hzstatic.hzinsights.com/static/temp/20220426202204/20220426/XDLLsjC9XAAy8LIzQr7GsjrBbtX6.png"
 		specialList[k2].ImgUrlBg = utils.ACTIVITY_ZXDY_ImgUrl3
 	}
-	itemList := new(models.ActivityTypeHome)
+
 	itemList.ActivityTypeName = "专项产业调研"
 	itemList.Resource = 2
 	itemList.List = specialList
@@ -135,12 +160,19 @@ func HandleActivityLabelSpecialPermission(user *models.WxUserItem) (condition st
 	return
 }
 
-//HandleActivityLabelSpecialPermission 处理专项产业调研的查询权限sql 升级
+//HandleActivityLabelSpecialPermisseion 处理专项产业调研的查询权限sql 升级
 func HandleActivityLabelSpecialTripPermission(user *models.WxUserItem) (condition string, err error) {
-	userType, permissionStr, err := GetActivitySpecialUserType(user.CompanyId)
-	if err != nil {
+	_, permissionStr, e := GetActivitySpecialUserType(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetActivitySpecialUserType, Err: " + e.Error())
+		return
+	}
+	userType, e := GetSpecialUserType(user)
+	if e != nil {
+		err = errors.New("GetSpecialUserType, Err: " + e.Error())
 		return
 	}
+	fmt.Println("userType", userType)
 	slicePer := strings.Split(permissionStr, ",")
 	var permissionSqlStr string
 	for _, v := range slicePer {
@@ -156,7 +188,9 @@ func HandleActivityLabelSpecialTripPermission(user *models.WxUserItem) (conditio
 	permissionSqlStr = strings.Replace(permissionSqlStr, "(主观)", "", -1)
 	permissionSqlStr = strings.Replace(permissionSqlStr, "(客观)", "", -1)
 	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.is_offline = 0  `
-	condition += ` AND art.chart_permission_name  IN (` + permissionSqlStr + `) `
+	if permissionSqlStr != "" {
+		condition += ` AND art.chart_permission_name  IN (` + permissionSqlStr + `) `
+	}
 	condition += ` AND  art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
 	return
 }
@@ -518,10 +552,8 @@ func GetActivitySpecialUserType(companyId int) (userType int, permissionStrnew s
 	return
 }
 
-//GetSpeciUserhasPermissionType 获取专项产业调研的用户身份类型
-func GetSpeciUserhasPermissionType(user *models.WxUserItem, activityDetail *models.CygxActivitySpecialDetail) (hasPermissionType int, err error) {
-	//var condition string
-	//HasPermission     int    `description:"操作方式,1:有该行业权限,正常展示,2:无该行业权限,3:潜在客户,未提交过申请,4:潜在客户,已提交过申请,5:有IFCC、无权益"`
+//GetSpecialUserType 获取专项产业调研的用户身份类型
+func GetSpecialUserType(user *models.WxUserItem) (userType int, err error) {
 	companyId := user.CompanyId
 	companyDetail, e := models.GetCompanyDetailByIdGroupTrip(companyId)
 	if e != nil {
@@ -529,16 +561,34 @@ func GetSpeciUserhasPermissionType(user *models.WxUserItem, activityDetail *mode
 		return
 	}
 	if companyId <= 1 {
-		hasPermissionType = 0
+		userType = 0
 	} else {
 		if companyDetail.Status == "永续" {
-			hasPermissionType = 1
+			userType = 1
 		} else {
-			//total, e := models.GetCountCompanyDetailByIdGroup(companyId)
-			//if e != nil {
-			//	err = errors.New("GetCountCompanyDetailByIdGroup, Err: " + e.Error())
-			//	return
-			//}
+			if companyDetail.Status == "正式" {
+				list, e := models.GetCompanyReportPermissionUpgrade(companyId, 2)
+				if e != nil && e.Error() != utils.ErrNoRow() {
+					err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
+				}
+				if len(list) == 0 {
+					return
+				}
+				if len(list) == 4 {
+					totalName, e := models.GetCompanyPermissionNameCheck(companyId, 2, "策略")
+					if e != nil {
+						err = errors.New("获取品种信息失败, Err:" + e.Error())
+						return
+					}
+					if totalName > 0 {
+						userType = 2
+					} else {
+						userType = 8
+					}
+				} else {
+					userType = 8
+				}
+			}
 		}
 	}
 	return

+ 1 - 1
utils/common.go

@@ -753,4 +753,4 @@ func InArrayByStr(idStrList []string, searchId string) (has bool) {
 		}
 	}
 	return
-}
+}