🎨 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

@@ -27,6 +27,7 @@ const TGSql = {
achievement: insertAchievementData,
achievementSeries: insertAchievementSeriesData,
bbsPost: insertBBSPostData,
UIAF: importUIAFData,
},
update: {
achievement: updateAchievementData,
@@ -151,7 +152,7 @@ function initBbsPostTable (): string[] {
created TEXT DEFAULT NULL,
modified TEXT DEFAULT NULL,
isRead BOOLEAN DEFAULT 0,
updated TEXT DEFAULT NULL,
updated TEXT DEFAULT NULL
);
`);
return sqlRes;
@@ -347,4 +348,35 @@ function updateBBSPostData (data: BTMuli.SQLite.BBSPost, isRead: boolean = false
return sql;
}
/**
* @description 导入UIAF数据
* @since Alpha v0.1.4
* @param {TGPlugin.UIAF.Achievement[]} data
* @returns {string[]} sql
*/
function importUIAFData (data: TGPlugin.UIAF.Achievement[]): string[] {
const sqlRes: string[] = [];
data.map((achievement) => {
let sql;
// 获取完成状态
const isCompleted = achievement.status === 2 || achievement.status === 3;
if (isCompleted) {
const completedTime = new Date(achievement.timestamp * 1000).toISOString().replace("T", " ").replace("Z", "");
sql = `
UPDATE Achievements
SET isCompleted = 1, completedTime = '${completedTime}', progress = ${achievement.current}, updated = datetime('now', 'localtime')
WHERE id = ${achievement.id} AND (isCompleted = 0 OR completedTime != '${completedTime}' OR progress != ${achievement.current});
`;
} else {
sql = `
UPDATE Achievements
SET progress = ${achievement.current}, updated = datetime('now', 'localtime')
WHERE id = ${achievement.id} AND progress != ${achievement.current};
`;
}
return sqlRes.push(sql);
});
return sqlRes;
}
export default TGSql;