zwxi 6 months ago
parent
commit
feca3b4131
3 changed files with 207 additions and 3 deletions
  1. 168 1
      controllers/data_manage/chart_info.go
  2. 30 2
      models/data_manage/chart_info.go
  3. 9 0
      routers/commentsRouter.go

+ 168 - 1
controllers/data_manage/chart_info.go

@@ -4552,6 +4552,7 @@ func (this *ChartInfoController) ChartList() {
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
 	keyWord := this.GetString("KeyWord")
+	sysUserIds := this.GetString("SysUserIds")
 
 	var total int
 	page := paging.GetPaging(currentIndex, pageSize, total)
@@ -4597,6 +4598,24 @@ func (this *ChartInfoController) ChartList() {
 	if keyWord != "" {
 		condition += ` AND  ( chart_name LIKE '%` + keyWord + `%' OR chart_name_en LIKE '%` + keyWord + `%' )`
 	}
+	if sysUserIds != "" {
+		adminIds := strings.Split(sysUserIds, ",")
+		if len(adminIds) == 0 {
+			br.Msg = "请选择正确的创建人"
+			return
+		}
+		adminIdsSlice := make([]int, 0)
+		for _, adminId := range adminIds {
+			adminIdInt, e := strconv.Atoi(adminId)
+			if e != nil {
+				br.Msg = "请选择正确的创建人"
+				return
+			}
+			adminIdsSlice = append(adminIdsSlice, adminIdInt)
+		}
+		condition += "  AND sys_user_id in (" + utils.GetOrmInReplace(len(adminIds)) + ") "
+		pars = append(pars, adminIdsSlice)
+	}
 
 	//只看我的
 	//isShowMe, _ := this.GetBool("IsShowMe")
@@ -4736,4 +4755,152 @@ func (this *ChartInfoController) ChartList() {
 	br.Success = true
 	br.Msg = "获取成功"
 	br.Data = resp
-}
+}
+
+// ModifyChartList
+// @Title 批量修改图表
+// @Description 批量修改图表
+// @Param   SysUserIds   query   string  true       "根据创建人查询"
+// @Param   ChartClassifyIds   query   string  true       "图片分类id"
+// @Success 200 {object} models.ChartClassifyListResp
+// @router /modify/chartList [post]
+func (this *ChartInfoController) ModifyChartList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req data_manage.ModifyChartListReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if !req.SelectAll && req.ChartInfoIds == "" {
+		br.Msg = "请选择图表"
+		return
+	}
+	if req.ChartClassifyId < 0 {
+		br.Msg = "请选择新分类"
+		return
+	}
+
+	var chartIds []int
+
+	if req.SelectAll {
+		//根据查询条件筛选
+		chartClassifyIds := strings.Split(req.ChartClassifyIds, ",")
+		sysUserIds := req.SysUserIds
+		chartName := req.ChartName
+
+		condition := " AND source = ? "
+		pars := make([]interface{}, 0)
+		pars = append(pars, utils.CHART_SOURCE_DEFAULT)
+
+		if len(chartClassifyIds) > 0 {
+			if !req.SubClassify {
+				chartClassifyId, err := data_manage.GetChartClassifyByIdsNoSubClassify(chartClassifyIds)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取图表信息失败"
+					br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
+					return
+				}
+				condition += " AND chart_classify_id IN(" + chartClassifyId+ ") "
+				//pars = append(pars, chartClassifyId)
+			} else {
+				chartClassifyId, err := data_manage.GetChartClassifyByIds(chartClassifyIds)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取图表信息失败"
+					br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
+					return
+				}
+				condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
+				//pars = append(pars, chartClassifyId)
+			}
+		}
+
+		if sysUserIds != "" {
+			adminIds := strings.Split(sysUserIds, ",")
+			if len(adminIds) == 0 {
+				br.Msg = "请选择正确的创建人"
+				return
+			}
+			adminIdsSlice := make([]int, 0)
+			for _, adminId := range adminIds {
+				adminIdInt, e := strconv.Atoi(adminId)
+				if e != nil {
+					br.Msg = "请选择正确的创建人"
+					return
+				}
+				adminIdsSlice = append(adminIdsSlice, adminIdInt)
+			}
+			condition += "  AND sys_user_id in (" + utils.GetOrmInReplace(len(adminIds)) + ") "
+			pars = append(pars, adminIdsSlice)
+		}
+
+		if chartName != "" {
+			condition = " AND chart_name LIKE ? "
+			pars = append(pars, utils.GetLikeKeyword(chartName))
+		}
+
+		allChartInfo, err := data_manage.GetChartInfoItemsByCondition(condition, pars)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+			return
+		}
+		// 判断是否超过100 个
+		if len(allChartInfo) > 100 {
+			br.Msg = "最多只能选择100个图表"
+			return
+		}
+		for _, v := range allChartInfo {
+			chartIds = append(chartIds, v.ChartInfoId)
+		}
+	} else {
+		chartIdStr := strings.Split(req.ChartInfoIds, ",")
+		if len(chartIdStr) == 0 {
+			br.Msg = "请选择正确的图表"
+			return
+		}
+		for _, id := range chartIdStr {
+			tmp, e := strconv.Atoi(id)
+			if e != nil {
+				br.Msg = "请选择正确的分类"
+				return
+			}
+			chartIds = append(chartIds, tmp)
+		}
+		// 判断是否超过100 个
+		if len(chartIds) > 100 {
+			br.Msg = "最多只能选择100个图表"
+			return
+		}
+	}
+
+	if len(chartIds) == 0 {
+		br.Msg = "请选择正确的图表"
+		return
+	}
+
+	err = data_manage.UpdateChartClassifyIdByChartInfoId(chartIds, req.ChartClassifyId)
+	if err != nil {
+		br.Msg = "更新失败"
+		br.ErrMsg = "更新图表分类失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}

+ 30 - 2
models/data_manage/chart_info.go

@@ -1417,8 +1417,6 @@ func EditChartBaseInfoAndEdbEnInfo(req *EditChartInfoBaseReq, chartItem *ChartIn
 		updateChartCols = append(updateChartCols, "ExtraConfig")
 	}
 
-
-
 	chartItem.ModifyTime = time.Now()
 	updateChartCols = append(updateChartCols, "ModifyTime")
 	_, err = to.Update(chartItem, updateChartCols...)
@@ -2868,3 +2866,33 @@ func getThsHfEdbDataListMinAndMaxByMongo(source, subSource, edbInfoId int, start
 	maxData = result.MaxValue
 	return
 }
+
+// ModifyChartListReq 批量编辑图表请求参数
+type ModifyChartListReq struct {
+	SelectAll        bool
+	SubClassify      bool `description:"是否关联图表子分类"`
+	ChartClassifyIds string
+	SysUserIds       string
+	ChartName        string
+	ChartInfoIds     string `description:"图表ID"`
+	ChartClassifyId  int    `description:"新图表分类"`
+}
+
+
+func GetChartInfoItemsByCondition(condition string, pars []interface{}) (item []*ChartInfo, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM chart_info WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&item)
+	return
+}
+
+// UpdateChartClassifyIdByChartInfoId 根据图表分类ID
+func UpdateChartClassifyIdByChartInfoId(chartInfoIds []int, classifyId int) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` update chart_info set chart_classify_id = ? WHERE chart_info_id in (` + utils.GetOrmInReplace(len(chartInfoIds)) + `) `
+	_, err = o.Raw(sql, classifyId, chartInfoIds).Exec()
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -3391,6 +3391,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "ModifyChartList",
+            Router: `/modify/chartList`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
         beego.ControllerComments{
             Method: "MultipleGraphConfigSaveChart",