|
@@ -1,15 +1,24 @@
|
|
|
package chart
|
|
|
|
|
|
import (
|
|
|
+ "context"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"hongze/hongze_yb/controller/response"
|
|
|
+ "hongze/hongze_yb/global"
|
|
|
"hongze/hongze_yb/models/response/chart_info"
|
|
|
chartEdbMappingModel "hongze/hongze_yb/models/tables/chart_edb_mapping"
|
|
|
chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
|
|
|
+ "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/services/chart"
|
|
|
edbDataService "hongze/hongze_yb/services/edb_data"
|
|
|
+ "hongze/hongze_yb/services/user"
|
|
|
"hongze/hongze_yb/utils"
|
|
|
+ "io/ioutil"
|
|
|
+ "sort"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -23,9 +32,9 @@ import (
|
|
|
// @Product json
|
|
|
// @Param DateType query string false "时间段:1-00年至今; 2-10年至今; 3-15年至今; 4-21年至今; 5-指定区间; 6-指定年月至今; 7-18年至今; 8-19年至今; 9-20年至今
|
|
|
// @Param ClassifyId query string false "图表分类ID"
|
|
|
-// @Success 200 {object} []my_chart.MyChartList
|
|
|
+// @Success 200 {object} chart_info.ChartInfoDetailResp
|
|
|
// @failure 400 {string} string "图表详情获取失败"
|
|
|
-// @Router /chart/GetChartInfoDetail [get]
|
|
|
+// @Router /chart/getChartInfoDetail [get]
|
|
|
func GetChartInfoDetail(c *gin.Context) {
|
|
|
// 图表ID
|
|
|
reqChartInfoId := c.DefaultQuery("ChartInfoId", "")
|
|
@@ -123,6 +132,7 @@ func GetChartInfoDetail(c *gin.Context) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 指标列表
|
|
|
edbList := make([]*chartEdbMappingModel.ChartEdbInfoMapping, 0)
|
|
|
for _, v := range mappingList {
|
|
|
item := new(chartEdbMappingModel.ChartEdbInfoMapping)
|
|
@@ -322,10 +332,124 @@ func GetChartInfoDetail(c *gin.Context) {
|
|
|
|
|
|
// RefreshChartInfo 刷新图表信息
|
|
|
func RefreshChartInfo(c *gin.Context) {
|
|
|
+ // 参数校验
|
|
|
+
|
|
|
+ // 刷新频率校验
|
|
|
+
|
|
|
+ // 刷新图表
|
|
|
|
|
|
}
|
|
|
|
|
|
// EditChartInfo 编辑图表信息
|
|
|
+// @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 /chart/editChartInfo [post]
|
|
|
func EditChartInfo(c *gin.Context) {
|
|
|
+ // 参数校验
|
|
|
+ var req chartInfoModel.SaveChartInfoReq
|
|
|
+ if c.ShouldBind(&req) != nil {
|
|
|
+ response.Fail("参数异常", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.ChartInfoId > 0 && len(req.ChartEdbInfoList) <= 0 {
|
|
|
+ response.Fail("参数异常", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 操作权限校验
|
|
|
+ userInfo := user.GetInfoByClaims(c)
|
|
|
+ ok, adminInfo, err := user.GetAdminByUserInfo(userInfo)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("操作人信息有误", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !ok {
|
|
|
+ response.Fail("非内部人员无权进行操作", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 图表信息校验
|
|
|
+ chartItem, err := chartInfoModel.GetChartInfoById(req.ChartInfoId)
|
|
|
+ if err != nil {
|
|
|
+ if err == utils.ErrNoRow {
|
|
|
+ response.Fail("图表已被删除,请刷新页面!", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Fail("获取图表信息失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartItem.ChartType == 2 && len(req.ChartEdbInfoList) > 1 {
|
|
|
+ response.Fail("您选择的图表样式为季节性图表,只支持单指标画图!", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Calendar == "" {
|
|
|
+ req.Calendar = "公历"
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标信息
|
|
|
+ var edbInfoIdArr []int
|
|
|
+ edbList := make([]*edbInfoModel.EdbInfo, 0)
|
|
|
+
|
|
|
+ for _, v := range req.ChartEdbInfoList {
|
|
|
+ edbInfo, err := edbInfoModel.GetEdbInfoById(v.EdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ if err == utils.ErrNoRow {
|
|
|
+ response.Fail("图表不存在,ChartInfoId:" + strconv.Itoa(v.EdbInfoId), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Fail("获取图表的指标信息失败,Err:" + err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if edbInfo == nil {
|
|
|
+ response.Fail("指标不存在,ChartInfoId:" + strconv.Itoa(v.EdbInfoId), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfoIdArr = append(edbInfoIdArr, v.EdbInfoId)
|
|
|
+ edbInfo.EdbNameSource = edbInfo.EdbName
|
|
|
+ edbList = append(edbList, edbInfo)
|
|
|
+ }
|
|
|
+ sort.Ints(edbInfoIdArr)
|
|
|
+ var edbInfoIdArrStr []string
|
|
|
+ for _, v := range edbInfoIdArr {
|
|
|
+ edbInfoIdArrStr = append(edbInfoIdArrStr, strconv.Itoa(v))
|
|
|
+ }
|
|
|
+ edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
|
|
|
+
|
|
|
+ err = chart.ModifyChartInfoAndMapping(edbInfoIdStr, &req, chartItem.ChartType)
|
|
|
+ if err != nil {
|
|
|
+ response.Fail("图表保存失败, Err:" + err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清除图表缓存
|
|
|
+ cacheKey := utils.HZ_CHART_LIB_DETAIL + chartItem.UniqueCode
|
|
|
+ _ = global.Redis.Del(context.TODO(), cacheKey)
|
|
|
+
|
|
|
+ // 新增操作日志
|
|
|
+ {
|
|
|
+ chartLog := new(chart_info_log.ChartInfoLog)
|
|
|
+ chartLog.ChartName = chartItem.ChartName
|
|
|
+ chartLog.ChartInfoId = req.ChartInfoId
|
|
|
+ chartLog.ChartClassifyId = chartItem.ChartClassifyId
|
|
|
+ chartLog.SysUserId = int(adminInfo.AdminID)
|
|
|
+ chartLog.SysUserRealName = adminInfo.RealName
|
|
|
+ chartLog.UniqueCode = chartItem.UniqueCode
|
|
|
+ chartLog.CreateTime = time.Now()
|
|
|
+ bodyBytes, _ := ioutil.ReadAll(c.Request.Body)
|
|
|
+ chartLog.Content = string(bodyBytes)
|
|
|
+ chartLog.Status = "修改配置项"
|
|
|
+ chartLog.Method = c.Request.URL.String()
|
|
|
+ go chartLog.Create()
|
|
|
+ }
|
|
|
|
|
|
+ response.OkData("操作成功", "", c)
|
|
|
}
|