w-vue-middle
Version:
统一公共服务组件
1,188 lines (1,119 loc) • 25.3 kB
JavaScript
/*
* @Author: Jason Liu
* @Date: 2022-05-27 14:52:48
* @Desc: 数据集成相关接口
*/
import axios from 'axios';
const CancelToken = axios.CancelToken;
const $axios = require('../axios').default;
export const monitorStatueList = [
{
label: $t('全部运行状态'),
value: '',
},
{
label: $t('运行中'),
value: 'RUNNING',
},
{
label: $t('运行成功'),
value: 'SUCCESS',
},
{
label: $t('异常运行中'),
value: 'WALKING',
},
{
label: $t('运行失败'),
value: 'FAILED',
},
{
label: $t('已取消'),
value: 'CANCELED',
},
{
label: $t('提交中'),
value: 'COMMITTING',
},
{
label: $t('启动中'),
value: 'STARTING',
},
];
/**
* @Author: Jason Liu
* @description:获取作业组列表-不分页
*/
export function getJobGroupList(
params = {
pageNum: 1,
pageSize: 1000,
queryParams: {
F_isDel_eq: 0,
},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroup/noPage/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description:获取作业组列表-分页
*/
export function getJobGroup(
params = {
pageNum: 1,
pageSize: 1000,
queryParams: {
F_isDel_eq: 0,
},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroup/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Xiao Xiao
* @description:保存作业组
*/
export function saveJobGroup(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroup/save`,
method: 'post',
data: params,
});
}
/**
* @Author: Xiao Xiao
* @description:删除作业组
*/
export function deleteJobGroup(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroup/delete/${params.id}`,
method: 'post',
});
}
/**
* @Author: y_zp
* @description:作业主题列表
*/
export function jobGroupThmem(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroupTheme/noPagelist`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description:作业主题-新增
*/
export function saveJobGroupThmem(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroupTheme/save`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description:作业主题-删除
*/
export function delJobGroupThmem(id) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroupTheme/delete/${id}`,
method: 'post',
});
}
/**
* @Author: y_zp
* @description:主题作业组树
*/
export function jobGroupThmemTree() {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJobGroupTheme/tree`,
method: 'post',
});
}
/**
* @Author: y_zp
* @description:作业设计导出
*/
export function jobExport(params = {}) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/jobExport`,
method: 'get',
params: params,
responseType: 'blob',
});
}
/* 元数据Begin */
/**
* @Author: Jason Liu
* @description: 获取数据源信息
*/
export function getDbsData() {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/dbs`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 获取数据源的schema信息
*/
export function getDbsSchema({ dbId }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/schema/${dbId}`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 获取获取数据源下的数据表
*/
export function getDataTableByDbs({ dbId, schemaCode }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/tables/${dbId}/${schemaCode}`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 获取数据表下的字段信息
*/
export function getDataColumnsByTableId({ tableId }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/columns/${tableId}`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 获取DWS和ADS下的表格信息
*/
export function getDwsAndAdsTables() {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/table/list`,
method: 'get',
}).then((req) => {
let getdbInfoLists = req.data.dbInfoList.map((item, i) => {
if (i == 1) {
return getDatasourceList({
queryParams: {
F_dbName_eq: item.dbName,
},
}).then((info) => {
let dbInfo = info.data.find((db) => {
return db.dbName == item.dbName;
});
req.data.dbInfoList[i] = {
...req.data.dbInfo,
...dbInfo,
};
return req;
});
} else {
return getDbsInfoBiDbName({ name: item.dbName }).then((info) => {
let dbInfo = info.data.find((db) => {
return db.dbName == item.dbName;
});
req.data.dbInfoList[i] = {
...req.data.dbInfo,
...dbInfo,
};
return req;
});
}
});
return Promise.all(getdbInfoLists).then(() => {
return req;
});
});
}
/**
* @Author: Jason Liu
* @description: 获取公卫下的表格信息
*/
export function getPhisTables() {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/phis/table/list`,
method: 'get',
}).then((req) => {
return getDatasourceList({
queryParams: {
F_dbName_like: req.data.dbInfo.dbName,
},
}).then((info) => {
let dbInfo = info.data.find((db) => {
return db.dbName == req.data.dbInfo.dbName;
});
req.data.dbInfo = {
...req.data.dbInfo,
...dbInfo,
};
return req;
});
});
}
/**
* @Author: Jason Liu
* @description: 根据dbname获取db信息
*/
export function getDbsInfoBiDbName({ name }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/dbs/${name}`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 获取元数据表下的字段信息
*/
export function getDbsInfoColumns({ dbName, schema, tableCode }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/${dbName}/${schema}/${tableCode}/columns`,
method: 'get',
});
}
/* 元数据End */
/* 作业 Begion */
/**
* @Author: Jason Liu
* @description: 获取作业列表
*/
export function getJobList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取作业列表
*/
export function getJobListPro(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 删除Job
*/
export function deleteJob({ id }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/delete/${id}`,
method: 'post',
});
}
/**
* @Author: Jason Liu
* @description: 保存job
*/
export function saveJob(
param = {
createBy: undefined,
createTime: undefined,
id: undefined,
isDel: 0,
isEnable: 0,
jobDesc: undefined,
jobGroupId: 0,
jobName: undefined,
jsonDetail: undefined,
remark: undefined,
updateBy: undefined,
updateTime: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/save`,
method: 'post',
data: param,
});
}
/**
* @Author: Jason Liu
* @description: 获取sql转换路径
*/
export function getSqlParser(
param = {
createBy: undefined,
createTime: undefined,
id: undefined,
isDel: 0,
isEnable: 0,
jobDesc: undefined,
jobGroupId: 0,
jobName: undefined,
jsonDetail: undefined,
remark: undefined,
updateBy: undefined,
updateTime: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/SqlParser/SqlParser`,
method: 'post',
data: param,
});
}
/**
* @Author: Jason Liu
* @description: 获取job的详情
*/
export function getJobDetail({ id }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/get/${id}`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 启动测试流程
*/
export function runJobTest(param) {
return $axios({
url: `${$service.dataIntegration}/api/v1/jobExecution/testJob`,
method: 'post',
data: param,
});
}
/**
* @Author: Jason Liu
* @description: 获取启动状态job情况
*/
export function getJobTestResult({ testId }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/jobExecution/testJobResult/${testId}`,
method: 'get',
});
}
/**
* @Author: Jason Liu
* @description: 获取监控信息
*/
export function getMonitorInfo() {
return $axios({
url: `${$service.dataIntegration}/api/v1/monitor/info`,
method: 'get',
});
}
// var run = () => {
// return new Promise((resolve, reject) => {
// resolve(123)
// }).then(code => {
// console.log(code);
// setTimeout(() => {
// run();
// }, 1000);
// });
// }
/* 作业 End */
/**
* @Author: Jason Liu
* @description: 获取集群信息
*/
export function getClusterManager(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiClusterManager/list`,
method: 'post',
headers: { weak: true },
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 删除集群
*/
export function deleteClusterManager({ clusterId }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiClusterManager/delete/${clusterId}`,
method: 'post',
});
}
/**
* @Author: Jason Liu
* @description: 保存集群信息
*/
export function saveClusterManager(
params = {
clusterId: undefined,
description: undefined,
name: undefined,
restAddress: undefined,
restPort: 80,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiClusterManager/save`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取sql转换路径
*/
export function getSqlData(
param = {
createBy: undefined,
createTime: undefined,
id: undefined,
isDel: 0,
isEnable: 0,
jobDesc: undefined,
jobGroupId: 0,
jobName: undefined,
jsonDetail: undefined,
remark: undefined,
updateBy: undefined,
updateTime: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/SqlParser/generateSQL`,
method: 'post',
data: param,
});
}
/**
* @Author: Jason Liu
* @description: 获取数据源列表
*/
export function getDatasourceList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiDatasource/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取数据源列表
*/
export function getNewDatasourceList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
entrust = { cancel: undefined },
) {
return $axios({
url: `${$service.portalService}/dfDiDatasource/list`,
method: 'post',
cancelToken: new CancelToken(function executor(c) {
// 将取消函数赋值给全局变量
entrust.cancel = c;
}),
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 采集内容数据
*/
export function collectionDataInfo(
params = {
clusterId: undefined, //集群ID
collectType: 'schema', // 采集类型:schema、table、column
dsId: undefined,
schema: undefined,
tableName: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/realtime/job`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 保存数据源
*/
export function saveDatasource(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiDatasource/save`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 删除数据源
*/
export function deleteDatasource(ids) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiDatasource/delete/${ids}`,
method: 'post',
});
}
/**
* @Author: y_zp
* @description:调度概览-获取标签列表
*/
export function getLabelList() {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/label-list`,
method: 'get',
});
}
/**
* @Author: y_zp
* @description:调度概览-获取集群列表
*/
export function getClusterList() {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/cluster-list`,
method: 'get',
});
}
/**
* @Author: y_zp
* @description: 近7日作业实例调度情况概览-chart
*/
export function getJobGeneral(
params = {
clusterIds: undefined, //集群
sliceNum: 5,
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/task-general-chart`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 近7日作业实例调度情况概览-text
*/
export function getJobDegree(
params = {
clusterIds: undefined, //集群
nodeIds: undefined, //nodeIds
sliceNum: 5,
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/task-general-text`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 近30天作业实例执行时长TOP10
*/
export function getElapsedList(
params = {
startTime: undefined, //开始时间
runtimeMode: undefined,
endTime: undefined, //结束时间
clusterIds: undefined, //集群
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/elapsed-time-desc-list`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 实时监控(输入输出数量)
*/
export function getIoCount(
params = {
clusterIds: undefined, //集群
nodeIds: undefined, //nodeIds
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/io-count-chart`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 作业吞吐量列表
*/
export function getIoCps(
params = {
clusterIds: undefined, //集群
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/io-cps-list`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 批监控实例列表
*/
export function getTaskList(
params = {
pageNum: 1,
pageSize: 15,
keyWord: undefined,
clusterIds: undefined,
finishMode: undefined,
runtimeMode: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/task-list`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 监控列表-运行状态级联
*/
export function taskStateGroup() {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/taskStateGroup`,
method: 'get',
});
}
/**
* @Author: y_zp
* @description: 实例列表日志
*/
export function getTaskLog(taskId) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/task-log/${taskId}`,
method: 'get',
});
}
/**
* @Author: y_zp
* @description: 节点状态
*/
export function getNodesInf(nodeId) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/nodes-inf/${nodeId}`,
method: 'get',
});
}
/**
* @Author: y_zp
* @description: 节点对应关系
*/
export function getNodeStep(id) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/node-step/${id}`,
method: 'get',
});
}
/**
* @Author: y_zp
* @description: 获取监控页面内作业和转换树结构
*/
export function getTaskTree(taskId, params = {}) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric/task-tree/${taskId}`,
method: 'get',
params: params,
});
}
/**
* @Author: y_zp
* @description: 获取消息源列表
*/
export function getMessagesourceList(
params = {
pageNum: 1,
pageSize: 15,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiMessagesource/list`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 保存消息源
*/
export function saveMessagesource(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiMessagesource/save`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 删除消息源
*/
export function deleteMessagesource(ids) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiMessagesource/delete/${ids}`,
method: 'post',
});
}
/**
* @Author: Jason Liu
* @description:获取变量列表
*/
export function getVariableList(
params = {
pageNum: 1,
pageSize: 1000,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiVariable/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description:保存变量
*/
export function savrVariable(
params = {
id: undefined,
isDel: 0,
isEnable: 0,
remark: undefined,
variableBelong: undefined,
variableCode: undefined,
variableDesc: undefined,
variableLevel: undefined,
variableScope: undefined,
variableValue: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiVariable/save`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description:获取变量列表
*/
export function deleteVariable(
params = {
id: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiVariable/delete/${params.id}`,
method: 'post',
});
}
//sql函数缓存变量
let sqlFunctonList = [];
/**
* @Author: Jason Liu
* @description:获取sql函数
*/
export function getSQlFunctonList() {
if (sqlFunctonList.length > 0) {
return new Promise((resolve, reject) => {
resolve({
data: sqlFunctonList,
});
});
} else {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiSys/listGroup`,
method: 'post',
}).then((req) => {
sqlFunctonList = req.data;
return req;
});
}
}
/**
* @Author: y_zp
* @description: 监控列表-》监控详情chart
*/
export function getRuntimeData(
params = {
taskId: undefined,
stepId: undefined,
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric2/runtime/data`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 监控列表-》监控详情吞吐
*/
export function getRuntimeIoCount(
params = {
taskId: undefined,
stepId: undefined,
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric2/runtime/ioCount`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 调度概览-》集成实时数据
*/
export function getRuntimeTotal(
params = {
clusterId: undefined,
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric2/runtime/data/total`,
method: 'post',
data: params,
});
}
/**
* @Author: y_zp
* @description: 调度概览-》集成实时数据-吞吐量
*/
export function getRuntimeIoCountTotal(
params = {
clusterId: undefined,
startTime: undefined, //开始时间
endTime: undefined, //结束时间
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/metric2/runtime/ioCount/total`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description:获取报错知识信息
*/
export function getPagedSolutions(
params = {
pageNum: 1,
pageSize: 1000,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/solution/pagedSolutions`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description:保存kafka调试静态消息
*/
export function saveKafkaDebugContent(
params = {
content: undefined,
id: undefined,
jobId: undefined,
jobType: undefined,
jsonDetail: undefined,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/messagecontent/saveContent`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取kafka静态调试消息
*/
export function getKafkaDebugContent(params = { jobId: undefined }) {
return $axios({
url: `${$service.dataIntegration}/api/v1/messagecontent/getMessageContent`,
method: 'get',
params: params,
});
}
/**
* @Author: Jason Liu
* @description:获取V3模版列表
*/
export function getV3TemplateList(
params = {
pageNum: 1,
pageSize: 1000,
queryParams: {},
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/v3Template/list`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 导入作业-加载excel内容
*/
export function jobLoadExcel(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/loadExcel`,
method: 'post',
headers: {
'Content-type': 'multipart/form-data',
},
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 导入作业-加载excel内容,并查询已经存在的相关作业信息
*/
export function jobPreviewExcelData(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/previewExcelData`,
method: 'post',
headers: {
'Content-type': 'multipart/form-data',
},
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 作业对比升级保存
*/
export function upgradeSave(params) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfUpgrade/upgradeSave`,
method: 'post',
headers: {
'Content-type': 'multipart/form-data',
},
data: params,
});
}
/**
* @Author: y_zp
* @description: 作业设计-导入-执行器类型
*/
export function getScheduleJobExecutorList(params = {}) {
return $axios({
url: `${$service.dataIntegration}/api/v1/dfDiJob/getScheduleJobExecutorList`,
method: 'get',
params: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取导入内容表
*/
export function getModelSqlScript(
params = {
clusterId: undefined, //集群ID
tableName: undefined,
dsId: undefined,
schema: undefined,
useCache: true,
},
) {
return $axios({
url: `${$service.dataIntegration}/api/v1/MetaData/realtime/getSqlScript`,
method: 'post',
data: params,
});
}
/**
* @Author: Jason Liu
* @description: 获取数据源列信息事件
*/
export function getSourceColumns(
nodeData = {
tableCode: undefined,
sourceType: 1, //集群ID
clusterId: undefined,
dbId: undefined,
schemaId: undefined,
},
useCache = true,
) {
let $event = collectionDataInfo;
let param = {
clusterId: nodeData.clusterId, //集群ID
collectType: 'column', // 采集类型:schema、table、column
dsId: nodeData.dbId,
schema: nodeData.schemaId,
tableName: nodeData.tableCode,
useCache: useCache,
};
if (nodeData.sourceType == 0) {
$event = getDbsInfoColumns;
param = nodeData;
}
this.columnLoading = true;
return $event(param);
}