package data_manage_permission import ( "eta/eta_api/models/data_manage/data_manage_permission" "eta/eta_api/utils" ) type MessageDetailItem struct { DataPermissionMoveRecordId int64 `json:"data_permission_move_record_id" orm:"column(data_permission_move_record_id);pk"` // 数据操作记录id Source int32 `json:"source"` // 数据来源,1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格 SubSource int32 `json:"sub_source"` // 子来源 :ETA表格中的各种表格类型,以及图表的来源(这个是后续的扩展方向) OpUniqueCode string `json:"op_unique_code"` // 操作的唯一编码,主要是记录统一操作的日志 DataId string `json:"data_id"` // 资产id(指标、图表、表格) DataCode string `json:"data_code"` // 资产code(指标、图表、表格) DataName string `json:"data_name"` // 资产名称(指标、图表、表格) OriginalUserId int32 `json:"original_user_id"` // 原创建人id OriginalUserName string `json:"original_user_name"` // 原创建人名称 NewUserId int32 `json:"new_user_id"` // 新创建人id NewUserName string `json:"new_user_name"` // 新创建人名称 CreateTime string `json:"create_time"` } // GetMoveEdbChartList 获取待转移的指标/图表列表 // @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格 func GetMessageDetail(messageInfo *data_manage_permission.DataPermissionMessage) (resp interface{}, err error) { switch messageInfo.OpType { // 操作类型,1:单个资产转移,2:资产模块转移,3:资产授权,4:资产分类授权 case 1, 2: list, tmpErr := data_manage_permission.GetListByOpUniqueCode(messageInfo.OpUniqueCode) if tmpErr != nil { err = tmpErr return } resp, err = formatMessageDetailItem(list) } return } func formatMessageDetailItem(items []*data_manage_permission.DataPermissionMoveRecord) (resp map[int32]map[int32][]*MessageDetailItem, err error) { resp = make(map[int32]map[int32][]*MessageDetailItem) for _, v := range items { // 大的渠道 tmpSourceResp, ok := resp[v.Source] if !ok { tmpSourceResp = make(map[int32][]*MessageDetailItem) } // 渠道下的不同类型 tmpSubSourceResp, ok2 := tmpSourceResp[v.SubSource] if !ok2 { tmpSubSourceResp = make([]*MessageDetailItem, 0) } tmpSourceResp[v.SubSource] = append(tmpSubSourceResp, &MessageDetailItem{ DataPermissionMoveRecordId: v.DataPermissionMoveRecordId, Source: v.Source, SubSource: v.SubSource, OpUniqueCode: v.OpUniqueCode, DataId: v.DataId, DataCode: v.DataCode, DataName: v.DataName, OriginalUserId: v.OriginalUserId, OriginalUserName: v.OriginalUserName, NewUserId: v.NewUserId, NewUserName: v.NewUserName, CreateTime: utils.TimeTransferString(utils.FormatDateTime, v.CreateTime), }) resp[v.Source] = tmpSourceResp } return }