From 1fa5eb7cb0fa68bd5b5293fee500b027a58e6e5a Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Thu, 18 Sep 2025 09:37:48 +0800 Subject: [PATCH] =?UTF-8?q?VIP=E5=A4=B1=E6=95=88=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/Main/Common/Utils.ts | 28 ++++++++++--------- assets/Scripts/chat18x/data/WalletData.ts | 2 +- .../chat18x/manager/ChatHistoryManager.ts | 4 +-- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/assets/Scripts/Main/Common/Utils.ts b/assets/Scripts/Main/Common/Utils.ts index c69b2fa8..e78e00dc 100644 --- a/assets/Scripts/Main/Common/Utils.ts +++ b/assets/Scripts/Main/Common/Utils.ts @@ -359,19 +359,21 @@ export default class Utils { // 获取格式化字符串: vip失效时间 public static formatVipLeftTime(expiryTimestamp: number): string { - const dateNow = new Date(); - const timeDiff = Math.abs(expiryTimestamp - dateNow.getTime()); - const hours = Math.floor(timeDiff / (1000 * 60 * 60)); - - if (hours >= 24) { - return ( - (hours % 24).toString() + LanguageUtils.getText("purchasepanel.day") - ); + // 当前时间戳,单位:秒 + const nowSeconds = Math.floor(Date.now() / 1000); + // 差值(秒) + const diffSeconds = Math.max(0, expiryTimestamp - nowSeconds); + // 转换为天、小时、分钟 + const days = Math.floor(diffSeconds / (60 * 60 * 24)); + const hours = Math.floor((diffSeconds % (60 * 60 * 24)) / 3600); + const minutes = Math.floor((diffSeconds % 3600) / 60); + console.log("vip失效剩余时间差(秒):", diffSeconds, "天:", days, "小时:", hours, "分钟:", minutes); + if (days > 0) { + return `${days}${LanguageUtils.getText("purchasepanel.day")}`; } - const minutes = Math.floor((timeDiff / (1000 * 60)) % 60); - //const seconds = Math.floor((timeDiff / 1000) % 60); - return `${hours}${LanguageUtils.getText( - "purchasepanel.hour" - )}:${minutes}${LanguageUtils.getText("purchasepanel.minute")}`; + if (hours > 0) { + return `${hours}${LanguageUtils.getText("purchasepanel.hour")}:${minutes}${LanguageUtils.getText("purchasepanel.minute")}`; + } + return `${minutes}${LanguageUtils.getText("purchasepanel.minute")}`; } } diff --git a/assets/Scripts/chat18x/data/WalletData.ts b/assets/Scripts/chat18x/data/WalletData.ts index cd726fad..cba3c715 100644 --- a/assets/Scripts/chat18x/data/WalletData.ts +++ b/assets/Scripts/chat18x/data/WalletData.ts @@ -8,7 +8,7 @@ import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; export class WalletData extends BaseData { // 余额 private _balance: number = 0; - // vip失效时间戳 + // vip失效时间戳,秒 private _vipExpire: number = 0; public reset(): void { diff --git a/assets/Scripts/chat18x/manager/ChatHistoryManager.ts b/assets/Scripts/chat18x/manager/ChatHistoryManager.ts index 0cd71a23..d4d6a139 100644 --- a/assets/Scripts/chat18x/manager/ChatHistoryManager.ts +++ b/assets/Scripts/chat18x/manager/ChatHistoryManager.ts @@ -242,7 +242,7 @@ export class ChatHistoryManager { const message: ChatMessage = { role: serverMsg.isAi ? "model" : "user", parts: [{ text: serverMsg.msg }], - timestamp: serverMsg.msgId || Date.now(), + timestamp: Number(serverMsg.msgId) || Date.now(), }; messages.push(message); } @@ -396,7 +396,7 @@ export class ChatHistoryManager { const msg = girlData.getChatRecordMsg(category.toString(), roleId, id); if (msg) { serverMessages.push({ - msgId: id, + msgId: id.toString(), msg: msg, isAi: isAi, });