🎨 fix(db): 改进代码结构

This commit is contained in:
BTMuli
2023-04-25 16:08:35 +08:00
parent cc42d1fcb3
commit 35d9382643
13 changed files with 135 additions and 611 deletions

View File

@@ -33,12 +33,6 @@ import TBackTop from "./components/t-backTop.vue";
import { fs, window, app, event } from "@tauri-apps/api";
// store
import { useAppStore } from "./store/modules/app";
import { useAchievementsStore } from "./store/modules/achievements";
// utils
import { getBuildTime } from "./utils/TGBuild";
// data
import { restoreUiafData } from "./utils/UIAF";
import TGSqlite from "./core/database/TGSqlite";
const appStore = useAppStore();
const isMain = ref(true as boolean);
@@ -70,22 +64,11 @@ async function listenOnTheme () {
}
async function checkLoad () {
const localBuildTime = appStore.buildTime;
const buildTime = getBuildTime();
if (!buildTime.startsWith("dev")) {
if (localBuildTime.startsWith("dev") || localBuildTime < buildTime) {
appStore.buildTime = buildTime;
console.info("数据已过期,开始加载数据...");
appStore.loading = false;
}
}
if (appStore.loading) {
console.info("数据已加载!");
return;
}
await createDataDir();
await writeDB();
await writeData();
appStore.loading = true;
console.info("数据加载完成!");
}
@@ -97,33 +80,6 @@ async function createDataDir () {
if (!await fs.exists("tempData", { dir: fs.BaseDirectory.AppLocalData })) { await fs.createDir("tempData", { dir: fs.BaseDirectory.AppLocalData, recursive: true }); }
console.info("数据文件夹创建完成!");
}
// 写入 IndexedDB
async function writeDB () {
const res = await TGSqlite.checkDB();
if (!res) {
console.info("检测到数据库不完整,正在重置数据库...");
await TGSqlite.resetDB();
} else {
console.info("正在更新成就系列数据...");
await TGSqlite.update.achievementSeries();
console.info("正在更新成就数据...");
await TGSqlite.update.achievement();
}
}
// 恢复数据
async function writeData () {
console.info("开始恢复数据...");
const res = await restoreUiafData();
if (res !== false) {
const { total, fin } = res;
console.info("开始恢复成就数据...");
const achievementsStore = useAchievementsStore();
achievementsStore.flushData(total, fin);
console.info("成就数据恢复完成!");
} else {
console.info("未找到成就数据!");
}
}
</script>
<style lang="css">
.app-main {