Explorar o código

MyETA公共图表目录

hsun hai 1 ano
pai
achega
0b3fda298a

+ 105 - 9
controllers/data_manage/my_chart.go

@@ -1611,15 +1611,14 @@ func (this *MyChartController) PublicClassifyList() {
 
 	resp := new(data_manage.PublicChartClassifyResp)
 	if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
-		items := make([]data_manage.PublicChartClassifyItem, 0)
-		resp.List = items
+		resp.List = make([]data_manage.PublicChartClassifyList, 0)
 		br.Ret = 200
 		br.Success = true
 		br.Msg = "获取成功"
 		return
 	}
-	publicChartClassifyItemList := make([]data_manage.PublicChartClassifyItem, 0)
 
+	// 创建人姓名
 	adminIdStr := make([]string, 0)
 	for _, v := range list {
 		adminIdStr = append(adminIdStr, fmt.Sprint(v.AdminId))
@@ -1632,22 +1631,58 @@ func (this *MyChartController) PublicClassifyList() {
 		}
 	}
 
+	respList := make([]data_manage.PublicChartClassifyList, 0)
+	existMap := make(map[int]bool, 0)
+	itemsMap := make(map[int][]data_manage.PublicChartClassifyItem, 0)
 	for _, v := range list {
-		realName, ok := adminMap[v.AdminId]
-		if !ok {
-			realName = ``
+		realName := adminMap[v.AdminId]
+		if realName == "" {
+			// 忽略掉被删掉的用户
+			continue
+		}
+
+		if itemsMap[v.AdminId] == nil {
+			itemsMap[v.AdminId] = make([]data_manage.PublicChartClassifyItem, 0)
 		}
-		publicChartClassifyItem := data_manage.PublicChartClassifyItem{
+		itemsMap[v.AdminId] = append(itemsMap[v.AdminId], data_manage.PublicChartClassifyItem{
 			MyChartClassifyId:   v.MyChartClassifyId,
 			MyChartClassifyName: v.MyChartClassifyName,
 			AdminId:             v.AdminId,
 			RealName:            realName,
 			IsPublic:            v.IsPublic,
 			IsCompanyPublic:     v.IsCompanyPublic,
+		})
+
+		var menu data_manage.PublicChartClassifyList
+		if existMap[v.AdminId] {
+			continue
 		}
-		publicChartClassifyItemList = append(publicChartClassifyItemList, publicChartClassifyItem)
+		existMap[v.AdminId] = true
+		menu.MenuAdminId = v.AdminId
+		menu.MenuName = fmt.Sprintf("%s的图库", realName)
+		respList = append(respList, menu)
 	}
-	resp.List = publicChartClassifyItemList
+
+	for k, v := range respList {
+		respList[k].Items = itemsMap[v.MenuAdminId]
+	}
+	resp.List = respList
+
+	language := `CN`
+	// 指标显示的语言
+	{
+		configDetail, _ := system.GetConfigDetailByCode(this.SysUser.AdminId, system.ChartLanguageVar)
+		if configDetail != nil {
+			language = configDetail.ConfigValue
+		} else {
+			configDetail, _ = system.GetDefaultConfigDetailByCode(system.ChartLanguageVar)
+			if configDetail != nil {
+				language = configDetail.ConfigValue
+			}
+		}
+	}
+	resp.Language = language
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -1975,3 +2010,64 @@ func (this *MyChartController) Locate() {
 	br.Msg = "获取成功"
 	br.Data = list
 }
+
+// ClassifyFrameworkNodeList
+// @Title 我的图表分类-关联的框架节点列表
+// @Description 我的图表分类-关联的框架节点列表
+// @Param   MyChartClassifyId	query	int	false	"图表分类ID"
+// @Success 200 Ret=200 获取成功
+// @router /classify/framework_node_list [get]
+func (this *MyChartController) ClassifyFrameworkNodeList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = true
+		}
+		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("MyChartClassifyId")
+	if classifyId <= 0 {
+		br.Msg = "参数有误"
+		br.ErrMsg = fmt.Sprintf("参数有误, MyChartClassifyId: %d", classifyId)
+		return
+	}
+
+	_, e := data_manage.GetMyChartClassifyById(sysUser.AdminId, classifyId)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "分类不存在, 请刷新页面"
+			return
+		}
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取分类信息失败, Err:" + e.Error()
+		return
+	}
+
+	nodeOb := new(data_manage.ChartFrameworkNode)
+	cond := ` AND my_chart_classify_id = ?`
+	pars := make([]interface{}, 0)
+	pars = append(pars, classifyId)
+	nodes, e := nodeOb.GetItemsByCondition(cond, pars, []string{}, "")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取我的图表分类关联的框架节点失败, Err: " + e.Error()
+		return
+	}
+	resp := make([]*data_manage.ChartFrameworkNodeItem, 0)
+	for _, v := range nodes {
+		resp = append(resp, data_manage.FormatChartFrameworkNode2Item(v, 0))
+	}
+
+	br.Data = resp
+	br.Ret = 200
+	br.Msg = "获取成功"
+	br.Success = true
+}

+ 140 - 0
models/data_manage/chart_framework_node.go

@@ -0,0 +1,140 @@
+package data_manage
+
+import (
+	"eta/eta_mobile/utils"
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+	"strings"
+	"time"
+)
+
+// ChartFrameworkNode 图库框架节点表
+type ChartFrameworkNode struct {
+	ChartFrameworkNodeId int       `orm:"column(chart_framework_node_id);pk"`
+	ChartFrameworkId     int       `description:"框架ID"`
+	FrameworkName        string    `description:"框架名称"`
+	NodeId               string    `description:"节点ID"`
+	NodeName             string    `description:"节点名称"`
+	MyChartClassifyId    int       `description:"我的图表分类ID"`
+	CreateTime           time.Time `description:"创建时间"`
+}
+
+func (m *ChartFrameworkNode) TableName() string {
+	return "chart_framework_node"
+}
+
+func (m *ChartFrameworkNode) PrimaryId() string {
+	return "chart_framework_node_id"
+}
+
+func (m *ChartFrameworkNode) Create() (err error) {
+	o := orm.NewOrmUsingDB("data")
+	id, err := o.Insert(m)
+	if err != nil {
+		return
+	}
+	m.ChartFrameworkNodeId = int(id)
+	return
+}
+
+func (m *ChartFrameworkNode) CreateMulti(items []*ChartFrameworkNode) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.InsertMulti(len(items), items)
+	return
+}
+
+func (m *ChartFrameworkNode) Update(cols []string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.Update(m, cols...)
+	return
+}
+
+func (m *ChartFrameworkNode) Del() (err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	_, err = o.Raw(sql, m.ChartFrameworkNodeId).Exec()
+	return
+}
+
+func (m *ChartFrameworkNode) GetItemById(id int) (item *ChartFrameworkNode, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	err = o.Raw(sql, id).QueryRow(&item)
+	return
+}
+
+func (m *ChartFrameworkNode) GetItemByCondition(condition string, pars []interface{}) (item *ChartFrameworkNode, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&item)
+	return
+}
+
+func (m *ChartFrameworkNode) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func (m *ChartFrameworkNode) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ChartFrameworkNode, err error) {
+	o := orm.NewOrmUsingDB("data")
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+func (m *ChartFrameworkNode) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ChartFrameworkNode, err error) {
+	o := orm.NewOrmUsingDB("data")
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// ChartFrameworkNodeItem 图库框架节点信息
+type ChartFrameworkNodeItem struct {
+	ChartFrameworkNodeId int
+	ChartFrameworkId     int    `description:"框架ID"`
+	FrameworkName        string `description:"框架名称"`
+	NodeId               string `description:"节点ID"`
+	NodeName             string `description:"节点名称"`
+	MyChartClassifyId    int    `description:"我的图表分类ID"`
+	ChartNum             int    `description:"分类下的图表数"`
+	CreateTime           string `description:"创建时间"`
+}
+
+// FormatChartFrameworkNode2Item 格式化框架节点信息
+func FormatChartFrameworkNode2Item(origin *ChartFrameworkNode, chartNum int) (item *ChartFrameworkNodeItem) {
+	if origin == nil {
+		return
+	}
+	item = new(ChartFrameworkNodeItem)
+	item.ChartFrameworkNodeId = origin.ChartFrameworkNodeId
+	item.ChartFrameworkId = origin.ChartFrameworkId
+	item.FrameworkName = origin.FrameworkName
+	item.NodeId = origin.NodeId
+	item.NodeName = origin.NodeName
+	item.MyChartClassifyId = origin.MyChartClassifyId
+	item.ChartNum = chartNum
+	item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
+	return
+}

+ 9 - 1
models/data_manage/my_chart.go

@@ -75,7 +75,8 @@ type MyChartClassifyResp struct {
 
 // PublicChartClassifyResp 公共分类返回数据结构体
 type PublicChartClassifyResp struct {
-	List []PublicChartClassifyItem
+	List     []PublicChartClassifyList
+	Language string `description:"指标的展示语言,CN:中文,EN:英文"`
 }
 
 // PublicChartClassifyItem 公共分类结构体
@@ -88,6 +89,13 @@ type PublicChartClassifyItem struct {
 	IsCompanyPublic     int    `description:"是否为客户可见"`
 }
 
+// PublicChartClassifyList 公共分类结构体
+type PublicChartClassifyList struct {
+	MenuAdminId int                       `description:"目录创建人ID"`
+	MenuName    string                    `description:"目录名称"`
+	Items       []PublicChartClassifyItem `description:"分类数据"`
+}
+
 type MyChartClassifyAddReq struct {
 	MyChartClassifyName string `description:"分类名称"`
 }

+ 9 - 0
routers/commentsRouter.go

@@ -862,6 +862,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:MyChartController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:MyChartController"],
+        beego.ControllerComments{
+            Method: "ClassifyFrameworkNodeList",
+            Router: `/classify/framework_node_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:MyChartController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers/data_manage:MyChartController"],
         beego.ControllerComments{
             Method: "ClassifyList",