fix: 优化初始化数据库操作
This commit is contained in:
parent
637e41248c
commit
014c21ad81
@ -110,6 +110,7 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
|||||||
flag = await SqlInsertTable(tableList[i], JSON.parse(data) || [])
|
flag = await SqlInsertTable(tableList[i], JSON.parse(data) || [])
|
||||||
}
|
}
|
||||||
if (!flag) {
|
if (!flag) {
|
||||||
|
dConsole.error(InitTableTag, "本地文件初始化数据库失败");
|
||||||
Prompt.showToast({
|
Prompt.showToast({
|
||||||
message: '本地文件初始化数据库失败'
|
message: '本地文件初始化数据库失败'
|
||||||
})
|
})
|
||||||
@ -129,45 +130,69 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
|||||||
host: params.host
|
host: params.host
|
||||||
}
|
}
|
||||||
const res: ResponseDataType = await initialization(str)
|
const res: ResponseDataType = await initialization(str)
|
||||||
console.log("解析完成")
|
|
||||||
if (!res || !res.head || res.head.resultCode === "1") {
|
if (!res || !res.head || res.head.resultCode === "1") {
|
||||||
resolve(false);
|
resolve(false);
|
||||||
}
|
}
|
||||||
if (res && res.body) {
|
if (res && res.body) {
|
||||||
for (const key of Object.keys(res.body)) {
|
|
||||||
// 后端传递的字段首字母小写了,需要转换下
|
|
||||||
let newKey = key.charAt(0).toUpperCase() + key.slice(1)
|
|
||||||
let isExit = CenterMap.has(newKey)
|
|
||||||
console.log(InitTableTag, "-------------------表名-----------------------", newKey, isExit)
|
|
||||||
if (isExit) {
|
|
||||||
console.log("可以插入的表", newKey, CenterMap.get(newKey))
|
|
||||||
let arrList: Array<RecordType> | RecordType = []
|
|
||||||
let value: PublicInfoType = Reflect.get(res.body, key)
|
|
||||||
if (value instanceof Array) {
|
|
||||||
arrList = value
|
|
||||||
} else {
|
|
||||||
arrList.push(value)
|
|
||||||
}
|
|
||||||
const folderPath = await fileUtil.initFolder(`/config/tableList`);
|
|
||||||
fileUtil.addFile(`${folderPath}/${RemappingTableName.get(newKey)}.txt`, JSON.stringify(arrList))
|
|
||||||
try {
|
try {
|
||||||
console.log(InitTableTag, "插入表操作", newKey)
|
const tableKeys = Object.keys(res.body);
|
||||||
console.log(InitTableTag, "插入表别名", RemappingTableName.get(newKey))
|
const initPromises = tableKeys.map(async (key) => {
|
||||||
console.log(InitTableTag, "插入表长度", arrList.length)
|
// 后端传递的字段首字母小写了,需要转换下
|
||||||
|
const newKey = key.charAt(0).toUpperCase() + key.slice(1);
|
||||||
|
const isExit = CenterMap.has(newKey);
|
||||||
|
|
||||||
|
dConsole.log(InitTableTag, "-------------------表名-----------------------", newKey, isExit);
|
||||||
|
|
||||||
|
if (!isExit) return false;
|
||||||
|
|
||||||
|
dConsole.log("可以插入的表", newKey, CenterMap.get(newKey));
|
||||||
|
|
||||||
|
let arrList: Array<RecordType> | RecordType = [];
|
||||||
|
const value: PublicInfoType = Reflect.get(res.body, key);
|
||||||
|
arrList = value instanceof Array ? value : [value];
|
||||||
|
|
||||||
|
const folderPath = await fileUtil.initFolder(`/config/tableList`);
|
||||||
|
await fileUtil.addFile(
|
||||||
|
`${folderPath}/${RemappingTableName.get(newKey)}.txt`,
|
||||||
|
JSON.stringify(arrList)
|
||||||
|
);
|
||||||
|
|
||||||
|
dConsole.log(InitTableTag, "插入表操作", newKey);
|
||||||
|
dConsole.log(InitTableTag, "插入表别名", RemappingTableName.get(newKey));
|
||||||
|
dConsole.log(InitTableTag, "插入表长度", arrList.length);
|
||||||
|
|
||||||
const result = await SqlInsertTable(RemappingTableName.get(newKey)!, arrList);
|
const result = await SqlInsertTable(RemappingTableName.get(newKey)!, arrList);
|
||||||
console.log(InitTableTag, "插入表结果,表", newKey, "结果", result)
|
dConsole.log(InitTableTag, "插入表结果,表", newKey, "结果", result);
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
Prompt.showToast({
|
Prompt.showToast({
|
||||||
message: '初始化数据库失败'
|
message: `初始化表 ${newKey} 失败`
|
||||||
})
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
dConsole.log(InitTableTag, "~~~~~~~~~~~~~~~~~~~~~~初始化成功~~~~~~~~~~~~~~~~~~~~~~", newKey);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
const results = await Promise.all(initPromises);
|
||||||
|
const allSuccess = results.every(Boolean);
|
||||||
|
|
||||||
|
if (allSuccess) {
|
||||||
|
resolve(true);
|
||||||
|
} else {
|
||||||
|
dConsole.error(InitTableTag, "部分表初始化失败", JSON.stringify(results));
|
||||||
|
Prompt.showToast({
|
||||||
|
message: '部分表初始化失败'
|
||||||
|
});
|
||||||
|
reject(new Error('部分表初始化失败'));
|
||||||
}
|
}
|
||||||
console.log(InitTableTag, "~~~~~~~~~~~~~~~~~~~~~~初始化成功~~~~~~~~~~~~~~~~~~~~~~", newKey)
|
|
||||||
resolve(result)
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
dConsole.error(InitTableTag, "初始化表失败", JSON.stringify(e))
|
dConsole.error(InitTableTag, "初始化表失败", JSON.stringify(e));
|
||||||
reject(e)
|
Prompt.showToast({
|
||||||
}
|
message: '初始化数据库失败'
|
||||||
}
|
});
|
||||||
|
reject(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user