Browse Source

详情返回引用对象名称

xyxie 8 tháng trước cách đây
mục cha
commit
3b6b5c65a6

+ 70 - 0
controllers/data_manage/edb_info_relation.go

@@ -4,8 +4,11 @@ import (
 	"eta/eta_api/controllers"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/fe_calendar"
+	"eta/eta_api/models/sandbox"
 	"eta/eta_api/services/data"
 	"eta/eta_api/utils"
+	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
@@ -125,7 +128,73 @@ func (c *EdbInfoRelationController) RelationEdbListDetail() {
 	}
 
 	list := make([]*data_manage.EdbInfoRelationDetail, 0)
+
+	// 查询逻辑图
+	sandboxIds := make([]int, 0)
+	// 查询图库
+	chartInfoIds := make([]int, 0)
+	// 查询表格
+	tableInfoIds := make([]int, 0)
+	// 查询事件日历
+	eventInfoIds := make([]int, 0)
+
+	for _, v := range relationList {
+		switch v.ReferObjectType {
+		case utils.EDB_RELATION_SANDBOX:
+			sandboxIds = append(sandboxIds, v.ReferObjectId)
+		case utils.EDB_RELATION_CALENDAR:
+			eventInfoIds = append(eventInfoIds, v.ReferObjectId)
+		case utils.EDB_RELATION_CHART:
+			chartInfoIds = append(chartInfoIds, v.ReferObjectId)
+		case utils.EDB_RELATION_TABLE:
+			tableInfoIds = append(tableInfoIds, v.ReferObjectId)
+		}
+	}
+	objectNameMap := make(map[int]string)
+	if len(sandboxIds) > 0 {
+		sandboxList, err := sandbox.GetSandboxNameByIds(sandboxIds)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+		for _, v := range sandboxList {
+			objectNameMap[v.SandboxId] = v.Name
+		}
+	}
+
+	// 查询事件日历
+	if len(eventInfoIds) > 0 {
+		matterOb := new(fe_calendar.FeCalendarMatter)
+		cond := " AND fe_calendar_matter_id in (" + utils.GetOrmInReplace(len(eventInfoIds)) + ")"
+		pars := make([]interface{}, 0)
+		pars = append(pars, eventInfoIds)
+		eventList, err := matterOb.GetItemsByCondition(cond, pars, []string{}, "")
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取事件日历数据失败,Err:" + err.Error()
+			return
+		}
+		for _, v := range eventList {
+			objectNameMap[v.FeCalendarMatterId] = fmt.Sprintf("%s, %s", v.MatterDate, v.ChartPermissionName)
+		}
+	}
+
+	// 查询图表
+	if len(chartInfoIds) > 0 {
+		chartList, err := data_manage.GetChartInfoByIdList(chartInfoIds)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取图表数据失败,Err:" + err.Error()
+			return
+		}
+		for _, v := range chartList {
+			objectNameMap[v.ChartInfoId] = v.ChartName
+		}
+	}
+
 	for _, v := range relationList {
+		referObjectName, _ := objectNameMap[v.ReferObjectId]
 		tmp := &data_manage.EdbInfoRelationDetail{
 			EdbInfoRelationId:  v.EdbInfoRelationId,
 			EdbInfoId:          v.EdbInfoId,
@@ -133,6 +202,7 @@ func (c *EdbInfoRelationController) RelationEdbListDetail() {
 			ReferObjectType:    v.ReferObjectType,
 			ReferObjectSubType: v.ReferObjectSubType,
 			RelationTime:       v.RelationTime.Format(utils.FormatDateTime),
+			ReferObjectName:    referObjectName,
 		}
 		switch v.ReferObjectType {
 		case utils.EDB_RELATION_SANDBOX:

+ 2 - 1
models/data_manage/edb_info_relation.go

@@ -253,6 +253,7 @@ type EdbInfoRelationDetail struct {
 	ReferObjectType     int    `description:"引用对象ID类型(1.图表,2.ETA逻辑)"`
 	ReferObjectSubType  int    `description:"引用对象子类"`
 	RelationTime        string `description:"引用时间"`
+	ReferObjectName     string `description:"引用对象名称"`
 }
 type BaseRelationEdbInfoDetailResp struct {
 	Paging *paging.PagingItem
@@ -303,7 +304,7 @@ func GetEdbInfoRelationDetailList(edbInfoId int, startSize, pageSize int) (total
 	}
 
 	// 列表数据
-	sql := ` SELECT *FROM edb_info_relation where edb_info_id=? ORDER BY relation_time, edb_info_id ASC `
+	sql := ` SELECT *FROM edb_info_relation where edb_info_id=? ORDER BY relation_time desc, edb_info_id ASC `
 	sql += `  LIMIT ?,? `
 	_, err = o.Raw(sql, edbInfoId, startSize, pageSize).QueryRows(&items)
 

+ 8 - 0
models/sandbox/sandbox.go

@@ -374,6 +374,14 @@ func GetSandboxByClassifyIdAndName(classifyId int, name string) (item *Sandbox,
 	return
 }
 
+// GetSandboxNameByIds 根据沙盘名称
+func GetSandboxNameByIds(ids []int) (items []*Sandbox, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT sandbox_id, name FROM sandbox WHERE sandbox_id in (` + utils.GetOrmInReplace(len(ids)) + `) `
+	_, err = o.Raw(sql, ids).QueryRows(&items)
+	return
+}
+
 func MoveSandbox(sandboxId, classifyId int) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ` UPDATE  sandbox