|
@@ -1810,3 +1810,155 @@ func generateMyChartClassifyName(myChartClassifyName string, count int, chartCla
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// Locate
|
|
|
+// @Title ETA图表位置
|
|
|
+// @Description ETA图表位置
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param ChartClassifyId query int true "分类id"
|
|
|
+// @Param KeyWord query string true "搜索关键词"
|
|
|
+// @Param IsShowMe query bool true "是否只看我的,true、false"
|
|
|
+// @Success 200 {object} data_manage.ChartListResp
|
|
|
+// @router /chart/locate [get]
|
|
|
+func (this *MyChartController) Locate() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ classifyId, _ := this.GetInt("ChartClassifyId")
|
|
|
+ keyword := this.GetString("KeyWord")
|
|
|
+ mine, _ := this.GetBool("IsShowMe") // 只看我的
|
|
|
+
|
|
|
+ condition := ` AND source = ?`
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, utils.CHART_SOURCE_DEFAULT) // 普通图表
|
|
|
+ orderRule := ``
|
|
|
+ {
|
|
|
+ if keyword != "" {
|
|
|
+ k := fmt.Sprint("%", keyword, "%")
|
|
|
+ condition += ` AND chart_name LIKE ?`
|
|
|
+ pars = append(pars, k)
|
|
|
+ }
|
|
|
+ if mine {
|
|
|
+ condition += ` AND sys_user_id = ?`
|
|
|
+ pars = append(pars, sysUser.AdminId)
|
|
|
+ }
|
|
|
+ if classifyId > 0 {
|
|
|
+ strIds, e := data_manage.GetChartClassify(classifyId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取图表分类信息失败, GetChartClassify Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if strIds == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "图表分类为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ condition += fmt.Sprintf(` AND chart_classify_id IN (%s)`, strIds)
|
|
|
+ orderRule = `chart_classify_id`
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 当前账号的不可见指标
|
|
|
+ {
|
|
|
+ ids := make([]int, 0)
|
|
|
+ obj := data_manage.EdbInfoNoPermissionAdmin{}
|
|
|
+ conf, e := obj.GetAllChartListByAdminId(sysUser.AdminId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取不可见指标配置失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range conf {
|
|
|
+ ids = append(ids, v.ChartInfoId)
|
|
|
+ }
|
|
|
+ if len(ids) > 0 {
|
|
|
+ condition += fmt.Sprintf(` AND chart_info_id NOT IN (%s)`, utils.GetOrmInReplace(len(ids)))
|
|
|
+ pars = append(pars, ids)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取图表
|
|
|
+ list := make([]*data_manage.ChartInfoLocate, 0)
|
|
|
+ charts, e := data_manage.GetChartItems(condition, pars, orderRule)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取图表列表失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(charts) == 0 {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = list
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 二级分类
|
|
|
+ classifies, e := data_manage.GetSecondaryChartClassifyWithSort()
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取图表分类排序失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyIdName := make(map[int]string)
|
|
|
+ for _, c := range classifies {
|
|
|
+ classifyIdName[c.ChartClassifyId] = c.ChartClassifyName
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分类ID大于0时, 优先分类排序, 其次图表排序
|
|
|
+ if classifyId > 0 {
|
|
|
+ for _, cl := range classifies {
|
|
|
+ for _, ch := range charts {
|
|
|
+ if ch.ChartClassifyId != cl.ChartClassifyId {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ v := new(data_manage.ChartInfoLocate)
|
|
|
+ v.ChartInfoId = ch.ChartInfoId
|
|
|
+ v.ChartName = ch.ChartName
|
|
|
+ v.ChartType = ch.ChartType
|
|
|
+ v.ChartClassifyId = ch.ChartClassifyId
|
|
|
+ v.ChartClassifyName = cl.ChartClassifyName
|
|
|
+ v.UniqueCode = ch.UniqueCode
|
|
|
+ v.Source = ch.Source
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = list
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分类ID为0时
|
|
|
+ for _, ch := range charts {
|
|
|
+ v := new(data_manage.ChartInfoLocate)
|
|
|
+ v.ChartInfoId = ch.ChartInfoId
|
|
|
+ v.ChartName = ch.ChartName
|
|
|
+ v.ChartType = ch.ChartType
|
|
|
+ v.ChartClassifyId = ch.ChartClassifyId
|
|
|
+ v.ChartClassifyName = classifyIdName[v.ChartClassifyId]
|
|
|
+ v.UniqueCode = ch.UniqueCode
|
|
|
+ v.Source = ch.Source
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = list
|
|
|
+}
|