import request from '@/config/axios'
|
|
export interface IGetTaskInfoReq {
|
id?: string
|
name?: string
|
}
|
|
export interface ITaskInfoInsertReq {
|
[key: string]: any
|
}
|
|
export interface ISchedulerOption {
|
interval: number
|
unit: string
|
}
|
|
export interface ISource {
|
type: string
|
query: string
|
tables: string
|
datasourceId: string
|
tableExtract: string
|
dsTableList?: IDsTable[]
|
dsList?: []
|
fieldList?: ITableField[]
|
targetFieldTypeList?: string[]
|
incrementCheckbox?: string
|
incrementField?: string
|
esQuery?: string
|
}
|
|
export interface ITableField {
|
id: string
|
fieldSource: string
|
fieldName: string
|
fieldType: string
|
remarks: string
|
fieldSize: number
|
fieldPrecision: number
|
fieldPk: boolean
|
fieldIndex: boolean
|
}
|
|
export interface ITargetProperty {
|
/**
|
* 启用分区on
|
*/
|
partitionEnable: string
|
/**
|
* 分区类型
|
* DateRange 日期
|
* NumberRange 数值
|
* List 列
|
*/
|
partitionType: string
|
/**
|
* 启用动态分区on
|
*/
|
dynamicPartitionEnable: string
|
/**
|
* 动态分区结束偏移量
|
*/
|
dynamicPartitionEnd: number
|
/**
|
* 动态分区间隔单位
|
* HOUR WEEK DAY MONTH YEAR
|
*/
|
dynamicPartitionTimeUnit: string
|
/**
|
* 手动分区列值
|
* 多个以','隔开
|
*/
|
manualPartitionColumnValue: string
|
/**
|
* 手动分区数值区间开始值
|
*/
|
manualPartitionStart: number
|
/**
|
* 手动分区数值区间结束值
|
*/
|
manualPartitionEnd: number
|
/**
|
* 手动分区数值区间间隔
|
*/
|
manualPartitionInterval: number
|
/**
|
* 手动分区日期区间
|
* 2023-09-08 - 2023-09-15
|
*/
|
manualPartitionTimeRange: string
|
/**
|
* 手动分区日期区间间隔单位
|
*/
|
manualPartitionTimeUnit: string
|
/**
|
* 分区字段
|
*/
|
partitionColumn: string
|
}
|
|
export interface ITarget {
|
createTable?: string
|
type: string
|
fieldList: ITableField[]
|
tableName: string
|
datasourceId: string
|
targetProperty: string
|
dsList?: []
|
multipleSelection?: ITableField[]
|
property: ITargetProperty
|
incrementSync: string
|
incrementField: string
|
incrementFieldType: string
|
remarks: string
|
faultToleranceRate: number
|
incrementOffset: number
|
incrementOffsetUnit: string
|
}
|
|
export class ITaskInfoRes {
|
id: string
|
|
name: string
|
|
schedulerType: string
|
|
schedulerConf: string
|
|
schedulerOption: ISchedulerOption
|
|
taskKey: string
|
|
desc: string
|
|
executorTimeout: number
|
|
executorFailRetryCount: number
|
|
source: ISource
|
|
target: ITarget
|
|
status: string
|
startTime: string
|
stopTime: string
|
|
constructor(
|
id: string,
|
name: string,
|
schedulerType: string,
|
schedulerConf: string,
|
taskKey: string,
|
desc: string,
|
executorTimeout: number,
|
executorFailRetryCount: number,
|
source: ISource,
|
target: ITarget,
|
status: string,
|
startTime: string,
|
stopTime: string,
|
schedulerOption: ISchedulerOption
|
) {
|
this.id = id
|
this.name = name
|
this.schedulerType = schedulerType
|
this.schedulerConf = schedulerConf
|
this.taskKey = taskKey
|
this.desc = desc
|
this.executorTimeout = executorTimeout
|
this.executorFailRetryCount = executorFailRetryCount
|
this.source = source
|
this.target = target
|
this.status = status
|
this.startTime = startTime
|
this.stopTime = stopTime
|
this.schedulerOption = schedulerOption
|
}
|
}
|
|
export interface ITaskInfoUpdateReq {
|
[key: string]: any
|
}
|
|
export interface IDsTable {
|
datasourceId: string
|
name: string
|
remark: string
|
enableCheck: string
|
datasetPath: string
|
}
|
|
export const getDatasourceListByTypeApi = (type: string) => {
|
return request.get({ url: `/sync/datasource/list/${type}` })
|
}
|
export const getTaskInfoListApi = (current: number, size: number, data) => {
|
return request.post({ url: `/sync/task/pager/${current}/${size}`, data: data })
|
}
|
|
export const executeOneApi = (id: string) => {
|
return request.get({ url: `/sync/task/execute/${id}` })
|
}
|
|
export const startTaskApi = (id: string) => {
|
return request.get({ url: `/sync/task/start/${id}` })
|
}
|
|
export const stopTaskApi = (id: string) => {
|
return request.get({ url: `/sync/task/stop/${id}` })
|
}
|
|
export const addApi = (data: ITaskInfoInsertReq) => {
|
return request.post({ url: `/sync/task/add`, data: data })
|
}
|
|
export const removeApi = (taskId: string) => {
|
return request.post({ url: `/sync/task/remove/${taskId}` })
|
}
|
|
export const batchRemoveApi = (taskIds: string[]) => {
|
return request.post({ url: `/sync/task/batch/del`, data: taskIds })
|
}
|
|
export const modifyApi = (data: ITaskInfoUpdateReq) => {
|
return request.post({ url: `/sync/task/update`, data: data })
|
}
|
|
export const findTaskInfoByIdApi = (taskId: string) => {
|
return request.get({ url: `/sync/task/get/${taskId}` })
|
}
|
|
export const getDatasourceTableListApi = (dsId: string) => {
|
return request.get({ url: `/sync/datasource/table/list/${dsId}` })
|
}
|