Files
fe.ems.vue3/src/api/faultManage/faultSetting.ts
2025-01-15 21:07:17 +08:00

198 lines
5.1 KiB
TypeScript

import {
RESULT_CODE_ERROR,
RESULT_CODE_SUCCESS,
RESULT_MSG_ERROR,
RESULT_MSG_SUCCESS,
} from '@/constants/result-constants';
import { language, request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询告警设置
* @param tag 配置ID
* @returns object
*/
export async function getAlarmSet() {
let arr = [];
// 历史告警保存时间
const logDurationResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'historyDuration'`,
},
});
arr.push(logDurationResult);
// 同步设置
const logCapacityResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'syncTaskPeriod'`,
},
});
arr.push(logCapacityResult);
// 发起请求
const result = await Promise.allSettled(arr).then(resArr => {
let resultData: any = {};
for (const item of resArr) {
if (item.status === 'rejected') {
continue;
}
const itemV = item.value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data.data)
) {
let itemData = itemV.data.data[0];
const v = parseObjLineToHump(itemData['config'][0]);
let vJSON: any = {};
if (v.configTag == 'syncTaskPeriod') {
try {
vJSON = JSON.parse(v.valueJson);
} catch (error) {
console.error(error);
}
resultData = { ...resultData, ...vJSON };
} else {
resultData[v.configTag] = parseInt(v.value);
}
}
}
if (Object.keys(resultData).length === 0) {
return {
code: RESULT_CODE_ERROR,
msg: RESULT_MSG_ERROR[language],
data: {},
};
}
return {
code: RESULT_CODE_SUCCESS,
msg: RESULT_MSG_SUCCESS,
data: resultData,
};
});
return result;
}
/**
* 修改告警设置
* @param data 配置对象
* @returns object
*/
export async function updateAlarmSet(data: Record<string, any>) {
let { historyDuration, ...syncTaskPeriodJson } = data;
let arr = [];
// 历史告警保存时间
const historyDurationResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='historyDuration'`,
method: 'put',
data: { data: { value: data.historyDuration.toString() } },
});
arr.push(historyDurationResult);
// 同步设置
const syncTaskPeriodResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='syncTaskPeriod'`,
method: 'put',
data: { data: { value_json: JSON.stringify(syncTaskPeriodJson) } },
});
arr.push(syncTaskPeriodResult);
// 发起请求
const result = await Promise.allSettled(arr).then(resArr => {
let resultNum = 0;
for (const item of resArr) {
if (item.status === 'rejected') {
continue;
}
const itemV = item.value;
// 解析数据
let itemData = itemV.data.data;
if (itemV.code === RESULT_CODE_SUCCESS && itemData) {
let rows = itemData.affectedRows;
if (rows) {
resultNum += rows;
}
}
}
// 无变更时
if (resultNum === 0) {
return {
code: RESULT_CODE_ERROR,
msg: RESULT_MSG_ERROR[language],
data: 0,
};
}
return {
code: RESULT_CODE_SUCCESS,
msg: RESULT_MSG_SUCCESS,
data: resultNum,
};
});
return result;
}
/**
* 查询告警前转接口设置
* @param tag 配置ID
* @returns object
*/
export async function getForwardSet() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'forwardAlarm'`,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let data = result.data.data[0];
const v = parseObjLineToHump(data['config'][0]);
let vJSON: any = {};
try {
vJSON = JSON.parse(v.valueJson);
} catch (error) {
console.error(error);
}
return Object.assign(result, {
data: vJSON,
});
}
return result;
}
/**
* 修改告警前转接口配置
* @param data 配置对象
* @returns object
*/
export async function updateForwardSet(data: Record<string, any>) {
// return false;
let obj: any = [
{ interface: 'Email', to_user: data.emailObj },
{ interface: 'SMS', to_user: data.smsObj },
];
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='forwardAlarm'`,
method: 'put',
data: { data: { value_json: JSON.stringify(obj) } },
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
let rows = result.data.data.affectedRows;
if (rows) {
delete result.data;
return result;
} else {
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
}
return result;
}