🎨 根据实际情况修改

This commit is contained in:
BTMuli
2023-05-31 21:26:14 +08:00
parent 12257bda66
commit 8fbac6112d
4 changed files with 128 additions and 4 deletions

View File

@@ -0,0 +1,72 @@
/**
* @file plugins Sqlite utils transCharacter.ts
* @description Sqlite 数据转换
* @author BTMuli <bt-muli@outlook.com>
* @since Alpha v0.2.0
*/
import { timeToSecond } from "./transTime";
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.CharacterData[]} data 深渊数据
* @returns {string} 转换后的深渊数据
*/
export function transCharacterData (data: TGApp.Game.Abyss.CharacterData[]): string {
const res = data.map((item) => {
return {
id: item.avatar_id,
value: item.value,
star: item.rarity,
};
}) as TGApp.Sqlite.Abyss.Character[];
console.log(JSON.stringify(res));
return JSON.stringify(res);
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.Floor} data 深渊数据
* @returns {string} 转换后的深渊数据
*/
export function transFloorData (data: TGApp.Game.Abyss.Floor[]): string {
const floor = data.map((item) => {
return {
id: item.index,
winStar: item.star,
maxStar: item.max_star,
isUnlock: item.is_unlock ? 1 : 0,
levels: item.levels.map((level) => {
return {
id: level.index,
winStar: level.star,
maxStar: level.max_star,
upBattle: transBattleData(level.battles.find((l) => l.index === 1) as TGApp.Game.Abyss.Battle),
downBattle: transBattleData(level.battles.find((l) => l.index === 2) as TGApp.Game.Abyss.Battle),
};
}),
};
}) as TGApp.Sqlite.Abyss.Floor[];
return JSON.stringify(floor);
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.Battle} data 深渊数据
* @returns {TGApp.Sqlite.Abyss.Battle} 转换后的深渊数据
*/
function transBattleData (data: TGApp.Game.Abyss.Battle): TGApp.Sqlite.Abyss.Battle {
return {
time: timeToSecond(data.timestamp),
characters: data.avatars.map((item) => {
return {
id: item.id,
level: item.level,
star: item.rarity,
};
}),
};
}

View File

@@ -0,0 +1,23 @@
/**
* @file plugins Sqlite utils transTime.ts
* @description Sqlite 时间转换工具类
* @author BTMuli <bt-muli@outlook.com>
* @since Alpha v0.2.0
*/
/**
* @description 将时间戳转换为时间字符串
* @since Alpha v0.2.0
* @param {string} timestamp 时间戳 (秒)
* @returns {string} 时间字符串,格式为 YYYY-MM-DD HH:mm:ss
*/
export function timeToSecond (timestamp: string): string {
const date = new Date(Number(timestamp) * 1000);
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const hour = String(date.getHours()).padStart(2, "0");
const minute = String(date.getMinutes()).padStart(2, "0");
const second = String(date.getSeconds()).padStart(2, "0");
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}