Browse Source

no message

xingzai 1 year ago
parent
commit
f10eb8705c

+ 26 - 25
controllers/article.go

@@ -245,31 +245,32 @@ func (this *ArticleController) Detail() {
 			if userType == 1 && strings.Contains(detail.CategoryName, "研选") {
 				hasPersion = false
 			}
-			if detail.IsReport == 1 {
-				detailCategory, err := models.GetdetailByCategoryIdSando(detail.CategoryId)
-				if err != nil && err.Error() != utils.ErrNoRow() {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取信息失败,Err:" + err.Error() + "categoryID 不存在:" + strconv.Itoa(detail.CategoryId)
-					return
-				}
-				permissionStr, err := models.GetCompanyPermissionByUser(user.CompanyId)
-				if err != nil {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-					return
-				}
-				if detailCategory != nil {
-					if detailCategory.PermissionType == 1 {
-						if !strings.Contains(permissionStr, detailCategory.ChartPermissionName+"(主观)") {
-							hasPersion = false
-						}
-					} else if detailCategory.PermissionType == 2 {
-						if !strings.Contains(permissionStr, detailCategory.ChartPermissionName+"(客观)") {
-							hasPersion = false
-						}
-					}
-				}
-			}
+			//if detail.IsReport == 1 {
+			//detailCategory, err := models.GetdetailByCategoryIdSando(detail.CategoryId)
+			//if err != nil && err.Error() != utils.ErrNoRow() {
+			//	br.Msg = "获取信息失败"
+			//	br.ErrMsg = "获取信息失败,Err:" + err.Error() + "categoryID 不存在:" + strconv.Itoa(detail.CategoryId)
+			//	return
+			//}
+			//permissionStr, err := models.GetCompanyPermissionByUser(user.CompanyId)
+			//if err != nil {
+			//	br.Msg = "获取信息失败"
+			//	br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+			//	return
+			//}
+			//if detailCategory != nil {
+			//	if detailCategory.PermissionType == 1 {
+			//		if !strings.Contains(permissionStr, detailCategory.ChartPermissionName+"(主观)") {
+			//			hasPersion = false
+			//		}
+			//	} else if detailCategory.PermissionType == 2 {
+			//		if !strings.Contains(permissionStr, detailCategory.ChartPermissionName+"(客观)") {
+			//			hasPersion = false
+			//		}
+			//	}
+			//}
+			//}
+			hasPersion = services.CheckArticlePermissionType(articleId, user)
 			if hasPersion {
 				hasPermission = 1
 				go services.ArticleHistory(articleId, user)

+ 2 - 2
models/report.go

@@ -122,7 +122,7 @@ func GetReportAndproductInteriorIndustrialList(pars []interface{}, categoryId, i
 			INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.article_id = art.article_id 
 		WHERE
 			art.publish_status = 1 
-			AND category_id IN ( SELECT category_id_celue FROM cygx_report_mapping_group WHERE id_cygx = ` + strconv.Itoa(categoryId) + ` ) 
+			AND art.article_id IN ( SELECT article_id FROM cygx_report_mapping_category_group WHERE id_cygx = ` + strconv.Itoa(categoryId) + ` ) 
 			AND art.is_class = 1 
 			AND man_g.industrial_management_id =` + strconv.Itoa(industrialManagementId) + ` 
 		GROUP BY
@@ -163,7 +163,7 @@ func GetReportAndproductIndustrylList(categoryId, startSize, pageSize int) (item
 			cygx_article AS art 
 		WHERE
 			art.publish_status = 1 
-			AND category_id IN ( SELECT category_id_celue FROM cygx_report_mapping_group WHERE id_cygx = ` + strconv.Itoa(categoryId) + ` ) UNION ALL
+			AND art.article_id IN ( SELECT article_id FROM cygx_report_mapping_category_group WHERE id_cygx = ` + strconv.Itoa(categoryId) + ` ) UNION ALL
 		SELECT
 			art.product_interior_id AS article_id,
 			art.title,

+ 21 - 0
models/report_mapping_category_group.go

@@ -15,6 +15,16 @@ type CygxReportMappingCategoryGroup struct {
 	PermissionType    int       `description:"1主观,2客观 ,0不限制"`
 }
 
+type CygxReportMappingCategoryGroupResp struct {
+	Id                int       `orm:"column(id);pk" description:"id"`
+	ChartPermissionId int       `description:"行业ID"`
+	IdCygx            int       `description:"表cygx_report_mapping_cygx 主键ID"`
+	ArticleId         int       `description:"报告Id"`
+	CreateTime        time.Time `description:"创建时间"`
+	ModifyTime        time.Time `description:"更新时间"`
+	PermissionType    int       `description:"1主观,2客观 ,0不限制"`
+}
+
 // AddCygxReportMappingCategoryGroupMulti 批量添加
 func AddCygxReportMappingCategoryGroupMulti(items []*CygxReportMappingCategoryGroup, articleId int) (err error) {
 	o, err := orm.NewOrm().Begin()
@@ -41,3 +51,14 @@ func AddCygxReportMappingCategoryGroupMulti(items []*CygxReportMappingCategoryGr
 	}
 	return
 }
+
+// 列表
+func GetCygxReportMappingCategoryGroupList(condition string, pars []interface{}) (items []*CygxReportMappingCategoryGroupResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_report_mapping_category_group as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 64 - 0
services/report_mapping_category_group.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
+	"strings"
 	"time"
 )
 
@@ -81,3 +82,66 @@ func AddCygxReportMappingCategoryGroupByArticleId(articleId int) {
 	return
 
 }
+
+// 校验文章主客观权限
+func CheckArticlePermissionType(articleId int, user *models.WxUserItem) (checkPermissionType bool) {
+	var err error
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("记录用户文章浏览记录,失败"+err.Error(), 2)
+		}
+	}()
+	permissionStr, e := models.GetCompanyPermissionByUser(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanyPermissionByUser, Err: " + e.Error())
+		return
+	}
+	var condition string
+	var pars []interface{}
+	condition += ` AND article_id = ? `
+	pars = append(pars, articleId)
+	list, e := models.GetCygxReportMappingCategoryGroupList(condition, pars)
+	if e != nil {
+		err = errors.New("GetCygxReportMappingCategoryGroupList, Err: " + e.Error())
+		return
+	}
+	if len(list) == 0 {
+		checkPermissionType = true
+		return
+	}
+	var chartPermissionId int
+	var chartPermissionName string
+	var permissionTypeZg bool
+	var permissionTypeKg bool
+	for _, v := range list {
+		chartPermissionId = v.ChartPermissionId
+		if v.PermissionType == 1 || v.PermissionType == 0 {
+			permissionTypeZg = true
+		}
+		if v.PermissionType == 2 || v.PermissionType == 0 {
+			permissionTypeZg = true
+		}
+	}
+
+	categoryinfo, e := models.GetChartPermissionById(chartPermissionId)
+	if e != nil {
+		err = errors.New("GetChartPermissionById, Err: " + e.Error())
+		return
+	}
+
+	if permissionTypeZg {
+		chartPermissionName = categoryinfo.PermissionName + "(主观)"
+	}
+	if permissionTypeKg {
+		chartPermissionName = categoryinfo.PermissionName + "(客观)"
+	}
+
+	if permissionTypeKg && permissionTypeZg {
+		chartPermissionName = categoryinfo.PermissionName
+	}
+
+	if strings.Contains(permissionStr, chartPermissionName) {
+		checkPermissionType = true
+	}
+	return
+}