Browse Source

feat: controller

lvkun 2 năm trước cách đây
mục cha
commit
3506601362

+ 59 - 2
src/api/schedule/dataSource.ts

@@ -1,12 +1,69 @@
 import request from '@/service/request'
 
 /**
- * API列表分页查询
+ * 查询数据源
  * */
 export function getDataSourcePage (params) {
-  return request({
+  return request<SCHEDULE.SOURCE.Detail[]>({
     url: '/dataSource/page',
     method: 'GET',
     params
   })
 }
+
+/**
+ * 新增数据源
+ * */
+export function addDataSource (data: SCHEDULE.SOURCE.Detail) {
+  return request({
+    url: '/dataSource',
+    method: 'POST',
+    data
+  })
+}
+
+/**
+ * 修改数据源
+ * */
+export function updateDataSource (data: SCHEDULE.SOURCE.Detail) {
+  return request({
+    url: '/dataSource',
+    method: 'POST',
+    data
+  })
+}
+
+export function getDataSourceById (id: string) {
+  return request<SCHEDULE.SOURCE.Detail>({
+    url: `/dataSource/${id}`,
+    method: 'GET'
+  })
+}
+
+/**
+ * 数据源连接参数 -连接测试 【用在新建还未保存】
+ * */
+export function dataSourceConnect (data: SCHEDULE.SOURCE.Detail) {
+  return request<Boolean>({
+    url: '/dataSource/connect',
+    method: 'POST',
+    data
+  })
+}
+
+/**
+ * 数据源连接参数 -连接测试 【用在新建还未保存】
+ * */
+export function dataSourceConnectTest (id: string) {
+  return request<Boolean>({
+    url: `/dataSource/${id}/connectTest`,
+    method: 'GET'
+  })
+}
+
+export function delDataSource (id: string) {
+  return request<Boolean>({
+    url: `/dataSource/${id}`,
+    method: 'DELETE'
+  })
+}

+ 24 - 7
src/controller/schedule/dataSource.ts

@@ -1,22 +1,39 @@
+import { addDataSource, dataSourceConnect, dataSourceConnectTest, delDataSource, getDataSourceById, getDataSourcePage, updateDataSource } from '@/api/schedule/dataSource'
+import { message } from 'ant-design-vue'
 
 export class DataSourceController {
-  static async dataSource () {
+  // static dataSourceTypeEnum =
 
+  static async page (params: COMMON.API.QueryParams & {label: string, dataSourceType: SCHEDULE.SOURCE.DataSourceType}) {
+    return await getDataSourcePage(params)
   }
 
-  static async addDataSource () {
-
+  static async add (data: SCHEDULE.SOURCE.Detail) {
+    await addDataSource(data)
+    message.success('新增成功')
   }
 
-  static async updateDataSource () {
-
+  static async update (data: SCHEDULE.SOURCE.Detail) {
+    await updateDataSource(data)
+    message.success('修改成功')
   }
 
-  static async delDataSource (id: string) {
+  static async del (id: string) {
+    await delDataSource(id)
+    message.success('删除成功')
+  }
 
+  static async byId (id: string) {
+    return getDataSourceById(id)
   }
 
-  static async dataSourceById () {
+  static async connect (data: SCHEDULE.SOURCE.Detail) {
+    await dataSourceConnect(data)
+    message.success('连接成功')
+  }
 
+  static async connectTest (id: string) {
+    await dataSourceConnectTest(id)
+    message.success('测试连接成功')
   }
 }

+ 15 - 0
src/enum/common.ts

@@ -66,3 +66,18 @@ export enum OtaStatusEnum {
   'TIMEOUT' = 'TIMEOUT',
   'FAILED' = 'FAILED',
 }
+
+// 数据源类型
+export enum DataSourceTypeEnum {
+  'MYSQL' = 'MYSQL',
+  'PGSQL' = 'PGSQL',
+  'DM' = 'DM',
+  'ORACLE' = 'ORACLE',
+  'DORIS' = 'DORIS'
+}
+
+// 数据源连接类型
+export enum DataSourceTConnectTypeEnum {
+  'ORACLE_SERVICE_NAME' = 'ORACLE_SERVICE_NAME',
+  'ORACLE_SID' = 'ORACLE_SID'
+}

+ 32 - 0
src/type/schedule.d.ts

@@ -43,4 +43,36 @@ declare namespace SCHEDULE {
       respParam: [],
     }
   }
+
+  namespace SOURCE {
+
+    type DataSourceType = 'MYSQL' | 'PGSQL' | 'DM' | 'ORACLE' | 'DORIS'
+
+    // 区别
+    // ORACLE 数据库增加一些参数
+    // connectType:”“ //连接类型 值有 ORACLE_SERVICE_NAME,ORACLE_SID
+
+    interface DataSourceConnectParam {
+      dataSourceType: DataSourceType // 数据源类型
+      username: string // 用户名
+      password: string // 密码
+      address: string // 连接地址
+      port: number // 端口int
+      database: string // 数据库
+      driverClassName: string // 驱动class 名称
+      validateQuery: string // 校验sql
+      minimumIdle: nunber
+      'maximumPoolSize': number,
+      'otherParameters': Record<string, string>[]
+      'connectType'?: 'ORACLE_SERVICE_NAM' | 'ORACLE_SID'
+    }
+
+    interface Detail {
+      'id'?: string // id
+      'label': string // 数据源名称,字符串,必须填写
+      'description': string // 描述, 字符串,必须填写
+      'dataSourceConnectParam': DataSourceConnectParam // 数据源连接参数,根据不同的数据源 连接参数可能不同
+      }
+
+  }
 }