Browse Source

Merge branch 'CRM_15.4'

ziwen 1 year ago
parent
commit
ddd6d6c1e2

+ 25 - 5
controllers/data_manage/chart_classify.go

@@ -32,6 +32,12 @@ func (this *ChartClassifyController) ChartClassifyListV2() {
 	}()
 	resp := new(data_manage.ChartClassifyListResp)
 
+	chartClassifyId, _ := this.GetInt("ChartClassifyId")
+	if chartClassifyId <= 0 {
+		br.Msg = "参数错误"
+		return
+	}
+
 	// 获取当前账号的不可见指标
 	noPermissionChartIdMap := make(map[int]bool)
 	{
@@ -49,14 +55,14 @@ func (this *ChartClassifyController) ChartClassifyListV2() {
 
 	isShowMe, _ := this.GetBool("IsShowMe")
 	if isShowMe {
-		errMsg, err := getChartClassifyListForMe(*this.SysUser, resp)
-		if err != nil {
-			br.Msg = errMsg
-			br.ErrMsg = err.Error()
+		allChartInfo, err := data_manage.GetChartInfoByAdminIdAndClassify([]int{utils.CHART_SOURCE_DEFAULT}, this.SysUser.AdminId, chartClassifyId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取全部数据失败,Err:" + err.Error()
 			return
 		}
 		// 移除没有权限的图表
-		allNodes := handleNoPermissionChart(resp.AllNodes, noPermissionChartIdMap)
+		allNodes := handleNoPermissionChart(allChartInfo, noPermissionChartIdMap)
 		resp.AllNodes = allNodes
 
 		br.Ret = 200
@@ -224,11 +230,25 @@ func handleNoPermissionChart(allNodes []*data_manage.ChartClassifyItems, noPermi
 
 				if chartList.Children != nil {
 					for _, chartInfo := range chartList.Children {
+						thirdInfo := *chartInfo
+						thirdList := make([]*data_manage.ChartClassifyItems, 0)
 						// 如果指标不可见,那么就不返回该指标
 						if _, ok := noPermissionChartIdMap[chartInfo.ChartInfoId]; ok {
 							continue
 						}
 						tmpList = append(tmpList, chartInfo)
+
+						if chartInfo.Children != nil {
+							for _, thirdChart := range chartInfo.Children {
+								// 如果指标不可见,那么就不返回该指标
+								if _, ok := noPermissionChartIdMap[chartInfo.ChartInfoId]; ok {
+									continue
+								}
+								thirdList = append(thirdList, thirdChart)
+							}
+						}
+						thirdInfo.Children = thirdList
+						tmpList = append(tmpList, &thirdInfo)
 					}
 				}
 				tmpInfo.Children = tmpList

+ 15 - 0
models/data_manage/chart_info.go

@@ -1743,3 +1743,18 @@ type ChartInfoLocate struct {
 	DateType          int    `description:""`
 	Calendar          string `description:""`
 }
+
+// GetChartInfoByAdminIdAndClassify 获取所有我创建的图表,用于分类展示
+func GetChartInfoByAdminIdAndClassify(sourceList []int, adminId, classifyId int) (items []*ChartClassifyItems, err error) {
+	num := len(sourceList)
+	if num <= 0 {
+		return
+	}
+
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT chart_info_id,chart_classify_id,chart_name AS chart_classify_name,
+             unique_code,sys_user_id,sys_user_real_name,date_type,start_date,end_date,chart_type,calendar,season_start_date,season_end_date
+            FROM chart_info where source in (` + utils.GetOrmInReplace(num) + `)  AND sys_user_id = ? AND chart_classify_id = ? ORDER BY sort asc,create_time ASC `
+	_, err = o.Raw(sql, sourceList, adminId, classifyId).QueryRows(&items)
+	return
+}

+ 8 - 2
models/data_manage/my_chart.go

@@ -389,9 +389,15 @@ func GetChartClassify(chartClassifyId int) (chart_classify_id string, err error)
 			WHERE a.chart_classify_id=?
 			UNION ALL
 			SELECT a.chart_classify_id FROM chart_classify AS a 
-			WHERE a.parent_id=?
+			WHERE a.parent_id=? UNION ALL
+	SELECT
+		chart_classify_id 
+	FROM
+		chart_classify 
+WHERE
+	parent_id IN ( SELECT chart_classify_id FROM chart_classify WHERE parent_id = ? )
 			)AS t`
-	err = o.Raw(sql, chartClassifyId, chartClassifyId).QueryRow(&chart_classify_id)
+	err = o.Raw(sql, chartClassifyId, chartClassifyId, chartClassifyId).QueryRow(&chart_classify_id)
 	return
 }