Browse Source

fix: 图表上一张下一张

hsun 3 years ago
parent
commit
2e6c3f1961

+ 26 - 9
controller/chart/chart_info.go

@@ -2,6 +2,7 @@ package chart
 
 import (
 	"context"
+	"fmt"
 	"github.com/gin-gonic/gin"
 	"hongze/hongze_yb/controller/response"
 	"hongze/hongze_yb/global"
@@ -11,7 +12,6 @@ import (
 	"hongze/hongze_yb/models/tables/chart_info_log"
 	edbDataModel "hongze/hongze_yb/models/tables/edb_data"
 	edbInfoModel "hongze/hongze_yb/models/tables/edb_info"
-	"hongze/hongze_yb/models/tables/my_chart"
 	"hongze/hongze_yb/services/chart"
 	edbDataService "hongze/hongze_yb/services/edb_data"
 	"hongze/hongze_yb/services/user"
@@ -305,13 +305,13 @@ func GetChartInfoDetail(c *gin.Context)  {
 		edbList = append(edbList, item)
 	}
 
-	if chartInfoId > 0 && chartInfo != nil {
+	/*if chartInfoId > 0 && chartInfo != nil {
 		// 判断是否加入我的图库
 		{
 			var myChartCondition string
 			var myChartPars []interface{}
-			//myChartCondition += ` AND a.admin_id = ? `
-			//myChartPars = append(myChartPars, userInfo.AdminId)
+			myChartCondition += ` AND a.admin_id = ? `
+			myChartPars = append(myChartPars, userInfo.AdminId)
 			myChartCondition += ` AND a.chart_info_id = ? `
 			myChartPars = append(myChartPars, chartInfo.ChartInfoId)
 
@@ -326,7 +326,7 @@ func GetChartInfoDetail(c *gin.Context)  {
 				chartInfo.MyChartClassifyId = myChartList[0].MyChartClassifyId
 			}
 		}
-	}
+	}*/
 
 	resp := new(chart_info.ChartInfoDetailResp)
 	resp.ChartInfo = chartInfo
@@ -335,14 +335,31 @@ func GetChartInfoDetail(c *gin.Context)  {
 }
 
 // RefreshChartInfo 刷新图表信息
+// @Tags 图库模块
+// @Summary  刷新图表信息
+// @Description 刷新图表信息
+// @Security ApiKeyAuth
+// @Param Authorization	header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
+// @Accept  json
+// @Product json
+// @Param data body chartInfoModel.SaveChartInfoReq true "请求参数"
+// @Success 200 {string} string "操作成功"
+// @failure 400 {string} string "操作失败"
+// @Router /my_chart/refreshChartInfo [post]
 func RefreshChartInfo(c *gin.Context)  {
 	// 参数校验
-	reqChartInfoId := c.DefaultQuery("ChartInfoId", "")
-	if reqChartInfoId == "" {
-		response.Fail("参数有误:图表ID", c)
+	var req chartInfoModel.RefreshChartInfoReq
+	if c.ShouldBind(&req) != nil {
+		response.Fail("参数异常", c)
 		return
 	}
-	chartInfoId, _ := strconv.Atoi(reqChartInfoId)
+	chartInfoId := req.ChartInfoId
+	if chartInfoId == 0 {
+		response.Fail("参数有误", c)
+		return
+	}
+
+	fmt.Println("图表ID:::", chartInfoId)
 
 	// 刷新频率限制
 	//userInfo := user.GetInfoByClaims(c)

+ 22 - 5
controller/chart/my_chart.go

@@ -1,6 +1,7 @@
 package chart
 
 import (
+	"fmt"
 	"github.com/gin-gonic/gin"
 	"hongze/hongze_yb/controller/response"
 	"hongze/hongze_yb/models/response/my_chart"
@@ -14,7 +15,6 @@ import (
 	"hongze/hongze_yb/utils"
 	"io/ioutil"
 	"strconv"
-	"strings"
 	"time"
 )
 
@@ -400,6 +400,7 @@ func MoveMyChartClassify(c *gin.Context) {
 // @Accept  json
 // @Product json
 // @Param MyChartId query string false "我的图表ID"
+// @Param MyChartClassifyId query string false "我的图表分类ID"
 // @Success 200 {object} chartInfoModel.ChartBeforeNext
 // @failure 400 {string} string "获取失败"
 // @Router /my_chart/getChartBeforeAndNext [get]
@@ -407,11 +408,18 @@ func GetChartBeforeAndNext(c *gin.Context) {
 	// 参数校验
 	reqMyChartId := c.DefaultQuery("MyChartId", "")
 	if reqMyChartId == "" {
-		response.Fail("参数有误:我的图表ID", c)
+		response.Fail("参数有误:图表ID", c)
 		return
 	}
 	myChartId, _ := strconv.Atoi(reqMyChartId)
-	myChartInfo, err := myChartModel.GetMyChartById(myChartId)
+	myChartClassifyId := c.DefaultQuery("MyChartClassifyId", "")
+	if myChartClassifyId == "" {
+		response.Fail("参数有误:图表分类ID", c)
+		return
+	}
+	//myChartClassifyId, _ := strconv.Atoi(reqMyChartClasifyId)
+
+	myChartInfo, err := myChartModel.GetMyChartById(myChartId, myChartClassifyId)
 	if err != nil {
 		if err == utils.ErrNoRow {
 			response.Fail("图表已被删除,请刷新当前页面", c)
@@ -422,7 +430,7 @@ func GetChartBeforeAndNext(c *gin.Context) {
 	}
 
 	// 1.获取当前图表所在分类的所有图表信息
-	myChartClassifyId := myChartInfo.MyChartClassifyId
+	//myChartClassifyId := myChartInfo.MyChartClassifyId
 	myChartList, err := myChartClassifyMappingModel.GetMyChartSortInfoList(myChartClassifyId, 2)
 	// 找出当前图表前一张及后一张,当前图为最前一张或最后一张时需要取其他分类的图
 	var currentIndex int
@@ -436,6 +444,8 @@ func GetChartBeforeAndNext(c *gin.Context) {
 
 	var beforeChart, afterChart *myChartClassifyMappingModel.MyChartSortInfo
 	beforeIndex := currentIndex - 1
+	fmt.Println("currentIndex:", currentIndex)
+	fmt.Println("beforeIndex:", beforeIndex)
 	if beforeIndex >= 0 {
 		// 存在同分类上一张
 		beforeChart = myChartList[beforeIndex]
@@ -491,8 +501,12 @@ func GetChartBeforeAndNext(c *gin.Context) {
 		// 获取当前图表分类在所有分类中的位置
 		var currentClassifyIndex int
 		for indexClassify, itemClassify := range classifyList {
+			//fmt.Println("classifyList:", *itemClassify)
+			//fmt.Println("classifyList-myChartClassifyId:", myChartClassifyId)
+			fmt.Println("classifyList-MyChartClassifyId:", itemClassify.MyChartClassifyId)
 			itemClassifyId := strconv.Itoa(itemClassify.MyChartClassifyId)
-			if strings.Contains(myChartInfo.MyChartClassifyId, itemClassifyId) {
+			//if strings.Contains(myChartClassifyId, itemClassifyId) {
+			if myChartClassifyId == itemClassifyId {
 				currentClassifyIndex = indexClassify
 				break
 			}
@@ -500,8 +514,11 @@ func GetChartBeforeAndNext(c *gin.Context) {
 		lastClassifyIndex := len(classifyList) - 1
 
 		// 若图表为分类第一张,则取上一个分类最后一张作为上一张返回
+		fmt.Println("currentClassifyIndex:", currentClassifyIndex)
 		beforeClassifyIndex := currentClassifyIndex - 1
+		fmt.Println("len-classifyList", len(classifyList))
 		if beforeIndex < 0 && len(classifyList) > 0 && beforeClassifyIndex >= 0 {
+			fmt.Println("获取上一个分类图表--start")
 			beforeClassifyIdStr := strconv.Itoa(classifyList[beforeClassifyIndex].MyChartClassifyId)
 			beforeClassifyChartList, tempErr := myChartClassifyMappingModel.GetMyChartSortInfoList(beforeClassifyIdStr, 1)
 			if tempErr != nil {

+ 4 - 0
models/tables/chart_info/query.go

@@ -82,6 +82,10 @@ type ChartBeforeNext struct {
 	NextChart	ChartSortInfo
 }
 
+type RefreshChartInfoReq struct {
+	ChartInfoId	int
+}
+
 // GetChartInfoViewById 通过Id获取图表展示信息
 func GetChartInfoViewById(chartInfoId int) (item *ChartInfoView, err error) {
 	sql := `SELECT * FROM chart_info WHERE chart_info_id = ? `

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

@@ -615,7 +615,8 @@ func GetEdbDataListAll(condition string, pars []interface{}, source, order int)
 	} else {
 		sql += ` ORDER BY data_time DESC `
 	}
-	err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
+	fmt.Println("GetEdbDataListAll-SQL-----", sql)
+	err = global.MYSQL["data"].Raw(sql, pars...).Scan(&item).Error
 
 	return
 }

+ 5 - 5
models/tables/my_chart/query.go

@@ -88,12 +88,12 @@ func GetMyChartByCondition(condition string, pars []interface{}) (list []*MyChar
 }
 
 // GetMyChartById 主键获取我的图表
-func GetMyChartById(myChartId int) (item *MyChartView, err error) {
+func GetMyChartById(myChartId int, myChartClassifyId string) (item *MyChartView, err error) {
 	sql := ` SELECT a.*,b.sort,c.my_chart_classify_id FROM my_chart AS a
-			LEFT JOIN my_chart_classify_mapping AS b ON a.my_chart_id=b.my_chart_id AND a.admin_id=b.admin_id
-			LEFT JOIN my_chart_classify AS c ON b.my_chart_classify_id=c.my_chart_classify_id AND b.admin_id=c.admin_id
-			WHERE 1=1 AND a.my_chart_id = ?`
-	err = global.MYSQL["data"].Raw(sql, myChartId).First(&item).Error
+			INNER JOIN my_chart_classify_mapping AS b ON a.my_chart_id=b.my_chart_id AND a.admin_id=b.admin_id
+			INNER JOIN my_chart_classify AS c ON b.my_chart_classify_id=c.my_chart_classify_id AND b.admin_id=c.admin_id
+			WHERE 1=1 AND a.my_chart_id = ? AND b.my_chart_classify_id = ?`
+	err = global.MYSQL["data"].Raw(sql, myChartId, myChartClassifyId).First(&item).Error
 
 	return
 }

+ 2 - 2
models/tables/my_chart_classify_mapping/query.go

@@ -66,8 +66,8 @@ func GetMyChartSortInfoList(myChartClassifyId string, sort int) (item []*MyChart
 				my_chart_classify AS d ON a.my_chart_classify_id = d.my_chart_classify_id
 			WHERE
 				1 = 1
-			AND a.my_chart_classify_id = ?
-			GROUP BY c.chart_info_id `
+			AND a.my_chart_classify_id = ? `
+			//GROUP BY c.chart_info_id `
 	if sort == 1 {
 		sql += ` ORDER BY sort DESC `
 	} else {

+ 4 - 4
services/chart/chart_info.go

@@ -183,7 +183,7 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 		calculateMap[bv.EdbInfoId] = bv
 	}
 	sort.Ints(calculateArr)
-
+fmt.Println("刷新指标1--start")
 	var startDate string
 	for _, bv := range newBaseEdbInfoArr {
 		source := bv.Source
@@ -296,7 +296,7 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 			}
 		}
 	}
-
+fmt.Println("刷新指标1--end")
 	endDate := "" //计算指标不限制日期
 	//刷新相关计算指标
 	for _, v := range calculateArr {
@@ -498,7 +498,7 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 		}
 		fmt.Println("end calculateArr:", v, time.Now())
 	}
-
+fmt.Println("刷新指标2--end")
 	return
 }
 
@@ -508,7 +508,7 @@ func GetChartInfoRefreshData(chartInfoId int) (baseEdbInfoArr, calculateInfoArr
 		   INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id 
 		   WHERE a.chart_info_id=? `
 	edbInfoList := make([]*edbInfoModel.EdbInfo, 0)
-	err = global.MYSQL["data"].Exec(sql, chartInfoId).Error
+	err = global.MYSQL["data"].Raw(sql, chartInfoId).Scan(&edbInfoList).Error
 	if err != nil {
 		return
 	}

+ 3 - 3
services/chart/edb_data.go

@@ -2169,7 +2169,6 @@ func RefreshAllCalculateTbz(edbInfoId, source int, fromEdbInfo *edbInfoModel.Edb
 		return
 	}
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	//计算数据
 	var condition string
@@ -2185,11 +2184,12 @@ func RefreshAllCalculateTbz(edbInfoId, source int, fromEdbInfo *edbInfoModel.Edb
 		condition += " AND data_time<=? "
 		pars = append(pars, endDate)
 	}
-
+	fmt.Println("GetEdbDataListAll--start")
 	dataList, err := edbDataModel.GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
 	if err != nil {
 		return err
 	}
+	fmt.Println("GetEdbDataListAll--end")
 	var dateArr []string
 	dataMap := make(map[string]*edbDataModel.EdbInfoSearchData)
 	for _, v := range dataList {
@@ -2212,7 +2212,7 @@ func RefreshAllCalculateTbz(edbInfoId, source int, fromEdbInfo *edbInfoModel.Edb
 	for _, v := range existDataList {
 		existDataMap[v.DataTime] = v.Value
 	}
-	fmt.Println("existDataMap:", existDataMap)
+	//fmt.Println("existDataMap:", existDataMap)
 	addSql := ` INSERT INTO edb_data_calculate_tbz(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
 	var isAdd bool
 	existAddDataMap := make(map[string]string)