ソースを参照

fix: 图表搜索及详情

hsun 3 年 前
コミット
f727d6f8ab

+ 0 - 3
controller/chart/chart_info.go

@@ -2,7 +2,6 @@ package chart
 
 import (
 	"context"
-	"fmt"
 	"github.com/gin-gonic/gin"
 	"hongze/hongze_yb/controller/response"
 	"hongze/hongze_yb/global"
@@ -359,8 +358,6 @@ func RefreshChartInfo(c *gin.Context)  {
 		return
 	}
 
-	fmt.Println("图表ID:::", chartInfoId)
-
 	// 刷新频率限制
 	//userInfo := user.GetInfoByClaims(c)
 	//cacheKey := utils.HZ_CHART_LIB_DETAIL + "YB_REFRESH_LIMIT_" + reqChartInfoId + "_" + strconv.Itoa(int(userInfo.UserID))

+ 21 - 9
controller/chart/my_chart.go

@@ -14,6 +14,7 @@ import (
 	"hongze/hongze_yb/utils"
 	"io/ioutil"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -76,15 +77,16 @@ func GetMyChartList(c *gin.Context) {
 	reqKeywords := c.DefaultQuery("Keywords", "")
 	reqClassifyId := c.DefaultQuery("ClassifyId", "")
 
+	// 获取用户图表分类权限
+	publicCondition := make(map[string]interface{})
+	privateCondition := make(map[string]interface{})
+	publicClassify, privateClassify, err := chart.GetUserChartClassifyListByCondition(userInfo, publicCondition, privateCondition)
+	if err != nil {
+		response.FailMsg("获取失败", "获取图表分类信息失败, Err:" + err.Error(), c)
+		return
+	}
+
 	if reqClassifyId == "" && reqKeywords == "" {
-		// 默认展示第一个最小分类下的图表
-		publicCondition := make(map[string]interface{})
-		privateCondition := make(map[string]interface{})
-		publicClassify, privateClassify, err := chart.GetUserChartClassifyListByCondition(userInfo, publicCondition, privateCondition)
-		if err != nil {
-			response.FailMsg("获取失败", "获取图表分类信息失败, Err:" + err.Error(), c)
-			return
-		}
 		// 内部员工默认取自己的第一个分类
 		classifyId := 0
 		if len(privateClassify) > 0 {
@@ -94,13 +96,23 @@ func GetMyChartList(c *gin.Context) {
 				classifyId = publicClassify[0].MyChartClassifyId
 			}
 		}
-
 		condition += " AND d.my_chart_classify_id = ?"
 		pars = append(pars, classifyId)
 	} else if reqKeywords != "" {
 		// 关键词
 		condition += " AND b.chart_name LIKE ?"
 		pars = append(pars, "%" + reqKeywords + "%")
+		// 搜索自己权限内的图表
+		classifyIdSlice := make([]string, 0)
+		for i := 0; i < len(publicClassify); i++ {
+			classifyIdSlice = append(classifyIdSlice, strconv.Itoa(publicClassify[i].MyChartClassifyId))
+		}
+		for i := 0; i < len(privateClassify); i++ {
+			classifyIdSlice = append(classifyIdSlice, strconv.Itoa(privateClassify[i].MyChartClassifyId))
+		}
+		classifyIdsStr := strings.Join(classifyIdSlice, ",")
+		condition += " AND d.my_chart_classify_id IN (?)"
+		pars = append(pars, classifyIdsStr)
 	} else {
 		// 指定分类
 		condition += " AND d.my_chart_classify_id = ?"

+ 2 - 1
models/tables/edb_data/query.go

@@ -99,6 +99,7 @@ func GetEdbDataList(source, endInfoId int, startDate, endDate string) (list []*E
 		return list, err
 	}
 	var pars []interface{}
+	pars = append(pars, endInfoId)
 	sql := `SELECT edb_data_id,edb_info_id,data_time,value,data_timestamp FROM %s WHERE edb_info_id = ? `
 	if startDate != "" {
 		sql += ` AND data_time >= ? `
@@ -110,7 +111,7 @@ func GetEdbDataList(source, endInfoId int, startDate, endDate string) (list []*E
 	}
 	sql += ` ORDER BY data_time ASC `
 	sql = fmt.Sprintf(sql, tableName)
-	err = global.MYSQL["data"].Raw(sql, endInfoId, pars).Scan(&list).Error
+	err = global.MYSQL["data"].Raw(sql, pars...).Scan(&list).Error
 
 	return
 }

+ 2 - 1
models/tables/my_chart/query.go

@@ -67,7 +67,8 @@ func GetMyChartListByCondition(condition string, pars []interface{}, page, limit
 	}
 	sql += " GROUP BY a.chart_info_id ORDER BY c.sort ASC LIMIT ?,? "
 	offset := (page - 1) * limit
-	err = global.MYSQL["data"].Raw(sql, pars, offset, limit).Scan(&list).Error
+	pars = append(pars, offset, limit)
+	err = global.MYSQL["data"].Raw(sql, pars...).Scan(&list).Error
 
 	return
 }