浏览代码

Merge branch 'feature/8.4_industry_video' into debug

xiexiaoyuan 2 年之前
父节点
当前提交
52d36970b8
共有 4 个文件被更改,包括 107 次插入7 次删除
  1. 94 0
      controllers/report.go
  2. 1 1
      models/industrial_management.go
  3. 11 6
      models/report.go
  4. 1 0
      models/report_mapping.go

+ 94 - 0
controllers/report.go

@@ -259,6 +259,15 @@ func (this *ReportController) IndustryList() {
 			industrialManagementIds = append(industrialManagementIds, v.IndustrialManagementId)
 		}
 	}
+
+	// 用户权限
+	authInfo, permissionArr, e := services.GetUserRaiPermissionInfo(user.UserId, user.CompanyId)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取用户权限失败, Err: " + e.Error()
+		return
+	}
+
 	if len(industrialManagementIds) >0 {
 		// 获取默认图配置
 		_, videoMap, _, _, e := services.GetMicroRoadShowDefaultImgConfig()
@@ -340,10 +349,33 @@ func (this *ReportController) IndustryList() {
 			}
 		}
 
+		//控制用户权限
+		// 权限
+		au := new(models.UserPermissionAuthInfo)
+		au.SellerName = authInfo.SellerName
+		au.SellerMobile = authInfo.SellerMobile
+		au.HasPermission = authInfo.HasPermission
+		au.OperationMode = authInfo.OperationMode
+		if au.HasPermission == 1 {
+			// 非宏观权限进一步判断是否有权限
+			if list[k].ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, list[k].PermissionName) {
+				au.HasPermission = 2
+			}
+		}
+		// 无权限的弹框提示
+		if au.HasPermission != 1 {
+			if au.OperationMode == services.UserPermissionOperationModeCall {
+				au.PopupMsg = services.UserPermissionPopupMsgCallMicroVideo
+			} else {
+				au.PopupMsg = services.UserPermissionPopupMsgApplyMicroVideo
+			}
+		}
+		list[k].AuthInfo = au
 		//展示产业视频
 		if video, ok := industrialVideoMap[v.IndustrialManagementId]; ok {
 			list[k].IndustryVideo = video
 		}
+
 	}
 	//记录用户搜索的筛选条件
 	if orderColumnNew != "" {
@@ -427,7 +459,18 @@ func (this *ReportController) ArticleCategoryList() {
 			list[k].IsRed = true
 		}
 	}
+
+	// 用户权限
+	authInfo, permissionArr, e := services.GetUserRaiPermissionInfo(user.UserId, user.CompanyId)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取用户权限失败, Err: " + e.Error()
+		return
+	}
+
 	videoSimple := new(models.MicroVideoSimpleInfo)
+	// 权限
+	var au  *models.UserPermissionAuthInfo
 	video, err := models.GetMicroRoadshowVideoByIndustryId(industrialManagementId)
 	if err != nil {
 		if err.Error() != utils.ErrNoRow() {
@@ -452,6 +495,25 @@ func (this *ReportController) ArticleCategoryList() {
 		}
 		videoSimple.PlaySeconds = video.VideoDuration
 		videoSimple.ResourceUrl = video.VideoUrl
+		au = new(models.UserPermissionAuthInfo)
+		au.SellerName = authInfo.SellerName
+		au.SellerMobile = authInfo.SellerMobile
+		au.HasPermission = authInfo.HasPermission
+		au.OperationMode = authInfo.OperationMode
+		if au.HasPermission == 1 {
+			// 非宏观权限进一步判断是否有权限
+			if video.ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, video.ChartPermissionName) {
+				au.HasPermission = 2
+			}
+		}
+		// 无权限的弹框提示
+		if au.HasPermission != 1 {
+			if au.OperationMode == services.UserPermissionOperationModeCall {
+				au.PopupMsg = services.UserPermissionPopupMsgCallMicroVideo
+			} else {
+				au.PopupMsg = services.UserPermissionPopupMsgApplyMicroVideo
+			}
+		}
 	}
 
 	//时间线
@@ -469,6 +531,7 @@ func (this *ReportController) ArticleCategoryList() {
 	resp.LayoutTime = utils.TimeRemoveHms(detail.LayoutTime)
 	resp.IndustryName = detail.IndustryName
 	resp.IndustrialManagementId = industrialManagementId
+	resp.AuthInfo = au
 	if videoSimple.Id > 0 {
 		resp.IndustryVideo = videoSimple
 	}
@@ -2847,6 +2910,8 @@ func (this *ReportController) SearchReportAndResource() {
 				BackgroundImg: v.ImgUrl,
 				PlaySeconds:   v.VideoDuration,
 				DetailImgUrl:  v.DetailImgUrl,
+				ChartPermissionName: v.ChartPermissionName,
+				ChartPermissionId: v.ChartPermissionId,
 			}
 			if tmp.BackgroundImg == "" {
 				tmp.BackgroundImg = videoMap[v.ChartPermissionId]
@@ -2854,10 +2919,39 @@ func (this *ReportController) SearchReportAndResource() {
 			industrialVideoMap[v.IndustryId] = tmp
 		}
 
+		//查询权限
+		// 用户权限
+		authInfo, permissionArr, e := services.GetUserRaiPermissionInfo(user.UserId, user.CompanyId)
+		if e != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取用户权限失败, Err: " + e.Error()
+			return
+		}
+
 		for k, v := range listHzResource {
 			//展示产业视频
 			if video, ok := industrialVideoMap[v.IndustrialManagementId]; ok {
 				listHzResource[k].IndustryVideo = video
+				au := new(models.UserPermissionAuthInfo)
+				au.SellerName = authInfo.SellerName
+				au.SellerMobile = authInfo.SellerMobile
+				au.HasPermission = authInfo.HasPermission
+				au.OperationMode = authInfo.OperationMode
+				if au.HasPermission == 1 {
+					// 非宏观权限进一步判断是否有权限
+					if video.ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, video.ChartPermissionName) {
+						au.HasPermission = 2
+					}
+				}
+				// 无权限的弹框提示
+				if au.HasPermission != 1 {
+					if au.OperationMode == services.UserPermissionOperationModeCall {
+						au.PopupMsg = services.UserPermissionPopupMsgCallMicroVideo
+					} else {
+						au.PopupMsg = services.UserPermissionPopupMsgApplyMicroVideo
+					}
+				}
+				listHzResource[k].AuthInfo = au
 			}
 		}
 

+ 1 - 1
models/industrial_management.go

@@ -61,7 +61,7 @@ func GetIndustrialManagemenCountNoTop(sqlChartPermissionId string, uid int, cond
 func GetIndustrialManagementAll(uid int, condition, orderSrt string, startSize, pageSize int) (items []*IndustrialManagement, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
-			man.*,
+			man.*,re.chart_permission_name as permission_name,
             MAX( art.publish_date ) AS update_time , MIN(art.publish_date) AS min_report_time,(
 			SELECT COUNT( 1 ) FROM cygx_article_history_record AS rec WHERE rec.user_id = ` + strconv.Itoa(uid) + ` AND rec.article_id = art.article_id ) AS readnum ,
 		    (SELECT COUNT( 1 )  FROM cygx_industry_fllow AS f WHERE f.user_id = ` + strconv.Itoa(uid) + ` AND f.industrial_management_id = man.industrial_management_id AND f.type = 1) AS is_follow

+ 11 - 6
models/report.go

@@ -10,6 +10,7 @@ import (
 type IndustrialManagementList struct {
 	Paging *paging.PagingItem
 	List   []*IndustrialManagement
+
 }
 
 type IndustrialManagement struct {
@@ -33,15 +34,18 @@ type IndustrialManagement struct {
 	ChartPermissionId      int                  `description:"行业ID"`
 	PermissionName         string               `description:"行业名称"`
 	IndustryVideo          *MicroVideoSimpleInfo
+	AuthInfo               *UserPermissionAuthInfo
 }
 
 type MicroVideoSimpleInfo struct {
-	Id            int    `description:"视频ID"`
-	Title         string `description:"标题"`
-	ResourceUrl   string `description:"链接"`
-	BackgroundImg string `description:"背景图"`
-	PlaySeconds   int    `description:"音视频时长"`
-	DetailImgUrl  string `description:"产业详情页背景图"`
+	Id                  int    `description:"视频ID"`
+	Title               string `description:"标题"`
+	ResourceUrl         string `description:"链接"`
+	BackgroundImg       string `description:"背景图"`
+	PlaySeconds         int    `description:"音视频时长"`
+	DetailImgUrl        string `description:"产业详情页背景图"`
+	ChartPermissionId   int    `description:"行业ID"`
+	ChartPermissionName string `description:"行业名称"`
 }
 
 type IndustrialAnalyst struct {
@@ -404,6 +408,7 @@ type IndustrialManagementHotResp struct {
 	Source                 int                   `description:"来源 1:弘则资源包(报告)、2:研选主题(报告)"`
 	IndustrialSubjectList  []*IndustrialSubject  `description:"标的列表"`
 	IndustryVideo          *MicroVideoSimpleInfo `description:"产业视频"`
+	AuthInfo               *UserPermissionAuthInfo
 }
 
 type IndustrialManagementHotListResp struct {

+ 1 - 0
models/report_mapping.go

@@ -101,6 +101,7 @@ type IndustrialToArticleCategoryRep struct {
 }
 
 type IndustrialToArticleCategoryListRep struct {
+	AuthInfo               *UserPermissionAuthInfo
 	LayoutTime             string `description:"布局时间"`
 	IndustryName           string `description:"产业名称"`
 	IndustrialManagementId int    `description:"产业D"`