فهرست منبع

Merge branch 'debug' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 2 سال پیش
والد
کامیت
0782c27f64
5فایلهای تغییر یافته به همراه114 افزوده شده و 13 حذف شده
  1. 66 3
      controllers/activity.go
  2. 7 4
      models/activity.go
  3. 20 1
      models/industrial_management.go
  4. 3 3
      models/report.go
  5. 18 2
      services/activity.go

+ 66 - 3
controllers/activity.go

@@ -136,7 +136,6 @@ func (this *ActivityCoAntroller) ActivityList() {
 	if isShowJurisdiction == 1 && chartPermissionIds == "" && userType == 4 {
 		activityTypeIds = "1,3"
 	}
-	// TODO:【新】标签,【宏观】行业
 
 	var startSize int
 	if pageSize <= 0 {
@@ -642,7 +641,7 @@ func (this *ActivityCoAntroller) Detail() {
 		br.Msg = "请输入活动ID"
 		return
 	}
-	// TODO:【新】标签,【宏观】标签
+
 	resp := new(models.CygxActivityResp)
 	hasPermission := 0
 	var companyDetailStatus string
@@ -922,6 +921,15 @@ func (this *ActivityCoAntroller) Detail() {
 			item.IndustryName = activityInfo.Label
 			industrialList = append(industrialList, item)
 		} else {
+			// 查研观向7.4-行业新标签
+			actIds := []int{activityId}
+			_, industryNewMap, e := services.GetActivityNewLabelMap(actIds)
+			if e != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取活动产业新标签失败, Err: " + e.Error()
+				return
+			}
+
 			var industrialManagementId string
 			for k, v := range industrialList {
 				if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
@@ -950,6 +958,7 @@ func (this *ActivityCoAntroller) Detail() {
 					if mapIndustrial[v.IndustrialManagementId] > 0 {
 						industrialList[k].IsJump = true
 					}
+					industrialList[k].IndustryNewLabel = industryNewMap[v.IndustrialManagementId]
 				}
 			}
 		}
@@ -981,6 +990,7 @@ func (this *ActivityCoAntroller) Detail() {
 
 		//处理按钮是否展示问题
 		resp.Detail = services.ActivityButtonShow(activityInfo)
+
 	}
 	resp.HasPermission = hasPermission
 	br.Ret = 200
@@ -2765,6 +2775,12 @@ func (this *ActivityCoAntroller) ActivityListNew() {
 	if chartPermissionIds == "undefined" {
 		chartPermissionIds = ""
 	}
+
+	// 查研观向7.4-始终查询宏观的活动
+	if chartPermissionIds != "" {
+		chartPermissionIds += ",1"
+	}
+
 	if whichDay == "undefined" {
 		whichDay = ""
 	}
@@ -2980,6 +2996,24 @@ func (this *ActivityCoAntroller) ActivityListNew() {
 	if keyWord != "" {
 		go services.AddActivitykeyWordSearch(keyWord, user)
 	}
+
+	// 查研观向7.4-判断标签是否为产业, 为产业时是否跳转资源包
+	if label != "" {
+		sourceIndustry, e := models.GetSourceIndustryByName(label)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取标签产业资源包失败, Err:" + e.Error()
+			return
+		}
+		if sourceIndustry != nil {
+			resp.IndustrialManagementId = sourceIndustry.IndustrialManagementId
+			resp.IsJump = true
+			if sourceIndustry.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
+				resp.IsResearch = true
+			}
+		}
+	}
+
 	resp.Paging = page
 	br.Ret = 200
 	br.Success = true
@@ -3392,6 +3426,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	chartPermissionIds := this.GetString("ChartPermissionIds")
 	whichDay := this.GetString("WhichDay")
 	activeState := this.GetString("ActiveState")
+
 	//入参为 undefined 时的处理
 	if chartPermissionIds == "undefined" {
 		chartPermissionIds = ""
@@ -3402,6 +3437,12 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	if activeState == "undefined" || activeState == "" {
 		activeState = "1"
 	}
+
+	// 查研观向7.4-始终查询宏观的活动
+	if chartPermissionIds != "" {
+		chartPermissionIds += ",1"
+	}
+
 	//adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
 	//if err != nil {
 	//	br.Msg = "获取失败"
@@ -3435,6 +3476,14 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	permissionNameStr = strings.Replace(permissionNameStr, "(主观)", "", -1)
 	permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
 	permissionNameStr = strings.TrimRight(permissionNameStr, ",")
+
+	// 查研观向7.4-始终查询宏观的权限(无论是否有权限)
+	if permissionNameStr == `` {
+		permissionNameStr = `'宏观'`
+	} else {
+		permissionNameStr += `, '宏观'`
+	}
+
 	list, err := models.GetActivityTypeHomeList()
 	if err != nil {
 		br.Msg = "获取失败"
@@ -3559,7 +3608,7 @@ func (this *ActivityCoAntroller) LabelTypeListV5() {
 	sort.Sort(sort.Reverse(sort.IntSlice(intArr)))
 
 	// 活动【新】标签Map
-	newLabelMap, e := services.GetActivityNewLabelMap(activityIds)
+	newLabelMap, _, e := services.GetActivityNewLabelMap(activityIds)
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取活动【新】标签Map失败, Err: " + e.Error()
@@ -4397,6 +4446,12 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 	if activeState == "undefined" || activeState == "" || activeState == "1" {
 		activeState = "1,2"
 	}
+
+	// 查研观向7.4-始终查询宏观的活动
+	if chartPermissionIds != "" {
+		chartPermissionIds += ",1"
+	}
+
 	//adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
 	//if err != nil {
 	//	br.Msg = "获取失败"
@@ -4432,6 +4487,14 @@ func (this *ActivityCoAntroller) LabelTypeListV6Pc() {
 	permissionNameStr = strings.Replace(permissionNameStr, "(主观)", "", -1)
 	permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
 	permissionNameStr = strings.TrimRight(permissionNameStr, ",")
+
+	// 查研观向7.4-始终查询宏观的权限(无论是否有权限)
+	if permissionNameStr == `` {
+		permissionNameStr = `'宏观'`
+	} else {
+		permissionNameStr += `, '宏观'`
+	}
+
 	list, err := models.GetActivityTypeHomeListPc()
 	if err != nil {
 		br.Msg = "获取失败"

+ 7 - 4
models/activity.go

@@ -261,10 +261,13 @@ type CygxActivityList struct {
 }
 
 type GetCygxActivityListRep struct {
-	Paging *paging.PagingItem `description:"分页数据"`
-	List   []*ActivityDetail
-	Label  string `description:"主题"`
-	ImgUrl string `description:"图片路径"`
+	Paging                 *paging.PagingItem `description:"分页数据"`
+	List                   []*ActivityDetail
+	Label                  string `description:"主题"`
+	ImgUrl                 string `description:"图片路径"`
+	IsResearch             bool   `description:"是否属于研选"`
+	IsJump                 bool   `description:"是否跳转"`
+	IndustrialManagementId int    `description:"产业ID"`
 }
 
 //列表

+ 20 - 1
models/industrial_management.go

@@ -18,6 +18,7 @@ type IndustrialManagementRep struct {
 	ArticleReadNum         int    `description:"文章阅读数量"`
 	IsResearch             bool   `description:"是否属于研选"`
 	IsJump                 bool   `description:"是否跳转"`
+	IndustryNewLabel       bool   `description:"是否产业新标签"`
 }
 
 type IndustrialManagementCount struct {
@@ -580,4 +581,22 @@ func GetTopOneMonthArtReadNumIndustry() (item *IndustrialManagement, err error)
 	sql := `SELECT * FROM cygx_industrial_management ORDER BY article_read_num DESC LIMIT 1`
 	err = orm.NewOrm().Raw(sql).QueryRow(&item)
 	return
-}
+}
+
+// GetSourceIndustryByName 通过名称获取资源包产业
+func GetSourceIndustryByName(industryName string) (item *IndustrialManagement, err error) {
+	sql := `SELECT
+				m.industry_name,
+				m.industrial_management_id,
+				m.chart_permission_id
+			FROM
+				cygx_industrial_management AS m
+			INNER JOIN cygx_industrial_article_group_management AS mg ON mg.industrial_management_id = m.industrial_management_id
+			INNER JOIN cygx_article AS a ON a.article_id = mg.article_id AND a.article_type != 'lyjh'
+			WHERE
+				1 = 1 AND m.industry_name = ? AND a.publish_status = 1
+			GROUP BY
+				m.industrial_management_id`
+	err = orm.NewOrm().Raw(sql, industryName).QueryRow(&item)
+	return
+}

+ 3 - 3
models/report.go

@@ -726,9 +726,9 @@ func GetReportCollectionBillboardList(limit int, pars []interface{}, condition s
 			ac.id,
 			a.article_id,
 			a.title,
-			date_format( a.publish_date, '%Y-%m-%d' ) AS publish_date,
+			date_format(a.publish_date, '%Y-%m-%d') AS publish_date,
 			m.chart_permission_name AS permission_name,
-			a.user_collection_num 
+			COUNT(ac.id) AS collection_num
 		FROM
 			cygx_article AS a
 			INNER JOIN cygx_report_mapping AS m ON m.category_id = a.category_id
@@ -739,7 +739,7 @@ func GetReportCollectionBillboardList(limit int, pars []interface{}, condition s
 	if condition != "" {
 		sql += condition
 	}
-	sql += ` GROUP BY a.article_id ORDER BY a.user_collection_num DESC, ac.id DESC,	a.publish_date DESC`
+	sql += ` GROUP BY a.article_id ORDER BY collection_num DESC, ac.id DESC, a.publish_date DESC`
 	sql += ` LIMIT ?`
 	_, err = o.Raw(sql, pars, limit).QueryRows(&items)
 	return

+ 18 - 2
services/activity.go

@@ -416,6 +416,11 @@ func GetShareNoPowe(activityInfo *models.ActivityDetail, permissionStr string, u
 
 // 校验用户报名的权限
 func GetHavePower(activityInfo *models.ActivityDetail, permissionStr, companyDetailStatus string, userType int) (havePower bool, err error) {
+	// 查研观向7.4-宏观活动不作权限限制
+	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") {
@@ -488,6 +493,14 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	permissionNameStr = strings.Replace(permissionNameStr, "(主观)", "", -1)
 	permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
 	permissionNameStr = strings.TrimRight(permissionNameStr, ",")
+
+	// 查研观向7.4-始终查询宏观的权限(无论是否有权限)
+	if permissionNameStr == `` {
+		permissionNameStr = `'宏观'`
+	} else {
+		permissionNameStr += `, '宏观'`
+	}
+
 	var condition string
 	var conditionAdmin string
 	var sqlExport string // 专家权限处理
@@ -520,6 +533,7 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	if isPower == 1 {
 		condition += permissionSqlStr
 	}
+
 	//行业名称
 	if len(chartPermissionIds) > 0 {
 		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
@@ -1464,9 +1478,10 @@ func AddActivitykeyWordSearch(keyWordSearch string, user *models.WxUserItem) {
 	}
 }
 
-// GetActivityNewLabelMap 获取活动【新】标签Map
-func GetActivityNewLabelMap(activityIds []int) (labelMap map[int]bool, err error) {
+// GetActivityNewLabelMap 获取活动【新】标签Map, 行业【新】标签Map
+func GetActivityNewLabelMap(activityIds []int) (labelMap map[int]bool, industryNewMap map[int]bool, err error) {
 	labelMap = make(map[int]bool, 0)
+	industryNewMap = make(map[int]bool, 0)
 	if len(activityIds) == 0 {
 		return
 	}
@@ -1510,6 +1525,7 @@ func GetActivityNewLabelMap(activityIds []int) (labelMap map[int]bool, err error
 	for i := range industryTimeList {
 		// 最早发布时间为空 / 最早发布时间在三个月前之后
 		if industryTimeList[i].MinPublishTime == nullTime || (industryTimeList[i].MinPublishTime.After(threeMonthBefore)) {
+			industryNewMap[industryTimeList[i].IndustrialManagementId] = true
 			for k, v := range activityIndustryMap {
 				if labelMap[k] {
 					continue