Sfoglia il codice sorgente

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

xingzai 2 anni fa
parent
commit
642c413c51
4 ha cambiato i file con 105 aggiunte e 583 eliminazioni
  1. 17 570
      controllers/activity.go
  2. 1 1
      models/company.go
  3. 0 9
      routers/commentsRouter.go
  4. 87 3
      services/activity.go

+ 17 - 570
controllers/activity.go

@@ -55,347 +55,6 @@ func (this *ActivityCoAntroller) List() {
 	br.Data = resp
 }
 
-// @Title 活动列表
-// @Description 获取活动列表接口
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
-// @Param   ChartPermissionIds   query   string  false     "行业id 多个用 , 隔开"
-// @Param   ActivityTypeIds   query   string  false     "活动类型id 多个用 , 隔开"
-// @Param   KeyWord   query   string  false       "搜索关键词 多个用 , 隔开"
-// @Param   ActiveState   query   string  false       "活动进行状态 未开始:1、进行中2、已结束3"
-// @Param   WhichDay   query   string  false       "哪一天 今天:1、明天:2,多个用 , 隔开"
-// @Param   IsShowJurisdiction   query   int  false       "是否仅展示有权限的,1是,2否 默认为零"
-// @Param   Label   query   string  false       "搜索主题 多个用 , 隔开"
-// @Param   PlayBack   query   int  false       "是否仅展示回放 1:是、0:否 默认0"
-// @Param   KeyWord   query   string  false       "搜索关键词 多个用 , 隔开"
-// @Success 200 {object} models.GetCygxActivityListRep
-// @router /list_del_test [get]
-func (this *ActivityCoAntroller) ActivityList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	user := this.User
-	if user == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		return
-	}
-	uid := user.UserId
-	pageSize, _ := this.GetInt("PageSize")
-	currentIndex, _ := this.GetInt("CurrentIndex")
-	chartPermissionIds := this.GetString("ChartPermissionIds")
-	activityTypeIds := this.GetString("ActivityTypeIds")
-	whichDay := this.GetString("WhichDay")
-	isShowJurisdiction, _ := this.GetInt("IsShowJurisdiction")
-	keyWord := this.GetString("KeyWord")
-	keyWordSearch := this.GetString("KeyWord")
-	activeState := this.GetString("ActiveState")
-	label := this.GetString("Label")
-	playBack, _ := this.GetInt("PlayBack")
-	//入参为 undefined 时的处理
-	if chartPermissionIds == "undefined" {
-		chartPermissionIds = ""
-	}
-	// 查研观向7.4-始终查询宏观的活动
-	if chartPermissionIds != "" {
-		chartPermissionIds += ",1"
-	}
-	if activityTypeIds == "undefined" {
-		activityTypeIds = ""
-	}
-	if whichDay == "undefined" {
-		whichDay = ""
-	}
-	if activeState == "undefined" {
-		activeState = ""
-	}
-	if label == "undefined" {
-		label = ""
-	}
-	//更新用户的搜索信息
-	itemSearch := new(models.CygxActivityUserSearchContent)
-	itemSearch.UserId = uid
-	itemSearch.CreateTime = time.Now()
-	itemSearch.Mobile = user.Mobile
-	itemSearch.Email = user.Email
-	itemSearch.CompanyId = user.CompanyId
-	itemSearch.CompanyName = user.CompanyName
-	itemSearch.ModifyTime = time.Now()
-	itemSearch.ChartPermissionids = chartPermissionIds
-	itemSearch.ActivityTypeids = activityTypeIds
-	itemSearch.ActiveState = activeState
-	itemSearch.IsShowJurisdiction = isShowJurisdiction
-	//并发缓存校验
-	cacheKey := fmt.Sprint("xygx:activity_user_search:add:", uid)
-	ttlTime := utils.Rc.GetRedisTTL(cacheKey)
-	_, errSearch := models.AddUserSearchContent(itemSearch, ttlTime)
-	if errSearch != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "操作失败,Err:" + errSearch.Error()
-		return
-	}
-	utils.Rc.SetNX(cacheKey, user.Mobile, time.Second*10)
-	userType, permissionStr, err := services.GetUserType(user.CompanyId)
-	if isShowJurisdiction == 1 && chartPermissionIds == "" && userType == 4 {
-		activityTypeIds = "1,3"
-	}
-
-	var startSize int
-	if pageSize <= 0 {
-		pageSize = utils.PageSize20
-	}
-	if currentIndex <= 0 {
-		currentIndex = 1
-	}
-	startSize = utils.StartIndex(currentIndex, pageSize)
-	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 keyWord != "" {
-		var mirrorword string
-		var mirrorwordSql string
-		slicemirrorword := strings.Split(keyWord, ",")
-		for _, v := range slicemirrorword {
-			mirrorwordSql += "'" + v + "'" + ","
-		}
-		mirrorwordSql = strings.TrimRight(mirrorwordSql, ",")
-		total, err := models.GetActivityMirrorWordCount(mirrorwordSql)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
-			return
-		}
-		if total > 0 {
-			mirrorword, err = models.GetMirrorWord(mirrorwordSql)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "关系词映射获取失败,Err:" + err.Error()
-				return
-			}
-		}
-		keyWord = keyWord + "," + mirrorword
-		slicekeyWord := strings.Split(keyWord, ",")
-		var sqlKeyOr string
-		if len(slicekeyWord) >= 2 {
-			for _, v := range slicekeyWord {
-				if v != "" {
-					sqlKeyOr += `  OR art.activity_name LIKE '%` + v + `%' `
-				}
-			}
-			condition += ` AND (art.activity_name LIKE '%` + keyWord + `%' ` + sqlKeyOr + ` )`
-		} else {
-			condition += ` AND (art.activity_name LIKE '%` + keyWord + `%' )`
-		}
-	}
-	//主题
-	if label != "" {
-		sliceLabel := strings.Split(label, ",")
-		var labelSqlStr string
-		for _, v := range sliceLabel {
-			labelSqlStr += "'" + v + "',"
-		}
-		labelSqlStr = strings.TrimRight(labelSqlStr, ",")
-		condition = ` AND art.label  IN (` + labelSqlStr + `)`
-	}
-	//行业名称
-	if len(chartPermissionIds) > 0 {
-		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
-	}
-	if activityTypeIds != "" {
-		condition += ` AND art.activity_type_id  IN (` + activityTypeIds + `)`
-	}
-	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 + `)`
-	}
-	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.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
-	total, err := models.GetActivityCount(condition, playBack, pars, 0)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
-		return
-	}
-	if activeState == "2" || activeState == "3" {
-		condition += ` ORDER BY art.activity_time DESC  `
-	} else {
-		condition += ` ORDER BY art.active_state ASC, art.activity_time ASC  `
-	}
-	list, errList := models.GetActivityListAll(condition, pars, uid, startSize, pageSize, playBack)
-	if errList != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + errList.Error()
-		return
-	}
-	var isShow bool
-	isShow = services.GetShowSustainable()
-	detail, err := models.GetConfigByCode("city_img_url")
-	if err != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "城市配置信息失败,Err:" + err.Error()
-		return
-	}
-	detailChart, err := models.GetConfigByCode("chart_img_url")
-	if err != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
-		return
-	}
-
-	addressList := strings.Split(detail.ConfigValue, "{|}")
-	mapAddress := make(map[string]string)
-	chartList := strings.Split(detailChart.ConfigValue, "{|}")
-	mapChart := make(map[string]string)
-	var cityName string
-	var chartName string
-	var imgUrl string
-	var imgUrlChart string
-	var mapActivityId []int
-	for _, v := range addressList {
-		vslice := strings.Split(v, "_")
-		cityName = vslice[0]
-		imgUrl = vslice[len(vslice)-1]
-		mapAddress[cityName] = imgUrl
-	}
-	for _, v := range chartList {
-		vslice := strings.Split(v, "_")
-		chartName = vslice[0]
-		imgUrlChart = vslice[len(vslice)-1]
-		mapChart[chartName] = imgUrlChart
-	}
-	for k, v := range list {
-		if strings.Contains(v.ActivityName, "【") {
-			list[k].IsBrackets = 1
-		}
-		if v.SignupNum > v.LimitPeopleNum {
-			list[k].SignupNum = v.LimitPeopleNum
-		}
-		if isShow && strings.Contains(v.ChartPermissionName, "研选") {
-			list[k].IsShowSustainable = true
-		}
-		if strings.Contains(v.ChartPermissionName, "研选") && v.ActivityTypeId == 1 {
-			list[k].ActivityTypeName = "买方研选电话会"
-			list[k].ImgUrlText = utils.YAN_XUAN_IMG
-		}
-		if v.ActivityType == 0 {
-			if mapAddress[v.City] != "" {
-				list[k].ImgUrl = mapAddress[v.City]
-			} else {
-				list[k].ImgUrl = mapAddress["其它"]
-			}
-		} else {
-			if mapChart[v.ChartPermissionName] != "" {
-				list[k].ImgUrl = mapChart[v.ChartPermissionName]
-			}
-		}
-		expertTxt, _ := services.GetReportContentTextSub(v.Expert)
-		list[k].Expert = expertTxt
-		mapActivityId = append(mapActivityId, v.ActivityId)
-	}
-	if keyWordSearch != "" {
-		keyWordItem := new(models.CygxUserSearchKeyWord)
-		keyWordItem.UserId = user.UserId
-		keyWordItem.KeyWord = keyWordSearch
-		keyWordItem.PageType = "ActivitSearch"
-		keyWordItem.CreateTime = time.Now()
-		go models.AddUserSearchKeyWord(keyWordItem)
-	}
-	resp := new(models.GetCygxActivityListRep)
-	//处理音频回放
-	mapActivityVoice, err := services.GetActivityVoiceResp(mapActivityId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "GetActivityVoiceResp,Err:" + err.Error()
-	}
-	//处理列表的标签是否展示逻辑
-	for k, v := range list {
-		if mapActivityVoice[v.ActivityId] != nil {
-			list[k].AudioLink = true
-			list[k].VoiceList = mapActivityVoice[v.ActivityId]
-		}
-		resp.List = append(resp.List, services.ActivityButtonShow(v))
-	}
-	page := paging.GetPaging(currentIndex, pageSize, total)
-	resp.List = list
-	resp.Paging = page
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-
-}
-
 // @Title 我的日程
 // @Description 我的日程列表接口
 // @Param   PageSize   query   int  true       "每页数据条数"
@@ -649,10 +308,8 @@ func (this *ActivityCoAntroller) Detail() {
 		br.Msg = "请输入活动ID"
 		return
 	}
-
 	resp := new(models.CygxActivityResp)
-	hasPermission := 0
-	var companyDetailStatus string
+	var hasPermission int
 	activityInfo, err := models.GetAddActivityInfoByIdShow(uid, activityId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取信息失败"
@@ -664,237 +321,15 @@ func (this *ActivityCoAntroller) Detail() {
 		br.ErrMsg = "活动ID错误,Err:" + "activityId:" + strconv.Itoa(activityId)
 		return
 	}
-	if activityInfo.ActivityTypeId == utils.C_CLASS_ACTIVITY_TYPE_ID {
-		activityInfo.IsCClassMeeting = true
-	}
-	//处理冻结客户,流失客户的弹窗提示
-	if user.CompanyId > 1 {
-		sellerMobile, sellerRealName, err := services.CheckActivityUserPermission(user)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-			return
-		}
-		if sellerMobile != "" {
-			resp.HasPermission = 2
-			resp.SellerMobile = sellerMobile
-			resp.SellerName = sellerRealName
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
-		}
-	}
-	applyCount, err := models.GetApplyRecordCount(uid)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
-		return
-	}
-	//获取FICC销售信息 如果是FICC的客户类型,则默认他申请过
-	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 1)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-		return
-	}
-	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
-			} else {
-				if sellerItem != nil {
-					hasPermission = 5
-				} 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
-					}
-				}
-			}
-			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
-	}
-	userType, permissionStr, err := services.GetUserType(user.CompanyId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-		return
-	}
-	if activityInfo.IsLimitPeople > 0 {
-		noPower, err := services.GetShareNoPowe(activityInfo, permissionStr, userType, user)
-		if err != nil {
-			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
-		}
-		if companyProduct != nil {
-			if companyProduct.Scale != "" {
-				if strings.Count(activityInfo.Scale, companyProduct.Scale) > 0 {
-					noPower = false
-				}
-			}
-		}
-		if noPower {
-			br.Msg = "您暂无查看该活动权限"
-			br.ErrMsg = "被分享客户不可见,获取信息失败"
-			return
-		}
-	}
-
-	if userType == 1 && strings.Contains(activityInfo.ChartPermissionName, "研选") {
-		br.Msg = "您暂无查看该活动权限"
-		br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
-		return
-	}
 
-	detail, errDetail := models.GetActivityTypeDetailById(activityInfo.ActivityTypeId)
-	if errDetail != nil {
+	havePower, err := services.GetActivityDetailUserPower(user, activityInfo)
+	if err != nil {
 		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取信息失败,Err:" + errDetail.Error()
+		br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
 		return
 	}
-	if activityInfo.IsSignup > 0 {
-		detail, errDetail := models.GetActivitySignupDetail(activityId, uid)
-		if errDetail != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取信息失败,Err:" + errDetail.Error()
-			return
-		}
-		activityInfo.SignupType = detail.SignupType
-	}
-	activityInfo.ShowType = detail.ShowType
 
-	//判断是否已经申请过
-
-	if user.CompanyId > 1 {
-		permissionStr, err := models.GetCompanyPermissionByUser(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户权限信息失败,Err:" + err.Error()
-			return
-		}
-		companyItem, err := models.GetCompanyDetailById(user.CompanyId)
-		//冻结客户
-		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
-				if applyCount > 0 {
-					hasPermission = 4
-				} else {
-					if sellerItem != nil {
-						hasPermission = 5
-					} 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
-						}
-					}
-				}
-				resp.HasPermission = hasPermission
-				resp.OperationMode = "Apply"
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				br.Ret = 200
-				br.Success = true
-				br.Msg = "获取成功"
-				br.Data = resp
-				return
-			} else {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户公司信息失败,Err:" + err.Error()
-				return
-			}
-		}
-		havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
-		if havePower {
-			hasPermission = 1
-			resp.HaqveJurisdiction = true
-		} else {
-			if permissionStr == "专家" {
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				resp.MsgType = "Type"
-			} else {
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				resp.MsgType = "Industry"
-			}
-			if companyItem.ProductId == 2 {
-				resp.SellerMobile = companyItem.Mobile
-				resp.SellerName = companyItem.SellerName
-				resp.OperationMode = "Call"
-				hasPermission = 2
-			} else {
-				hasPermission = 5
-			}
-		}
-	} else { //潜在客户
-		if applyCount > 0 {
-			hasPermission = 4
-		} else {
-			if sellerItem != nil {
-				hasPermission = 5
-			} else {
-				hasPermission = 3
-			}
-		}
-		resp.OperationMode = "Apply"
-		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-	}
-	if hasPermission == 1 {
+	if havePower {
 		//是否展示限免标签
 		if services.GetShowSustainable() && strings.Contains(activityInfo.ChartPermissionName, "研选") {
 			activityInfo.IsShowSustainable = true
@@ -1052,6 +487,18 @@ func (this *ActivityCoAntroller) Detail() {
 		activityInfo.SignupType = mapActivitySignup[activityId]
 		//处理按钮是否展示问题
 		resp.Detail = services.ActivityButtonShow(activityInfo)
+	} else {
+		hasPermission, sellerName, sellerMobile, popupMsg, err := services.GetUserHasPermission(user)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+			return
+		}
+		popupMsg = "暂无查看权限"
+		resp.PopupMsg = popupMsg
+		resp.HasPermission = hasPermission
+		resp.SellerName = sellerName
+		resp.SellerMobile = sellerMobile
 	}
 
 	collectCount1, err := models.GetActivityVoiceCollectCount(uid, activityId)

+ 1 - 1
models/company.go

@@ -77,7 +77,7 @@ func GetCountCompanyDetailByIdGroup(companyId int) (count int, err error) {
 //}
 
 func GetCompanyPermission(companyId int) (permission string, err error) {
-	sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name  ORDER BY b.sort ASC SEPARATOR ',') AS permission
+	sql := ` SELECT GROUP_CONCAT(DISTINCT b.remark  ORDER BY b.sort ASC SEPARATOR ',') AS permission
 			FROM company_report_permission AS a
 			INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
 			INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id

+ 0 - 9
routers/commentsRouter.go

@@ -106,15 +106,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"],
-        beego.ControllerComments{
-            Method: "ActivityList",
-            Router: `/list`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hongze_cygx/controllers:ActivityCoAntroller"],
         beego.ControllerComments{
             Method: "ActivityListNew",

+ 87 - 3
services/activity.go

@@ -396,7 +396,7 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 						return
 					}
 					if permissionShengji != "" {
-						userType = 9
+						userType = 8
 					} else {
 						userType = 3
 					}
@@ -408,6 +408,80 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 	return
 }
 
+// GetSpecialDetailUserPower 处理用户查看详情的权限
+func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.ActivityDetail) (havePower bool, err error) {
+	var companyDetailStatus string
+	userType, permissionStr, e := GetUserType(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
+		return
+	}
+	if activityInfo.LimitPeopleNum > 0 {
+		if strings.Contains(permissionStr, activityInfo.ChartPermissionName+"(主观)") {
+			havePower = true
+		}
+	}
+	if user.CompanyId <= 1 {
+		return
+	} else {
+		if permissionStr == "" {
+			return
+		} else {
+			companyDetail, e := models.GetCompanyDetailById(user.CompanyId)
+			if e != nil {
+				err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
+				return
+			}
+			if companyDetail == nil {
+				err = errors.New("客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId))
+				return
+			}
+			companyDetailStatus = companyDetail.Status
+		}
+	}
+	if activityInfo.ChartPermissionId == 1 {
+		havePower = true
+		return
+	}
+	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 (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3 || activityInfo.ActivityTypeId == 4 || activityInfo.ActivityTypeId == 5) && strings.Contains(permissionStr, "专家") {
+		havePower = true
+	}
+	if activityInfo.ActivityTypeId == 2 || activityInfo.ActivityTypeId == 6 || activityInfo.ActivityTypeId == 7 {
+		if strings.Contains(permissionStr, activityInfo.ChartPermissionName+"(主观)") {
+			havePower = true
+		}
+	} else {
+		if strings.Contains(permissionStr, activityInfo.ChartPermissionName+"(客观)") {
+			havePower = true
+		}
+	}
+	if (strings.Contains(activityInfo.ChartPermissionName, "研选") || activityInfo.ChartPermissionName == "策略") && strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
+		havePower = true
+	}
+	//如果是易董的活动且属于研选类型,只要开通任何权限就可以查看详情
+	if activityInfo.YidongActivityId != "" && permissionStr != "" && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
+		havePower = true
+	}
+	if havePower && activityInfo.LimitPeopleNum > 0 {
+		//对于一些特殊的活动,即使权限满足也不给产看
+		noPower, e := GetShareNoPowe(activityInfo, permissionStr, userType, user)
+		if e != nil {
+			err = errors.New("GetShareNoPowe, Err: " + e.Error())
+			return
+		}
+		if noPower {
+			havePower = false
+		}
+	}
+	return
+}
+
 // 校验被分享的用户是否有查看详情的权限
 func GetShareNoPowe(activityInfo *models.ActivityDetail, permissionStr string, userType int, user *models.WxUserItem) (noPower bool, err error) {
 	//如果是弘则的就不进行可见权限校验
@@ -415,7 +489,7 @@ func GetShareNoPowe(activityInfo *models.ActivityDetail, permissionStr string, u
 		return
 	}
 	//var noPower bool
-	if (userType == 1 || userType == 4 || userType == 5) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
+	if !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
 		noPower = true
 	}
 	//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
@@ -431,6 +505,17 @@ func GetShareNoPowe(activityInfo *models.ActivityDetail, permissionStr string, u
 	if userType == 3 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
 		noPower = true
 	}
+	if userType == 8 {
+		permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
+		if errs != nil {
+			err = errs
+			return
+		}
+		if !strings.Contains(permissionShengji, activityInfo.ChartPermissionName) {
+			noPower = true
+			return
+		}
+	}
 	if !noPower {
 		noPower, err = CheckUserPowerByActivityChoose(user, activityInfo)
 	}
@@ -463,7 +548,6 @@ func CheckUserPowerByActivityChoose(user *models.WxUserItem, activityInfo *model
 			noPower = true
 		}
 	}
-	fmt.Println(noPower)
 	return
 }