hsun 1 year ago
parent
commit
8ea4995d69

+ 179 - 0
controllers/data_manage/correlation/correlation_chart_info.go

@@ -3,12 +3,16 @@ package correlation
 import (
 	"encoding/json"
 	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_ETA_mobile_api/controllers"
+	"hongze/hongze_ETA_mobile_api/models"
 	"hongze/hongze_ETA_mobile_api/models/data_manage"
 	"hongze/hongze_ETA_mobile_api/models/system"
 	"hongze/hongze_ETA_mobile_api/services/data"
 	correlationServ "hongze/hongze_ETA_mobile_api/services/data/correlation"
 	"hongze/hongze_ETA_mobile_api/utils"
+	"strconv"
+	"strings"
 	"time"
 )
 
@@ -216,3 +220,178 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 	isOk = true
 	return
 }
+
+// List
+// @Title 相关性图表列表接口
+// @Description 相关性图表列表接口
+// @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"
+// @Param   Source   query   int  true       "图表类型,3:相关性,4:滚动相关性"
+// @Success 200 {object} data_manage.ChartListResp
+// @router /chart_info/list [get]
+func (this *CorrelationChartInfoController) List() {
+	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
+	}
+
+	chartClassifyId, _ := this.GetInt("ChartClassifyId")
+
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	keyword := this.GetString("KeyWord")
+
+	var total int
+	page := paging.GetPaging(currentIndex, pageSize, total)
+
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = paging.StartIndex(currentIndex, pageSize)
+
+	source, _ := this.GetInt("Source")
+	if source <= 0 {
+		source = utils.CHART_SOURCE_CORRELATION
+	}
+
+	var condition string
+	var pars []interface{}
+
+	// 普通图表
+	condition += ` AND source = ? `
+	pars = append(pars, source)
+
+	if chartClassifyId > 0 {
+		chartClassifyId, err := data_manage.GetChartClassify(chartClassifyId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取图表信息失败"
+			br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
+			return
+		}
+		condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
+	}
+	if keyword != "" {
+		condition += ` AND  ( chart_name LIKE '%` + keyword + `%' )`
+	}
+
+	//只看我的
+	isShowMe, _ := this.GetBool("IsShowMe")
+	if isShowMe {
+		condition += ` AND sys_user_id = ? `
+		pars = append(pars, sysUser.AdminId)
+	}
+
+	// 获取当前账号的不可见指标
+	noPermissionChartIdList := make([]int, 0)
+	{
+		obj := data_manage.EdbInfoNoPermissionAdmin{}
+		confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
+			return
+		}
+		for _, v := range confList {
+			noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
+		}
+	}
+
+	lenNoPermissionChartIdList := len(noPermissionChartIdList)
+	if lenNoPermissionChartIdList > 0 {
+		condition += ` AND chart_info_id not in (` + utils.GetOrmInReplace(lenNoPermissionChartIdList) + `) `
+		pars = append(pars, noPermissionChartIdList)
+	}
+
+	//获取图表信息
+	list, err := data_manage.GetChartListByCondition(condition, pars, startSize, pageSize)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Success = true
+		br.Msg = "获取图表信息失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	myChartList, err := data_manage.GetMyChartListByAdminId(sysUser.AdminId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取图表信息失败"
+		br.ErrMsg = "获取我的图表信息失败,Err:" + err.Error()
+		return
+	}
+	myChartMap := make(map[int]*data_manage.MyChartView)
+	for _, v := range myChartList {
+		myChartMap[v.ChartInfoId] = v
+	}
+	listLen := len(list)
+	chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
+	if listLen > 0 {
+		chartInfoIds := ""
+		for _, v := range list {
+			chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
+		}
+		if chartInfoIds != "" {
+			chartInfoIds = strings.Trim(chartInfoIds, ",")
+			//判断是否需要展示英文标识
+			edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
+			if e != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
+				return
+			}
+			for _, v := range edbList {
+				chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
+			}
+		}
+	}
+	for i := 0; i < listLen; i++ {
+		//判断是否需要展示英文标识
+		if edbTmpList, ok := chartEdbMap[list[i].ChartInfoId]; ok {
+			list[i].IsEnChart = data.CheckIsEnChart(list[i].ChartNameEn, edbTmpList, list[i].Source, list[i].ChartType)
+		}
+
+		if existItem, ok := myChartMap[list[i].ChartInfoId]; ok {
+			list[i].IsAdd = true
+			list[i].MyChartId = existItem.MyChartId
+			list[i].MyChartClassifyId = existItem.MyChartClassifyId
+		}
+	}
+
+	resp := new(data_manage.ChartListResp)
+	if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
+		items := make([]*data_manage.ChartInfoView, 0)
+		resp.Paging = page
+		resp.List = items
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		return
+	}
+
+	dataCount, err := data_manage.GetChartListCountByCondition(condition, pars)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取指标信息失败"
+		br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
+		return
+	}
+	page = paging.GetPaging(currentIndex, pageSize, dataCount)
+	resp.Paging = page
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 0 - 124
controllers/data_manage/my_chart.go

@@ -1810,127 +1810,3 @@ func generateMyChartClassifyName(myChartClassifyName string, count int, chartCla
 	}
 	return
 }
-
-// ModifyClassifyCompanyPublicStatus
-// @Title 修改公共分类是否用户可见
-// @Description 修改公共分类是否用户可见接口
-// @Param	request	body data_manage.ModifyChartClassifyCompanyPublicReq true "type json string"
-// @Success 200 Ret=200 修改成功
-// @router /classify/modify_company_public [post]
-func (this *MyChartController) ModifyClassifyCompanyPublicStatus() {
-	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.ModifyChartClassifyCompanyPublicReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-
-	item, err := data_manage.GetPublicMyChartClassifyById(req.MyChartClassifyId)
-	if err != nil {
-		br.Msg = "找不到该分类"
-		br.ErrMsg = "获取分类信息失败, Err:" + err.Error()
-		return
-	}
-
-	if item.IsPublic != 1 {
-		br.Msg = "该分类未公开,不可设置为用户可见"
-		br.ErrMsg = "该分类未公开,不可设置为用户可见"
-		return
-	}
-
-	item.IsCompanyPublic = req.IsCompanyPublic
-	item.CompanyPublicTime = time.Now()
-	err = item.Update([]string{"IsCompanyPublic", "CompanyPublicTime"})
-	if err != nil {
-		br.Msg = "修改失败"
-		br.ErrMsg = "修改是否用户可见失败, Err:" + err.Error()
-		return
-	}
-
-	{
-		edbLog := new(data_manage.MyChartLog)
-		edbLog.MyChartId = 0
-		edbLog.ChartInfoId = 0
-		edbLog.SysUserId = sysUser.AdminId
-		edbLog.SysUserRealName = sysUser.RealName
-		edbLog.CreateTime = time.Now()
-		edbLog.Content = string(this.Ctx.Input.RequestBody)
-		edbLog.Status = "修改用户是否可见"
-		edbLog.Method = this.Ctx.Input.URI()
-		go data_manage.AddMyChartLog(edbLog)
-	}
-
-	br.Ret = 200
-	br.Msg = "修改成功"
-	br.Success = true
-	br.IsAddLog = true
-}
-
-// CompanyPublicClassifyList
-// @Title 我的图表-用户可见分类列表
-// @Description 我的图表-用户可见分类列表接口
-// @Param   Keyword		query	string  false	"分类名称关键词"
-// @Success 200 {object} data_manage.MyChartClassifyResp
-// @router /classify/company_public_list [get]
-func (this *MyChartController) CompanyPublicClassifyList() {
-	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 condition string
-	var pars []interface{}
-	keyword := this.GetString("Keyword")
-	if keyword != "" {
-		keyword = "%" + keyword + "%"
-		condition += ` AND my_chart_classify_name LIKE ? `
-		pars = append(pars, keyword)
-	}
-	list, err := data_manage.GetCompanyPublicClassifyList(condition, pars)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Success = true
-		br.Msg = "获取用户可见分类列表失败"
-		br.ErrMsg = "获取用户可见分类列表失败, Err:" + err.Error()
-		return
-	}
-
-	resp := new(data_manage.MyChartClassifyResp)
-	if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
-		items := make([]*data_manage.MyChartClassify, 0)
-		resp.List = items
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		return
-	}
-
-	resp.List = list
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-}