From 45abc3fbbff35fe0f8960be7f581a642ce9211cf Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 17:37:32 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E8=AF=B7=E6=B1=82AI=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/chat18x/data/AiCharacterData.ts | 22 +++++++++++++++---- assets/Scripts/chat18x/data/GlobalData.ts | 1 - xchat_cfg | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/assets/Scripts/chat18x/data/AiCharacterData.ts b/assets/Scripts/chat18x/data/AiCharacterData.ts index 3d4f8b4b..40df0363 100644 --- a/assets/Scripts/chat18x/data/AiCharacterData.ts +++ b/assets/Scripts/chat18x/data/AiCharacterData.ts @@ -65,10 +65,24 @@ export class AiCharacterData extends BaseData { /** 设置Ai角色配置*/ public set aiCharacter(data: proto.cs.ICSGetResConfigRes) { - const parsed = JSON.parse(data.data); - console.log("请求Ai角色配置的解析数据:", parsed); - - + let parsed: any; + try { + parsed = JSON.parse(data.data); + } catch (e) { + console.warn("AiCharacterData JSON 解析失败", e); + return; + } + // 解析数据 + let allData = this.parseAllAiCharacters(parsed); + // 保存数据 + for (const oneData of allData) { + if (!oneData) continue; + // 覆盖或新增 + if (!this._dataMap.has(oneData.id)) { + this._ids.push(oneData.id); + } + this._dataMap.set(oneData.id, oneData); + } } /** 获取所有 id */ diff --git a/assets/Scripts/chat18x/data/GlobalData.ts b/assets/Scripts/chat18x/data/GlobalData.ts index 9b9e1d1c..77a0d9c7 100644 --- a/assets/Scripts/chat18x/data/GlobalData.ts +++ b/assets/Scripts/chat18x/data/GlobalData.ts @@ -93,7 +93,6 @@ export class GlobalData extends BaseData { this._gameName = obj.GameName; this._emotionBasePrompt = obj.EmotionBasePrompt; this._girlBasePrompt = obj.girlBasePrompt; - console.log("设置全局数据: ", this._gameName); } } diff --git a/xchat_cfg b/xchat_cfg index 53e277f1..00e9816c 160000 --- a/xchat_cfg +++ b/xchat_cfg @@ -1 +1 @@ -Subproject commit 53e277f100f4af0d931654436ac60d3c6b5968ac +Subproject commit 00e9816c33d86c1a32dcf43e86fb4f1b3fe6ac0a From 1e63fc6ab109cd15a0ad626465479eab52d589de Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 19:17:50 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/Main/Common/Logger.ts | 88 +++++++++++++++++++++ assets/Scripts/Main/Common/Logger.ts.meta | 9 +++ assets/Scripts/chat18x/data/GirlChatData.ts | 7 +- 3 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 assets/Scripts/Main/Common/Logger.ts create mode 100644 assets/Scripts/Main/Common/Logger.ts.meta diff --git a/assets/Scripts/Main/Common/Logger.ts b/assets/Scripts/Main/Common/Logger.ts new file mode 100644 index 00000000..8816a234 --- /dev/null +++ b/assets/Scripts/Main/Common/Logger.ts @@ -0,0 +1,88 @@ +/** + * Logger 日志工具类 + * + * 功能: + * - 按等级输出日志(debug/info/warn/error) + * - 在 Dev/Test 环境下输出全部日志 + * - 在 Prod 环境下只输出 error + * - 可扩展日志上报(比如接入远程日志系统) + */ + +import { AppConfig } from "db://assets/Scripts/chat18x/config/env/appConfig"; + +export enum LogLevel { + Debug = 0, + Info = 1, + Warn = 2, + Error = 3, + None = 4, // 不打印任何日志 +} + +class Logger { + private level: LogLevel; + + constructor() { + // 根据环境决定日志等级 + if (AppConfig.I.isDev()) { + this.level = LogLevel.Debug; // Dev 输出所有日志 + } else if (AppConfig.I.isTest()) { + this.level = LogLevel.Debug; // Test 输出所有日志 + } else if (AppConfig.I.isProd()) { + this.level = LogLevel.Error; // Prod 只输出 error + } else { + this.level = LogLevel.None; // 不打印任何日志 + } + } + + /** 修改日志等级(运行时可动态调整) */ + public setLevel(level: LogLevel) { + this.level = level; + } + + public debug(...args: any[]) { + if (this.level <= LogLevel.Debug) { + console.debug("[DEBUG]", ...args); + } + } + + public info(...args: any[]) { + if (this.level <= LogLevel.Info) { + console.info("[INFO]", ...args); + } + } + + public log(...args: any[]) { + if (this.level <= LogLevel.Info) { + console.log("[LOG]", ...args); + } + } + + public warn(...args: any[]) { + if (this.level <= LogLevel.Warn) { + console.warn("[WARN]", ...args); + } + } + + public error(...args: any[]) { + if (this.level <= LogLevel.Error) { + console.error("[ERROR]", ...args); + // 这里也可以加远程上报,例如: + // this.reportError(args); + } + } + + // 示例:远程上报错误日志 + private reportError(args: any[]) { + try { + // fetch("https://log-server.xxx.com/report", { + // method: "POST", + // body: JSON.stringify({ msg: args, time: Date.now() }), + // }); + } catch (e) { + console.error("日志上报失败", e); + } + } +} + +// 全局单例 +export const logger = new Logger(); diff --git a/assets/Scripts/Main/Common/Logger.ts.meta b/assets/Scripts/Main/Common/Logger.ts.meta new file mode 100644 index 00000000..0ded8f20 --- /dev/null +++ b/assets/Scripts/Main/Common/Logger.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "90ee00a3-2349-4a60-a6f0-6e4bebb5e964", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/data/GirlChatData.ts b/assets/Scripts/chat18x/data/GirlChatData.ts index 9bc3557d..017961ce 100644 --- a/assets/Scripts/chat18x/data/GirlChatData.ts +++ b/assets/Scripts/chat18x/data/GirlChatData.ts @@ -5,6 +5,7 @@ import { BaseData } from "./BaseData"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; import Utils from "../../Main/Common/Utils"; import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class GirlChatData extends BaseData { // id @@ -75,7 +76,7 @@ export class GirlChatData extends BaseData { chatTotalCount: this.chatTotalCount, }; Utils.sendInnerMsg(InnerMsgCode.ChatTotalCountChange, msgData); - console.log("当前技师 ", this.id, " ,总聊天次数:", this.chatTotalCount); + logger.log("当前技师 ", this.id, " ,总聊天次数:", this.chatTotalCount); } /** 获取剩余聊天次数 */ @@ -86,7 +87,7 @@ export class GirlChatData extends BaseData { /** 保存剩余聊天次数 */ public setChatRemainCount(value: number): void { this.chatRemainCount = value; - console.log("当前技师 ", this.id, " ,剩余聊天次数:", this.chatRemainCount); + logger.log("当前技师 ", this.id, " ,剩余聊天次数:", this.chatRemainCount); } /** 更新剩余聊天次数 */ @@ -143,7 +144,7 @@ export class GirlChatData extends BaseData { // 排序:根据 msgId 从大到小排序 this.chatRecordIds.sort((a, b) => b - a); - console.log("当前技师 ", this.id, " ,聊天记录:", this.chatRecord); + logger.log("当前技师 ", this.id, " ,聊天记录:", this.chatRecord); } /** 获取聊天记录的所有 id */ From b94d9527a2d7c0fa816841355676bd94c8d5d31c Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 19:49:08 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/Main/Common/GameRootUI.ts | 7 +- assets/Scripts/Main/Common/HttpUnit.ts | 129 +++++++++--------- assets/Scripts/Main/Common/LanguageUtils.ts | 13 +- assets/Scripts/Main/Common/SocketUnit.ts | 19 +-- .../Scripts/Main/Manager/PlayerDataManager.ts | 3 +- assets/Scripts/Main/Manager/ResManager.ts | 61 +++++---- assets/Scripts/Main/Manager/ViewManager.ts | 5 +- assets/Scripts/Sub/MainScene.ts | 7 +- assets/Scripts/Sub/UI/PreloadUI.ts | 15 +- .../Scripts/chat18x/core/RoleConfigLoader.ts | 5 +- assets/Scripts/chat18x/data/DataManager.ts | 3 +- assets/Scripts/chat18x/data/GirlData.ts | 7 +- assets/Scripts/chat18x/data/GirlUnlockData.ts | 5 +- assets/Scripts/chat18x/data/OrderData.ts | 13 +- .../Scripts/chat18x/manager/ConfigManager.ts | 7 +- 15 files changed, 157 insertions(+), 142 deletions(-) diff --git a/assets/Scripts/Main/Common/GameRootUI.ts b/assets/Scripts/Main/Common/GameRootUI.ts index f05462b1..b25b9cc9 100644 --- a/assets/Scripts/Main/Common/GameRootUI.ts +++ b/assets/Scripts/Main/Common/GameRootUI.ts @@ -18,6 +18,7 @@ import { CommonConfig } from "../Config/CommonConfig"; import ResManager from "../Manager/ResManager"; import Utils from "./Utils"; import { UITransitionHelper } from "../../chat18x/utils/UITransitionHelper"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property, executeInEditMode, disallowMultiple } = _decorator; @@ -76,18 +77,18 @@ export default class GameRootUI extends Component { return; } - console.log( + logger.log( `GameRootUI: Executing ${transitionType} animation on defaultView` ); switch (transitionType) { case "slide_left": - console.log( + logger.log( "GameRootUI: About to call slideInFromLeft, node valid:", this.defaultView.isValid ); UITransitionHelper.slideInFromLeft(this.defaultView, duration, () => { - console.log("GameRootUI: slideInFromLeft animation completed"); + logger.log("GameRootUI: slideInFromLeft animation completed"); callback && callback(); }); break; diff --git a/assets/Scripts/Main/Common/HttpUnit.ts b/assets/Scripts/Main/Common/HttpUnit.ts index 8b657747..6c1fe02d 100644 --- a/assets/Scripts/Main/Common/HttpUnit.ts +++ b/assets/Scripts/Main/Common/HttpUnit.ts @@ -5,6 +5,7 @@ import { I_UserInfo } from "../Config/CommonConfig"; import SubManager from "../../Sub/SubManager"; import Utils from "./Utils"; import { InnerMsgCode } from "../Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -80,7 +81,7 @@ export default class HttpUnit { xhr.onreadystatechange = () => { if (xhr.readyState == 4) { if (xhr.status >= 200 && xhr.status < 300) { - // console.log("[Http] 返回", xhr.response); + // logger.log("[Http] 返回", xhr.response); resolve(JSON.parse(xhr.response)); } else { reason(xhr.status) @@ -269,9 +270,9 @@ export default class HttpUnit { public login(cb: Function = null) { this.loginCB = cb; SDKManager.login((_loginData) => { - console.log("SDK登录成功", _loginData) + logger.log("SDK登录成功", _loginData) SDKManager.getUserInfo((userInfo) => { - console.log("SDK获取用户信息成功", userInfo) + logger.log("SDK获取用户信息成功", userInfo) // let serparam = { // platform: _loginData.platform, // code: _loginData.code, @@ -282,7 +283,7 @@ export default class HttpUnit { _loginData.avatar = userInfo.avatarUrl; if (GlobalValue.IsTest) { - console.log("登录测试环境") + logger.log("登录测试环境") this.loginSer({platform:0, code:12345}, this.initData.bind(this)) } else { if (_loginData.code == null) { @@ -295,7 +296,7 @@ export default class HttpUnit { _loginData.platform = 0 // _loginData.code = 123455 //测试代码 } - console.log("登录正式环境 loginData.code: ", _loginData) + logger.log("登录正式环境 loginData.code: ", _loginData) this.loginSer(_loginData, this.initData.bind(this)) } }) @@ -309,12 +310,12 @@ export default class HttpUnit { //登录服务器 private async loginSer(msg, cb: Function = null) { let data: any = await HttpUnit.ins.api("login", msg, "POST", true); - console.log("登录----> 玩家数据:", msg, data) + logger.log("登录----> 玩家数据:", msg, data) if (data && data.code == 1) { HttpUnit.PlayerToken = data.data.token HttpUnit.LoginState = 2 - console.log("HttpUnit.PlayerToken:", HttpUnit.PlayerToken) + logger.log("HttpUnit.PlayerToken:", HttpUnit.PlayerToken) //获取玩家信息 // this.getUserInfo(cb); HttpUnit.UserInfo = data.data.user_info; @@ -322,7 +323,7 @@ export default class HttpUnit { this.getCommSetting(); cb && cb(data.data.user_info); }else{ - console.log("登陆失败:"+ data); + logger.log("登陆失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`登陆失败,${data.msg}`); } else { @@ -334,11 +335,11 @@ export default class HttpUnit { //获取关卡列表数据 public async getLevelList(cb: Function = null) { let data: any = await HttpUnit.ins.api("game/levels", {}, "POST", true); - console.log("关卡数据:", data) + logger.log("关卡数据:", data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获取关卡数据失败:"+ data); + logger.log("获取关卡数据失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -347,11 +348,11 @@ export default class HttpUnit { /**开始关卡*/ public async levelStart(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/start", msg, "POST", true); - console.log("开始新关卡:", msg, data) + logger.log("开始新关卡:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("开始关卡失败:"+ data); + logger.log("开始关卡失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -360,11 +361,11 @@ export default class HttpUnit { /**推进关卡*/ public async sendUserTalk(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/propel", msg, "POST", true); - console.log("推进关卡:", msg, data) + logger.log("推进关卡:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("推进关卡失败:"+ data); + logger.log("推进关卡失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -374,11 +375,11 @@ export default class HttpUnit { /**结束关卡*/ public async sendLevelFinish(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/end", msg, "POST", true); - console.log("结束关卡:", msg, data) + logger.log("结束关卡:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("结束关卡失败:"+ data); + logger.log("结束关卡失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -387,11 +388,11 @@ export default class HttpUnit { /**增加次数,更新关卡*/ public async addTalkCnt(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/update", msg, "POST", true); - console.log("更新关卡:", msg, data) + logger.log("更新关卡:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("更新关卡失败:"+ data); + logger.log("更新关卡失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -400,11 +401,11 @@ export default class HttpUnit { /**获取AI语音*/ public async getAIVoice(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/voice", msg, "POST", true); - console.log("获取AI语音:", msg, data) + logger.log("获取AI语音:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获取AI语音失败:"+ data); + logger.log("获取AI语音失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -413,11 +414,11 @@ export default class HttpUnit { /**获取当前聊天状态*/ public async getTalkStage(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/status", msg, "POST", true); - console.log("获取当前聊天状态:", msg, data) + logger.log("获取当前聊天状态:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获取当前聊天状态失败:"+ data); + logger.log("获取当前聊天状态失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -426,11 +427,11 @@ export default class HttpUnit { //非三星通关时继续关卡 public async sendGameContinue(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/continue", msg, "POST", true); - console.log("非三星通关时继续关卡:", data) + logger.log("非三星通关时继续关卡:", data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("非三星通关时继续关卡失败:"+ data); + logger.log("非三星通关时继续关卡失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -440,13 +441,13 @@ export default class HttpUnit { //重新获取用户信息 public async getUserData(cb: Function = null) { let data: any = await HttpUnit.ins.api("user/info", {}, "GET", true); - console.log("重新获取用户信息数据:", data) + logger.log("重新获取用户信息数据:", data) if (data && data.code == 1) { HttpUnit.UserInfo = data.data; Utils.sendInnerMsg(InnerMsgCode.Data_Redpoint, {}) cb && cb(data.data); }else{ - console.log("重新获取用户信息数据失败:"+ data); + logger.log("重新获取用户信息数据失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -455,12 +456,12 @@ export default class HttpUnit { //用户看广告 public async setUserAd(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/ad", msg, "POST", true); - console.log("看广告数据:", data) + logger.log("看广告数据:", data) if (data && data.code == 1) { HttpUnit.UserInfo = data.data; cb && cb(data.data); }else{ - console.log("看广告数据失败:"+ data); + logger.log("看广告数据失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -469,12 +470,12 @@ export default class HttpUnit { //用户分享 public async setUserShare(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/share", msg, "POST", true); - console.log("用户分享数据:", data) + logger.log("用户分享数据:", data) if (data && data.code == 1) { HttpUnit.UserInfo = data.data; cb && cb(data.data); }else{ - console.log("用户分享数据失败:"+ data); + logger.log("用户分享数据失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -483,7 +484,7 @@ export default class HttpUnit { //获取常用配置 public async getCommSetting(cb: Function = null) { let data: any = await HttpUnit.ins.api("user/setting", {}, "GET", true); - console.log("获取常用配置数据:", data) + logger.log("获取常用配置数据:", data) if (data && data.code == 1) { HttpUnit.SerSetting = {}; for (let i = 0; i < data.data.length; i++) { @@ -492,7 +493,7 @@ export default class HttpUnit { } cb && cb(); }else{ - console.log("获取常用配置数据失败:"+ data); + logger.log("获取常用配置数据失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -501,11 +502,11 @@ export default class HttpUnit { //看广告解锁关卡 public async levelUnlock(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/unlock_level", msg, "POST", true); - console.log("看广告解锁关卡:", msg, data) + logger.log("看广告解锁关卡:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("看广告解锁关卡失败:"+ data); + logger.log("看广告解锁关卡失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -514,12 +515,12 @@ export default class HttpUnit { //获取抖音侧边栏奖励 public async getBDSidebarReward(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/receive_award", msg, "POST", true); - console.log("获取抖音侧边栏奖励:", msg, data) + logger.log("获取抖音侧边栏奖励:", msg, data) if (data && data.code == 1) { HttpUnit.UserInfo = data.data; cb && cb(data.data); }else{ - console.log("获取抖音侧边栏奖励失败:"+ data); + logger.log("获取抖音侧边栏奖励失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -528,12 +529,12 @@ export default class HttpUnit { //添加友盟关卡记录 public async sendLevelRecord(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/add_level_record", msg, "POST", true); - console.log("添加友盟关卡记录:", msg, data) + logger.log("添加友盟关卡记录:", msg, data) if (data && data.code == 1) { HttpUnit.UserInfo = data.data; cb && cb(data.data); }else{ - console.log("添加友盟关卡记录失败:"+ data); + logger.log("添加友盟关卡记录失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -542,11 +543,11 @@ export default class HttpUnit { //获得甜蜜暴击效果 public async sendTalkStrength(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/strength", msg, "POST", true); - console.log("获得甜蜜暴击效果:", msg, data) + logger.log("获得甜蜜暴击效果:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获得甜蜜暴击效果失败:"+ data); + logger.log("获得甜蜜暴击效果失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -555,11 +556,11 @@ export default class HttpUnit { //撤回一次聊天 public async sendTalkChehui(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/cancel", msg, "POST", true); - console.log("撤回一次聊天:", msg, data) + logger.log("撤回一次聊天:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("撤回一次聊天失败:"+ data); + logger.log("撤回一次聊天失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -568,11 +569,11 @@ export default class HttpUnit { //关卡提示事件上报 public async sendTipRecord(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/add_record_tip", msg, "POST", true); - console.log("关卡提示事件上报:", msg, data) + logger.log("关卡提示事件上报:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("关卡提示事件上报失败:"+ data); + logger.log("关卡提示事件上报失败:"+ data); // if (data && data.msg) { // SubManager.ShowPrompt(`数据异常,${data.msg}`); // } @@ -581,11 +582,11 @@ export default class HttpUnit { //获取AI回复提示语 public async getAIAutoAns(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/tips", msg, "POST", true); - console.log("获取AI回复提示语:", msg, data) + logger.log("获取AI回复提示语:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获取AI回复提示语失败:"+ data); + logger.log("获取AI回复提示语失败:"+ data); // if (data && data.msg) { // SubManager.ShowPrompt(`数据异常,${data.msg}`); // } @@ -594,11 +595,11 @@ export default class HttpUnit { /**获取历史聊天记录*/ public async getTalkJilu(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/get_history", msg, "POST", true); - console.log("获取历史聊天记录:", msg, data) + logger.log("获取历史聊天记录:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获取历史聊天记录失败:"+ data); + logger.log("获取历史聊天记录失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -608,11 +609,11 @@ export default class HttpUnit { /**私家珍藏上报 */ public async sendZhencangId(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/set_private_collection", msg, "POST", true); - console.log("私家珍藏上报:", msg, data) + logger.log("私家珍藏上报:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("私家珍藏上报失败:"+ data); + logger.log("私家珍藏上报失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -621,11 +622,11 @@ export default class HttpUnit { /**获取私家珍藏列表 limit:每页条数 page:当前页 type:类型 0待领取 1已领取 level_id:关卡ID*/ public async getZhencangList(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/get_private_collection", msg, "POST", true); - console.log("获取私家珍藏列表:", msg, data) + logger.log("获取私家珍藏列表:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("获取私家珍藏列表失败:"+ data); + logger.log("获取私家珍藏列表失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -634,13 +635,13 @@ export default class HttpUnit { /**领取私家珍藏指定奖励*/ public async getZhencangReward(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/private_collection_award", msg, "POST", true); - console.log("领取私家珍藏指定奖励:", msg, data) + logger.log("领取私家珍藏指定奖励:", msg, data) if (data && data.code == 1) { cb && cb(data.data); HttpUnit.UserInfo = data.data; Utils.sendInnerMsg(InnerMsgCode.Data_Redpoint, {}) }else{ - console.log("领取私家珍藏指定奖励失败:", data); + logger.log("领取私家珍藏指定奖励失败:", data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -649,13 +650,13 @@ export default class HttpUnit { /**清除私家珍藏红点*/ public async readRedpointZhencang(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/clear_private_collection_mark", msg, "POST", true); - console.log("清除私家珍藏红点:", msg, data) + logger.log("清除私家珍藏红点:", msg, data) if (data && data.code == 1) { cb && cb(data.data); HttpUnit.UserInfo = data.data; Utils.sendInnerMsg(InnerMsgCode.Data_Redpoint, {}) }else{ - console.log("清除私家珍藏红点失败:"+ data); + logger.log("清除私家珍藏红点失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -664,13 +665,13 @@ export default class HttpUnit { /**清除心动回忆红点*/ public async readRedpointHuiyi(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/clear_heartbeat_memories_mark", msg, "POST", true); - console.log("清除心动回忆红点:", msg, data) + logger.log("清除心动回忆红点:", msg, data) if (data && data.code == 1) { cb && cb(data.data); HttpUnit.UserInfo = data.data; Utils.sendInnerMsg(InnerMsgCode.Data_Redpoint, {}) }else{ - console.log("清除心动回忆红点失败:"+ data); + logger.log("清除心动回忆红点失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -679,11 +680,11 @@ export default class HttpUnit { /**重新开始关卡时,结束上次进度并上报服务器*/ public async sendLevelRestartReport(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("game/restart_report", msg, "POST", true); - console.log("关卡结束上次进度:", msg, data) + logger.log("关卡结束上次进度:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("关卡结束上次进度失败:"+ data); + logger.log("关卡结束上次进度失败:"+ data); if (data && data.msg) { SubManager.ShowPrompt(`数据异常,${data.msg}`); } @@ -692,11 +693,11 @@ export default class HttpUnit { /**心动回忆数据埋点*/ public async sendEventTujian(msg:any, cb: Function = null) { let data: any = await HttpUnit.ins.api("user/click_img_event", msg, "POST", true); - console.log("心动回忆数据埋点:", msg, data) + logger.log("心动回忆数据埋点:", msg, data) if (data && data.code == 1) { cb && cb(data.data); }else{ - console.log("心动回忆数据埋点失败:"+ data); + logger.log("心动回忆数据埋点失败:"+ data); // if (data && data.msg) { // SubManager.ShowPrompt(`数据异常,${data.msg}`); // } @@ -708,7 +709,7 @@ export default class HttpUnit { public async api(path: string, data: any, method: "GET" | "POST" | "PUT" = "GET", bLock: boolean = false, isFormData: boolean = false) { let url = HttpUnit.ServerHttpHost + path; - // console.log("[Http] 请求Url:",url, " 方式:", method, " Authorization:", GlobalValue.PlayerToken, " 数据:", JSON.stringify(data) ); + // logger.log("[Http] 请求Url:",url, " 方式:", method, " Authorization:", GlobalValue.PlayerToken, " 数据:", JSON.stringify(data) ); bLock && this.lock(); var xhr = new XMLHttpRequest(); xhr.timeout = 10000; @@ -751,7 +752,7 @@ export default class HttpUnit { * @returns */ public async send(url: string, data: any, method: "GET" | "POST" | "PUT" = "GET", bLock: boolean = false, formData: boolean = false) { - // console.log("[Http] 请求Url:",url, " 方式:", method, " 数据:", data); + // logger.log("[Http] 请求Url:",url, " 方式:", method, " 数据:", data); bLock && this.lock(); var xhr = new XMLHttpRequest(); xhr.timeout = 10000; diff --git a/assets/Scripts/Main/Common/LanguageUtils.ts b/assets/Scripts/Main/Common/LanguageUtils.ts index 54d839cd..34b2d0a9 100644 --- a/assets/Scripts/Main/Common/LanguageUtils.ts +++ b/assets/Scripts/Main/Common/LanguageUtils.ts @@ -5,6 +5,7 @@ import { CommonConfig } from "../Config/CommonConfig"; import li_EventManager from "./li_EventManager"; import Utils from "./Utils"; import { InnerMsgCode } from "../Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass } = _decorator; @@ -49,7 +50,7 @@ export default class LanguageUtils { } else { this.detectSystemLanguage(); } - console.log( + logger.log( "LanguageUtils initialized with language:", this.currentLanguage ); @@ -83,7 +84,7 @@ export default class LanguageUtils { ); Utils.sendInnerMsg(InnerMsgCode.LanguageChange, language); - console.log("Language changed to:", language); + logger.log("Language changed to:", language); } public static getText(key: string, defaultText: string = ""): string { @@ -100,13 +101,13 @@ export default class LanguageUtils { } if (!ConfigManager.tables || !ConfigManager.tables.TbLanguage) { - console.warn("Language table not loaded yet"); + logger.warn("Language table not loaded yet"); return defaultText || key; } const languageData = ConfigManager.tables.TbLanguage.get(key); if (!languageData) { - console.warn(`Language key not found: ${key}`); + logger.warn(`Language key not found: ${key}`); return defaultText || key; } @@ -147,13 +148,13 @@ export default class LanguageUtils { } if (!ConfigManager.tables || !ConfigManager.tables.TbLanguage) { - console.warn("Language table not loaded yet"); + logger.warn("Language table not loaded yet"); return defaultText || key; } const languageData = ConfigManager.tables.TbLanguage.get(key); if (!languageData) { - console.warn(`Language key not found: ${key}`); + logger.warn(`Language key not found: ${key}`); return defaultText || key; } diff --git a/assets/Scripts/Main/Common/SocketUnit.ts b/assets/Scripts/Main/Common/SocketUnit.ts index 24f9de96..bbe8997d 100644 --- a/assets/Scripts/Main/Common/SocketUnit.ts +++ b/assets/Scripts/Main/Common/SocketUnit.ts @@ -1,5 +1,6 @@ import { InnerMsgCode } from "../Config/InnerMsgCode"; import Utils from "./Utils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /**长连接*/ export default class SocketUnit { @@ -18,20 +19,20 @@ export default class SocketUnit { // 连接到服务器 public connect(url: string): void { if (this.isConnected) { - console.log("SocketUnit: Already connected."); + logger.log("SocketUnit: Already connected."); return; } this.url = url; this.socket = new WebSocket(url); - console.log("SocketUnit: Connecting to -> " + url); + logger.log("SocketUnit: Connecting to -> " + url); // 连接成功 this.socket.onopen = () => { this.isConnected = true; - console.log("SocketUnit: Connection succ."); + logger.log("SocketUnit: Connection succ."); if (this.reconnetSwt) { - console.log("SocketUnit: socket重连成功."); + logger.log("SocketUnit: socket重连成功."); this.stopReconnect(); if (this.reSendData) { this.sendData(this.reSendData); @@ -42,7 +43,7 @@ export default class SocketUnit { // 接收到消息 this.socket.onmessage = (event) => { - // console.log("SocketUnit: Received data: ", event); + // logger.log("SocketUnit: Received data: ", event); if (this.dataReceivedCallback) { this.dataReceivedCallback(event); } @@ -51,12 +52,12 @@ export default class SocketUnit { // 连接关闭 this.socket.onclose = () => { this.isConnected = false; - console.log("SocketUnit: Connection closed."); + logger.log("SocketUnit: Connection closed."); }; // 发生错误 this.socket.onerror = (error) => { - console.error("SocketUnit: WebSocket error:", error); + logger.error("SocketUnit: WebSocket error:", error); this.isConnected = false; }; @@ -73,11 +74,11 @@ export default class SocketUnit { // 发送数据 public sendData(data: string): void { - // console.log("SocketUnit: sendData", data); + // logger.log("SocketUnit: sendData", data); if (this.socket && this.isConnected) { this.socket.send(data); } else { - console.error("SocketUnit: Socket is not connected."); + logger.error("SocketUnit: Socket is not connected."); this.reSendData = data; this.beginReconnect() } diff --git a/assets/Scripts/Main/Manager/PlayerDataManager.ts b/assets/Scripts/Main/Manager/PlayerDataManager.ts index 828552ca..716960b9 100644 --- a/assets/Scripts/Main/Manager/PlayerDataManager.ts +++ b/assets/Scripts/Main/Manager/PlayerDataManager.ts @@ -2,6 +2,7 @@ import { _decorator, sys } from "cc"; import Utils from "../Common/Utils"; import { CommonConfig } from "../Config/CommonConfig"; import AudioManager from "./AudioManager"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -44,7 +45,7 @@ export default class PlayerDataManager { this.isSoundOn = PlayerDataManager.getForKey(CommonConfig.StorageConfig.SETTING_SOUND, true) this.guideMainFinished = PlayerDataManager.getForKey(CommonConfig.StorageConfig.GUIDE_MAIN, false) this.guideTalkFinished = PlayerDataManager.getForKey(CommonConfig.StorageConfig.GUIDE_TALK, false) - console.log("InitPlayerData", `music=${this.isMusicOn}, sound=${this.isSoundOn}, guideMain=${this.guideMainFinished}, guideTalk=${this.guideTalkFinished}`) + logger.log("InitPlayerData", `music=${this.isMusicOn}, sound=${this.isSoundOn}, guideMain=${this.guideMainFinished}, guideTalk=${this.guideTalkFinished}`) } diff --git a/assets/Scripts/Main/Manager/ResManager.ts b/assets/Scripts/Main/Manager/ResManager.ts index b7f78a11..e627c05e 100644 --- a/assets/Scripts/Main/Manager/ResManager.ts +++ b/assets/Scripts/Main/Manager/ResManager.ts @@ -22,6 +22,7 @@ import { VideoClip, } from "cc"; const { ccclass, property } = _decorator; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; @ccclass("ResManager") export default class ResManager { @@ -78,7 +79,7 @@ export default class ResManager { if (bundle) { bundle.preload(url, Prefab, (err, res) => { if (err) { - console.log(err); + logger.log(err); return; } cb && cb(); @@ -88,7 +89,7 @@ export default class ResManager { "PB", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.preLoadSubpackagePrefab(url, cb); @@ -102,7 +103,7 @@ export default class ResManager { if (bundle) { bundle.preload(url, ftype, (err, res) => { if (err) { - console.log(err); + logger.log(err); failCB && failCB(err); return; } @@ -113,7 +114,7 @@ export default class ResManager { pkgName, (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); failCB && failCB(err); return; } @@ -128,7 +129,7 @@ export default class ResManager { if (bundle) { bundle.load(url, Prefab, (err, res: Prefab) => { if (err) { - console.log(err); + logger.log(err); return; } let cc_N = instantiate(res); @@ -139,7 +140,7 @@ export default class ResManager { "PB", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.loadSubpackagePrefab(url, cb); @@ -165,7 +166,7 @@ export default class ResManager { if (bundle) { bundle.load(url, Prefab, (err, res: Prefab) => { if (err) { - console.log(err); + logger.log(err); return; } let cc_N = instantiate(res); @@ -176,7 +177,7 @@ export default class ResManager { "Model3D", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.loadSubpackage3DModel(url, cb); @@ -199,7 +200,7 @@ export default class ResManager { if (bundle) { bundle.load(url, VideoClip, (err, res: VideoClip) => { if (err) { - console.log(err); + logger.log(err); return; } if (!spt.isValid) { @@ -217,7 +218,7 @@ export default class ResManager { packageName, (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.changeBundleVideo(spt, url, packageName, cb); @@ -242,7 +243,7 @@ export default class ResManager { SpriteFrame, (err, res: SpriteFrame) => { if (err) { - console.log(err); + logger.log(err); return; } if (!spt.isValid) { @@ -260,7 +261,7 @@ export default class ResManager { packageName, (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.changeBundleSpriteFrame(spt, url, packageName, cb); @@ -280,7 +281,7 @@ export default class ResManager { if (bundle) { bundle.load(url + "/texture", Texture2D, (err, res: Texture2D) => { if (err) { - console.log(err); + logger.log(err); return; } if (!spt.isValid) { @@ -296,7 +297,7 @@ export default class ResManager { packageName, (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.changeBundleTexture(spt, url, packageName, cb); @@ -311,7 +312,7 @@ export default class ResManager { if (bundle) { bundle.load(url, AudioClip, (err, res: AudioClip) => { if (err) { - console.log(err); + logger.log(err); return; } cb && cb(res); @@ -321,7 +322,7 @@ export default class ResManager { "Audio", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.getBundleAudio(url, cb); @@ -336,7 +337,7 @@ export default class ResManager { if (bundle) { bundle.load(url, JsonAsset, (err, res: JsonAsset) => { if (err) { - console.log(err); + logger.log(err); return; } cb && cb(res); @@ -346,7 +347,7 @@ export default class ResManager { "DataTable", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.loadSubpackagePrefab(url, cb); @@ -398,9 +399,9 @@ export default class ResManager { spttemp.frameUrl = url; // 加载 assetManager.loadRemote(url, (err, res: ImageAsset) => { - console.log("changeRemoteSpriteFrame方法加载远程图片: ", url); + logger.log("changeRemoteSpriteFrame方法加载远程图片: ", url); if (err) { - console.log(err); + logger.log(err); return; } if (!spt.isValid) { @@ -427,9 +428,9 @@ export default class ResManager { // spttemp.frameUrl = url; // // 加载 // assetManager.loadRemote(url, (err, res: VideoClip) => { - // console.log("加载远程视频: ", url); + // logger.log("加载远程视频: ", url); // if (err) { - // console.error(err); + // logger.error(err); // return; // } // if (!spt.isValid) { @@ -442,7 +443,7 @@ export default class ResManager { // cb && cb(res); // }) - console.log("loadRemoteVideo方法加载远程视频: ", url); + logger.log("loadRemoteVideo方法加载远程视频: ", url); spt.resourceType = VideoPlayer.ResourceType.REMOTE; spt.remoteURL = url; cb && cb(null); @@ -463,7 +464,7 @@ export default class ResManager { private loadResourceRes(path: string, cb) { resources.load(path, ImageAsset, (err, res: ImageAsset) => { if (err) { - console.log(err); + logger.log(err); return; } cb && cb(res); @@ -490,7 +491,7 @@ export default class ResManager { SpriteFrame, (err, res: SpriteFrame) => { if (err) { - console.log(err); + logger.log(err); return; } if (!spt.isValid) { @@ -507,7 +508,7 @@ export default class ResManager { if (!spt || !path) return; resources.load(path + "/texture", Texture2D, (err, res: Texture2D) => { if (err) { - console.log(err); + logger.log(err); return; } if (!spt.isValid) { @@ -529,7 +530,7 @@ export default class ResManager { if (bundle) { bundle.load("ui_sprite_gray", Material, (err, res: Material) => { if (err) { - console.log(err); + logger.log(err); return; } // spt.setSharedMaterial(res, 0) @@ -540,7 +541,7 @@ export default class ResManager { "Materials", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.SetGray(spt, isGray); @@ -560,7 +561,7 @@ export default class ResManager { if (bundle) { bundle.load("mohu", Material, (err, res: Material) => { if (err) { - console.log(err); + logger.log(err); return; } // spt.setSharedMaterial(res, 0) @@ -571,7 +572,7 @@ export default class ResManager { "Materials", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); return; } this.SetBlur(spt, isBule); diff --git a/assets/Scripts/Main/Manager/ViewManager.ts b/assets/Scripts/Main/Manager/ViewManager.ts index 026bfd91..53bc77c5 100644 --- a/assets/Scripts/Main/Manager/ViewManager.ts +++ b/assets/Scripts/Main/Manager/ViewManager.ts @@ -16,6 +16,7 @@ import Utils from "../Common/Utils"; import GameRootUI from "../Common/GameRootUI"; import ResManager from "./ResManager"; import { CommonConfig } from "../Config/CommonConfig"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -203,7 +204,7 @@ export class ViewManager extends Component { type ); } else { - console.log("打开界面:", i_prefab); + logger.log("打开界面:", i_prefab); ResManager.I.getPrefab( i_prefab, (pb: Node) => { @@ -229,7 +230,7 @@ export class ViewManager extends Component { "tips" ); } else { - console.log("打开界面:", i_prefab); + logger.log("打开界面:", i_prefab); ResManager.I.getPrefab( i_prefab, (pb: Node) => { diff --git a/assets/Scripts/Sub/MainScene.ts b/assets/Scripts/Sub/MainScene.ts index df22eace..b66a1d56 100644 --- a/assets/Scripts/Sub/MainScene.ts +++ b/assets/Scripts/Sub/MainScene.ts @@ -1,6 +1,7 @@ import { _decorator, Camera, Component, Node } from "cc"; import GameRootUI from "../Main/Common/GameRootUI"; import { MainController } from "../chat18x/core/MainController"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -34,11 +35,11 @@ export class MainScene extends Component { */ private async initMainController(): Promise { try { - console.log("[MainScene] 开始初始化MainController"); + logger.log("[MainScene] 开始初始化MainController"); await MainController.I.init(); - console.log("[MainScene] MainController初始化完成"); + logger.log("[MainScene] MainController初始化完成"); } catch (error) { - console.error("[MainScene] MainController初始化失败:", error); + logger.error("[MainScene] MainController初始化失败:", error); } } } diff --git a/assets/Scripts/Sub/UI/PreloadUI.ts b/assets/Scripts/Sub/UI/PreloadUI.ts index 63985fe1..930bc003 100644 --- a/assets/Scripts/Sub/UI/PreloadUI.ts +++ b/assets/Scripts/Sub/UI/PreloadUI.ts @@ -46,6 +46,7 @@ import proto from "db://assets/Scripts/proto/proto.pb.js"; import { ViewManager } from "../../Main/Manager/ViewManager"; import { MainScene } from "../MainScene"; import { prodConfig } from "../../chat18x/config/env/prod"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -100,7 +101,7 @@ export class PreloadUI extends Component { // 初始化配置 ConfigManager.I.init(); - //console.log(ConfigManager.tables.TbGlobalConfig.GameName); + //logger.log(ConfigManager.tables.TbGlobalConfig.GameName); // 初始化环境配置 AppConfig.I; // 初始化数据层 @@ -116,7 +117,7 @@ export class PreloadUI extends Component { protected onDestroy(): void {} onVideoReadyToPlay() { - console.log("Video Ready"); + logger.log("Video Ready"); this._nodeTab.VideoPlayer.getComponent(VideoPlayer).play(); } update(deltaTime: number) { @@ -155,12 +156,12 @@ export class PreloadUI extends Component { num_succeed++; let percent = 0.45 * (num_prefab / preloadTab.length); this.showLoadProgress(0.55 + percent); - console.log("加载成功:", cfg.path); + logger.log("加载成功:", cfg.path); preloadFunc(); }, (err) => { num_prefab++; - console.log("加载失败:", err); + logger.log("加载失败:", err); } ); } else { @@ -199,9 +200,9 @@ export class PreloadUI extends Component { device: deviceId, os, }; - console.log("登录请求数据:", reqData); + logger.log("登录请求数据:", reqData); let res = await AuthService.I.login(reqData); - console.log("登录响应数据:", res); + logger.log("登录响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; const loginData = DataManager.I.getDataById(DataId.Login); @@ -228,7 +229,7 @@ export class PreloadUI extends Component { private async reqMyInfo() { const reqData = {}; let res = await PlayerDataService.I.reqMyInfo(reqData); - console.log("个人信息响应数据:", res); + logger.log("个人信息响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; const walletData = DataManager.I.getDataById(DataId.Wallet); diff --git a/assets/Scripts/chat18x/core/RoleConfigLoader.ts b/assets/Scripts/chat18x/core/RoleConfigLoader.ts index edd71181..8c6ba246 100644 --- a/assets/Scripts/chat18x/core/RoleConfigLoader.ts +++ b/assets/Scripts/chat18x/core/RoleConfigLoader.ts @@ -3,6 +3,7 @@ import { AiCharacterConfig } from "../config/AiCharacterConfig"; import { DataId, DataManager } from "../data/DataManager"; import { GlobalData } from "../data/GlobalData"; import { ConfigId, ConfigManager } from "../manager/ConfigManager"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 角色配置映射 @@ -25,8 +26,8 @@ export class RoleConfigLoader { const globalPrompt = globalConfig.getGirlBasePrompt(); const prompt = globalPrompt + "\n" + basePrompt + "\n" + additionPrompt; - console.log(basePrompt); - console.log(additionPrompt); + logger.log(basePrompt); + logger.log(additionPrompt); return prompt; } diff --git a/assets/Scripts/chat18x/data/DataManager.ts b/assets/Scripts/chat18x/data/DataManager.ts index 81e424b6..795ca843 100644 --- a/assets/Scripts/chat18x/data/DataManager.ts +++ b/assets/Scripts/chat18x/data/DataManager.ts @@ -16,6 +16,7 @@ import { GirlData } from "./GirlData"; import { EnvData } from "./EnvData"; import { GlobalData } from "./GlobalData"; import { AiCharacterData } from "./AiCharacterData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 集中定义数据ID,避免写错字符串 @@ -63,7 +64,7 @@ export class DataManager { * 初始化:注册 数据ID → 构造器 */ public init(): void { - console.log("[DataManager] 数据管理器初始化"); + logger.log("[DataManager] 数据管理器初始化"); this.registerAll(); } diff --git a/assets/Scripts/chat18x/data/GirlData.ts b/assets/Scripts/chat18x/data/GirlData.ts index 28ff6fe7..41586b26 100644 --- a/assets/Scripts/chat18x/data/GirlData.ts +++ b/assets/Scripts/chat18x/data/GirlData.ts @@ -10,6 +10,7 @@ import { GirlFavorabilityData } from "./GirlFavorabilityData"; import { DataId } from "./DataManager"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import { PriceType } from "../../schema/schema"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; // 分类的数据结构 interface CategoryBucket { @@ -90,7 +91,7 @@ export class GirlData extends BaseData { this.setGirlFavorability(categoryId, data.girls); const bucket = this.ensureBucket(categoryId); - console.log("保存类别 ", categoryId, " 的技师列表: ", bucket); + logger.log("保存类别 ", categoryId, " 的技师列表: ", bucket); } /** 保存技师详细数据 */ @@ -108,7 +109,7 @@ export class GirlData extends BaseData { this.setGirlFavorability(categoryId, details); const bucket = this.ensureBucket(categoryId); - console.log("保存类别 ", categoryId, " 的详细数据: ", bucket); + logger.log("保存类别 ", categoryId, " 的详细数据: ", bucket); } /** --------------------------------------------------------- 技师的简要数据 --------------------------------------------------------- */ @@ -967,7 +968,7 @@ export class GirlData extends BaseData { if (!data) return; this.mergeOneBrief(DAILY_BUCKET, data.girl); const bucket = this.ensureBucket(DAILY_BUCKET); - console.log("保存每日推荐: ", bucket); + logger.log("保存每日推荐: ", bucket); } /** 判断每日推荐是否存在 */ diff --git a/assets/Scripts/chat18x/data/GirlUnlockData.ts b/assets/Scripts/chat18x/data/GirlUnlockData.ts index da9da60d..7879cf89 100644 --- a/assets/Scripts/chat18x/data/GirlUnlockData.ts +++ b/assets/Scripts/chat18x/data/GirlUnlockData.ts @@ -3,6 +3,7 @@ */ import { BaseData } from "./BaseData"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class GirlUnlockData extends BaseData { // id @@ -81,7 +82,7 @@ export class GirlUnlockData extends BaseData { if (!exists) { this.unlockedImageIds.push(id); } - console.log("技师 ", this.id, " 当前解锁图片的所有id:",this.unlockedImageIds); + logger.log("技师 ", this.id, " 当前解锁图片的所有id:",this.unlockedImageIds); } /** 获取所有解锁图片的 id */ @@ -113,7 +114,7 @@ export class GirlUnlockData extends BaseData { if (!exists) { this.unlockedVideoIds.push(id); } - console.log("技师 ", this.id, " 当前解锁视频的所有id:",this.unlockedVideoIds); + logger.log("技师 ", this.id, " 当前解锁视频的所有id:",this.unlockedVideoIds); } /** 获取所有解锁视频的 id */ diff --git a/assets/Scripts/chat18x/data/OrderData.ts b/assets/Scripts/chat18x/data/OrderData.ts index f4f4e052..5854c4ae 100644 --- a/assets/Scripts/chat18x/data/OrderData.ts +++ b/assets/Scripts/chat18x/data/OrderData.ts @@ -6,6 +6,7 @@ import proto from 'db://assets/Scripts/proto/proto.pb.js'; import type { OrderVO, OrderStatus } from 'db://assets/Scripts/chat18x/payment/types'; import { mapQueryOrderStatus, shouldPoll } from 'db://assets/Scripts/chat18x/payment/PaymentUtil'; import { sys } from "cc"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const ORDER_STORAGE_KEY = "order_data_v1"; @@ -44,7 +45,7 @@ export class OrderData extends BaseData { createdAt: Date.now(), // 订单创建时间,毫秒 }; this._orders.set(orderId, vo); - console.log("保存订单数据:", this._orders); + logger.log("保存订单数据:", this._orders); } /** 根据订单 id 获取订单数据 */ @@ -68,7 +69,7 @@ export class OrderData extends BaseData { vo.status = mapQueryOrderStatus(res.status); vo.retCode = res.retCode ?? 0; this._orders.set(orderId, vo); - console.log("更新订单数据:", vo); + logger.log("更新订单数据:", vo); } /** 获取所有需要继续轮询查询的订单 id */ @@ -172,9 +173,9 @@ export class OrderData extends BaseData { map.set(vo.orderId, vo); } } - console.log("加载本地订单数据:", map); + logger.log("加载本地订单数据:", map); } catch (e) { - console.warn("[OrderData] loadStorage parse error:", e); + logger.warn("[OrderData] loadStorage parse error:", e); this.ensureMap().clear(); } } @@ -190,9 +191,9 @@ export class OrderData extends BaseData { orders, }; sys.localStorage.setItem(ORDER_STORAGE_KEY, JSON.stringify(payload)); - console.log("保存本地订单数据:", payload); + logger.log("保存本地订单数据:", payload); } catch (e) { - console.warn("[OrderData] saveStorage error:", e); + logger.warn("[OrderData] saveStorage error:", e); } } diff --git a/assets/Scripts/chat18x/manager/ConfigManager.ts b/assets/Scripts/chat18x/manager/ConfigManager.ts index 779ce284..5de28496 100644 --- a/assets/Scripts/chat18x/manager/ConfigManager.ts +++ b/assets/Scripts/chat18x/manager/ConfigManager.ts @@ -8,6 +8,7 @@ import { GlobalConfig } from "../config/GlobalConfig"; import { GirlConfig } from "../config/GirlConfig"; import { GirlDetailConfig } from "../config/GirlDetailConfig"; import { AiCharacterConfig } from "../config/AiCharacterConfig"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 集中定义数据ID,避免写错字符串 @@ -68,7 +69,7 @@ export class ConfigManager { "DataTable", (err: Error, _bundle: AssetManager.Bundle) => { if (err) { - console.log(err); + logger.log(err); reject && reject(err); return; } else { @@ -87,13 +88,13 @@ export class ConfigManager { new Uint8Array(data.buffer().slice(0, data.buffer().byteLength)) ); } else { - console.error("静态配置加载失败" + curFileName); + logger.error("静态配置加载失败" + curFileName); } }); promises.push(promise); } Promise.all(promises).then((values) => { - console.log("静态配置加载完成"); + logger.log("静态配置加载完成"); ConfigManager.tables = new cfg.Tables(ConfigManager.I.getFileData); }); } From 23c038fd14660ec03d0868ebc91398a50d84f5b1 Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 20:05:36 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/Main/Channel/SDKManager.ts | 13 +- assets/Scripts/Main/Channel/bdSDK.ts | 101 ++++++------ assets/Scripts/Main/Channel/ksSDK.ts | 143 ++++++++--------- assets/Scripts/Main/Channel/luffaSDK.ts | 159 +++++++++---------- assets/Scripts/Main/Channel/webSDK.ts | 23 +-- assets/Scripts/Main/Channel/wxSDK.ts | 165 ++++++++++---------- assets/Scripts/Main/Common/Utils.ts | 13 +- assets/Scripts/Main/Manager/AudioManager.ts | 11 +- assets/Scripts/Main/Manager/GameManager.ts | 9 +- assets/Scripts/Sub/UI/SceneBgVideoLayer.ts | 38 ++--- 10 files changed, 343 insertions(+), 332 deletions(-) diff --git a/assets/Scripts/Main/Channel/SDKManager.ts b/assets/Scripts/Main/Channel/SDKManager.ts index e1ad9f55..8c203c01 100644 --- a/assets/Scripts/Main/Channel/SDKManager.ts +++ b/assets/Scripts/Main/Channel/SDKManager.ts @@ -7,6 +7,7 @@ import { KSSDK } from "./ksSDK"; import AudioManager from "../Manager/AudioManager"; import GlobalValue, { VideoRoleType } from "../Common/GlobalValue"; import { luffaSDK } from "./luffaSDK"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -86,9 +87,9 @@ export class SDKManager { //extends Component this.video_reward_map = {} this.share_reward_map = {} - console.log("平台值 wx:",window["wx"], typeof window["wx"]) - console.log("平台值 ks:",window["ks"], typeof window["ks"]) - console.log("平台值 tt:",window["tt"], typeof window["tt"]) + logger.log("平台值 wx:",window["wx"], typeof window["wx"]) + logger.log("平台值 ks:",window["ks"], typeof window["ks"]) + logger.log("平台值 tt:",window["tt"], typeof window["tt"]) if (typeof window["ks"] !== 'undefined') { this.sdk_channel = E_SDK_Channel.KS @@ -104,7 +105,7 @@ export class SDKManager { //extends Component this.sdk = new WebSDK() } - console.log("当前平台:",sys.platform, this.sdk_channel) + logger.log("当前平台:",sys.platform, this.sdk_channel) if (GlobalValue.NpcVideoMod) { GlobalValue.NpcVideoMod = this.sdk_channel === E_SDK_Channel.WX || this.sdk_channel === E_SDK_Channel.WEB } @@ -192,12 +193,12 @@ export class SDKManager { //extends Component } //看视频广告前 static video_ad_pre() { - console.log("SDKManager 视频广告前") + logger.log("SDKManager 视频广告前") AudioManager.I.PauseMusic(); } //看视频广告后返回游戏 static video_ad_back() { - console.log("SDKManager 视频广告后") + logger.log("SDKManager 视频广告后") AudioManager.I.ResumeMusic(); } diff --git a/assets/Scripts/Main/Channel/bdSDK.ts b/assets/Scripts/Main/Channel/bdSDK.ts index d0b1ff4f..b3950ed7 100644 --- a/assets/Scripts/Main/Channel/bdSDK.ts +++ b/assets/Scripts/Main/Channel/bdSDK.ts @@ -5,6 +5,7 @@ import SubManager from "../../Sub/SubManager" import Utils from "../Common/Utils" import { InnerMsgCode } from "../Config/InnerMsgCode" import HttpUnit from "../Common/HttpUnit" +import { logger } from "db://assets/Scripts/Main/Common/Logger"; //广告ID const AD_AWARD = "1ntrdiqhmdket7v5fe" @@ -47,7 +48,7 @@ export class ByteDanceSDK{ window['tt'].checkScene({ scene: "sidebar", success: (res) => { - console.log("抖音 检测侧边栏功能->", res) + logger.log("抖音 检测侧边栏功能->", res) if (res.isExist == true) { if (ByteDanceSDK._SidebarState == 0) { ByteDanceSDK._SidebarState = 1 @@ -56,22 +57,22 @@ export class ByteDanceSDK{ cb && cb(res.isExist == true); }, fail: (res) => { - console.log("抖音 检测侧边栏功能失败->", res) + logger.log("抖音 检测侧边栏功能失败->", res) cb && cb(false); } }) } /**前往侧边栏 */ public static GotoSidebar(cb:Function = null){ - console.log("抖音 正在前往侧边栏...") + logger.log("抖音 正在前往侧边栏...") window["tt"].navigateToScene({ scene: "sidebar", success(res) { - console.log("抖音 前往侧边栏 成功") + logger.log("抖音 前往侧边栏 成功") cb && cb(true); }, fail(res) { - console.log("抖音 前往侧边栏 失败", res) + logger.log("抖音 前往侧边栏 失败", res) } }) } @@ -79,7 +80,7 @@ export class ByteDanceSDK{ //初始化 init(cb: Function = null) { - console.log("init 抖音 初始化...") + logger.log("init 抖音 初始化...") // 保持屏幕常亮 window["tt"].setKeepScreenOn({ keepScreenOn: true, @@ -92,14 +93,14 @@ export class ByteDanceSDK{ //小游戏回到前台 window['tt'].onShow((res)=>{ - console.log("抖音 小游戏回到前台->", res) + logger.log("抖音 小游戏回到前台->", res) if (!res) { return; } - // console.log("启动参数:", res.query); - // console.log("来源信息:", res.refererInfo); - // console.log("场景值:", res.scene); - // console.log("启动场景字段:", res.launch_from, ", ", res.location); + // logger.log("启动参数:", res.query); + // logger.log("来源信息:", res.refererInfo); + // logger.log("场景值:", res.scene); + // logger.log("启动场景字段:", res.launch_from, ", ", res.location); //返回小游戏场景值 if (res.query && res.query.ShareCode) { @@ -108,7 +109,7 @@ export class ByteDanceSDK{ //从侧边栏返回 if (res.launch_from == "homepage" && res.location == "sidebar_card") { - console.log("从侧边栏返回, SidebarState=", ByteDanceSDK._SidebarState) + logger.log("从侧边栏返回, SidebarState=", ByteDanceSDK._SidebarState) if (ByteDanceSDK._SidebarState == 1) { ByteDanceSDK._SidebarState = 2 Utils.sendInnerMsg(InnerMsgCode.UI_BD_Sidebar, {}) @@ -129,7 +130,7 @@ export class ByteDanceSDK{ if (this.ShareCb) { if (this.ShareSTime) { let nT = new Date().getTime(); - console.log("分享时间差 计算:",nT, this.ShareSTime); + logger.log("分享时间差 计算:",nT, this.ShareSTime); if (nT - this.ShareSTime > 1500) { let cb = this.ShareCb.succ cb && cb() @@ -144,7 +145,7 @@ export class ByteDanceSDK{ window['tt'].onHide(() => { if (this.ShareCb) { this.ShareSTime = new Date().getTime(); - console.log("分享时间差 记录:", this.ShareSTime); + logger.log("分享时间差 记录:", this.ShareSTime); } }); @@ -175,7 +176,7 @@ export class ByteDanceSDK{ window['tt'].authorize({ scope: autoKey, success(res:any) { - console.log("抖音 - 检测权限状态 succ:", JSON.stringify(res)) + logger.log("抖音 - 检测权限状态 succ:", JSON.stringify(res)) if (autoKey == "scope.userInfo" && res.data['scope.userInfo']) { cb && cb(true) } else { @@ -183,7 +184,7 @@ export class ByteDanceSDK{ } }, fail(res:any) { - console.log("抖音 - 检测权限状态 fail:",JSON.stringify(res)) + logger.log("抖音 - 检测权限状态 fail:",JSON.stringify(res)) cb && cb(false) } }) @@ -196,11 +197,11 @@ export class ByteDanceSDK{ window["tt"].getUserInfo({ force: false, //当宿主未登录时,是否强制拉起登录框 success(res) { - console.log("抖音 - 获取用户信息成功:", res); + logger.log("抖音 - 获取用户信息成功:", res); cb && cb({avatarUrl:res.userInfo.avatarUrl, nickName:res.userInfo.nickName}) //encryptedData }, fail(res) { - console.log("抖音 - 获取用户信息失败", res); + logger.log("抖音 - 获取用户信息失败", res); }, }) } @@ -211,11 +212,11 @@ export class ByteDanceSDK{ window["tt"].login({ force: false, //未登录时, 是否强制调起登录框 success(res) { - console.log(`抖音 - 登录成功 code=${res.code}, anonymousCode=${res.anonymousCode}`); + logger.log(`抖音 - 登录成功 code=${res.code}, anonymousCode=${res.anonymousCode}`); cb && cb({ platform:2, code: res.code }); }, fail(res) { - console.log(`抖音 - 登录失败`, res); + logger.log(`抖音 - 登录失败`, res); cb && cb({ platform:2, code: null }); }, }) @@ -223,7 +224,7 @@ export class ByteDanceSDK{ private init_banner() { if (AD_BANNER as any == "test") { - console.log("抖音 横幅广告id未配置,跳过此类型初始化") + logger.log("抖音 横幅广告id未配置,跳过此类型初始化") return } @@ -260,10 +261,10 @@ export class ByteDanceSDK{ // bd_banner // .show() // .then(() => { - // console.log("init_banner 广告显示成功"); + // logger.log("init_banner 广告显示成功"); // }) // .catch((err) => { - // console.log("init_banner 广告组件出现问题", err); + // logger.log("init_banner 广告组件出现问题", err); // }); // }) } @@ -275,7 +276,7 @@ export class ByteDanceSDK{ private preload_splash() { if (AD_SPLASH as any == "test") { - console.log("抖音 插屏广告id未配置,跳过此类型初始化") + logger.log("抖音 插屏广告id未配置,跳过此类型初始化") return } @@ -290,7 +291,7 @@ export class ByteDanceSDK{ this.bd_splash .load() .catch(err => { - console.log("preload_splash err:",err); + logger.log("preload_splash err:",err); }) } } @@ -312,14 +313,14 @@ export class ByteDanceSDK{ this.preload_splash() }) this.bd_splash.onError(function(err){ - console.log("bd_splash err:",err) + logger.log("bd_splash err:",err) }) } private init_video() { if (AD_AWARD as any == "test") { - console.log("抖音 激励广告id未配置,跳过此类型初始化") + logger.log("抖音 激励广告id未配置,跳过此类型初始化") return } @@ -346,7 +347,7 @@ export class ByteDanceSDK{ //显示视频广告 show_video(callback:Function, tag:number) { if (AD_AWARD as any == 'test') { - console.log('未接入广告ID,视频广告请求直接返回'); + logger.log('未接入广告ID,视频广告请求直接返回'); callback && callback(); SDKManager.video_ad_back(); return; @@ -374,10 +375,10 @@ export class ByteDanceSDK{ if (this.bd_splash && this.bd_splash['custom_load_stautus'] && !this.bd_splash['custom_show_stautus']) { this.bd_splash.show().then(() => { this.bd_splash['custom_show_stautus'] = true - console.log("插屏广告展示成功"); + logger.log("插屏广告展示成功"); }) } else { - console.log("插屏广告展示失败"); + logger.log("插屏广告展示失败"); this.preload_splash() } @@ -416,18 +417,18 @@ export class ByteDanceSDK{ //主动拉起分享 show_share(rewardCB?:Function) { // rewardCB && rewardCB() - console.log("主动拉起分享"); + logger.log("主动拉起分享"); let info:any = this.shareInfo(); info.succ = rewardCB; info.success = (res) => { - console.log("抖音 主动拉起分享成功", res); + logger.log("抖音 主动拉起分享成功", res); } info.fail = (err) => { - console.log("抖音 主动拉起分享失败", err); + logger.log("抖音 主动拉起分享失败", err); } // info.complete = (res) => { - // console.log("抖音 主动拉起分享完成", res); + // logger.log("抖音 主动拉起分享完成", res); // } this.ShareCb = info; @@ -471,23 +472,23 @@ export class ByteDanceSDK{ const fs = window['tt'].getFileSystemManager(); //1.删除上一个音频 const lastPath = window['tt'].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3` - console.log("抖音 正在删除上一个音频 ->", lastPath); + logger.log("抖音 正在删除上一个音频 ->", lastPath); fs.removeSavedFile({ filePath: lastPath, success(res) { - console.log("抖音 删除上一个音频成功", res); + logger.log("抖音 删除上一个音频成功", res); }, fail(err) { - console.log("抖音 删除上一个音频失败", err); + logger.log("抖音 删除上一个音频失败", err); }, complete(res) { - console.log("抖音 删除上一个音频完成", res); + logger.log("抖音 删除上一个音频完成", res); //2.保存当前音频 //这里需要每次保存时换一下名字的原因是:innerAudioContext设置路径时如果路径相同,会认为还是同一个音频,不会重新加载,所以需要每次保存时换一下名字 self._iacIdx++; const audioPath = window['tt'].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3` - console.log("抖音 正在保存本次音频 ->", audioPath); + logger.log("抖音 正在保存本次音频 ->", audioPath); fs.writeFile({ filePath: audioPath, data: substring, @@ -497,18 +498,18 @@ export class ByteDanceSDK{ self._innerAudioContext = window['tt'].createInnerAudioContext(); // 添加播放结束的回调 self._innerAudioContext.onEnded(() => { - console.log("抖音 AI语音播放结束") + logger.log("抖音 AI语音播放结束") self._innerAudioContext.stop(); // 使用 stop 方法停止音频并重置播放状态 self._innerAudioContext.destroy(); // 销毁音频实例 self._innerAudioContext = null; }); } - console.log("抖音 播放base64音频", audioPath) + logger.log("抖音 播放base64音频", audioPath) self._innerAudioContext.src = audioPath; self._innerAudioContext.play(); // 开始播放音频 }, fail(err) { - console.log("抖音 保存本次音频失败", err); + logger.log("抖音 保存本次音频失败", err); } }) } @@ -520,7 +521,7 @@ export class ByteDanceSDK{ //微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试 qiangzhiUpdata() { if (window['tt'].getUpdateManager == null) { - console.log("抖音 没有更新管理器", window['tt'].getUpdateManager) + logger.log("抖音 没有更新管理器", window['tt'].getUpdateManager) return; } @@ -529,7 +530,7 @@ export class ByteDanceSDK{ //监听向微信后台请求检查更新结果事件。微信在小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。 updateManager.onCheckForUpdate((res) => { // 请求完新版本信息的回调 - console.log("抖音 检查是否有新版本:", res.hasUpdate) + logger.log("抖音 检查是否有新版本:", res.hasUpdate) }); //监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调 @@ -548,19 +549,19 @@ export class ByteDanceSDK{ //监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)时回调 updateManager.onUpdateFailed(function (err) { - console.log("抖音 新版本下载失败", err) + logger.log("抖音 新版本下载失败", err) }) } //客服功能是否支持 kefuSupport() { - console.log("抖音 不支持联系客服") + logger.log("抖音 不支持联系客服") return false; } //进入联系客服 openKefu() { - console.log("抖音 进入联系客服") + logger.log("抖音 进入联系客服") } @@ -573,15 +574,15 @@ export class ByteDanceSDK{ //region 复制到剪贴板 /**复制文本到剪贴板 */ copyToClipboard(text: string, cb?: Function) { - console.log("抖音 复制到剪贴板:", text); + logger.log("抖音 复制到剪贴板:", text); window['tt'].setClipboardData({ data: text, success: () => { - console.log("抖音 复制成功"); + logger.log("抖音 复制成功"); cb && cb(true); }, fail: (err) => { - console.log("抖音 复制失败:", err); + logger.log("抖音 复制失败:", err); cb && cb(false); } }); diff --git a/assets/Scripts/Main/Channel/ksSDK.ts b/assets/Scripts/Main/Channel/ksSDK.ts index 85df3766..b12c47f3 100644 --- a/assets/Scripts/Main/Channel/ksSDK.ts +++ b/assets/Scripts/Main/Channel/ksSDK.ts @@ -6,6 +6,7 @@ import Utils from "../Common/Utils"; import { InnerMsgCode } from "../Config/InnerMsgCode"; import { BgVideo } from "./BgVideo"; import { SceneBgVideoLayer } from "../../Sub/UI/SceneBgVideoLayer"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; //广告ID const wx_banner_ad_unit_id = 'test' @@ -35,7 +36,7 @@ export class KSSDK{ //获取小游戏冷启动时的参数 热启动参数通过 ks.onShow 接口获取。 let launchOption = window['ks'].getLaunchOptionsSync(); KSSDK.g_InGameScene = launchOption.from; - console.log('init 快手 - 进入游戏的场景值', launchOption); + logger.log('init 快手 - 进入游戏的场景值', launchOption); // //显示分享按钮 // window['ks'].showShareMenu({ @@ -53,10 +54,10 @@ export class KSSDK{ window['ks'].onShow(this.onWxShow.bind(this)); //小游戏被隐藏 记个时间 window['ks'].onHide(() => { - console.log("快手 onHide回调:") + logger.log("快手 onHide回调:") if (this.ShareCb) { this.ShareSTime = new Date().getTime(); - console.log("分享时间差 记录:", this.ShareSTime); + logger.log("分享时间差 记录:", this.ShareSTime); } }); @@ -70,7 +71,7 @@ export class KSSDK{ //小游戏回到前台 onWxShow(data: any) { - console.log("快手 onShow回调:", data) + logger.log("快手 onShow回调:", data) if (data) { //启动小游戏时传入的参数 object if (data.query) { @@ -85,7 +86,7 @@ export class KSSDK{ if (this.ShareCb) { if (this.ShareSTime) { let nT = new Date().getTime(); - console.log("分享时间差 计算:",nT, this.ShareSTime, nT - this.ShareSTime); + logger.log("分享时间差 计算:",nT, this.ShareSTime, nT - this.ShareSTime); if (nT - this.ShareSTime > 1) { //快手的onHide有问题,离onShow很近 let cb = this.ShareCb.succ cb && cb() @@ -113,7 +114,7 @@ export class KSSDK{ checkAutoSetting(autoKey:string, cb:Function = null) { window['ks'].getSetting({ success(res:any) { - console.log("快手 - 检测权限状态 succ:", res) + logger.log("快手 - 检测权限状态 succ:", res) if (autoKey == "userInfo" && res.authSetting['scope.userInfo']) { cb && cb(true) } else { @@ -121,7 +122,7 @@ export class KSSDK{ } }, fail(res:any) { - console.log("快手 - 检测权限状态 fail:", res) + logger.log("快手 - 检测权限状态 fail:", res) cb && cb(false) } }) @@ -134,16 +135,16 @@ export class KSSDK{ var self = this; window['ks'].getSetting({ success(res:any) { - console.log("快手 - 获取授权信息成功:", res); + logger.log("快手 - 获取授权信息成功:", res); let isScope = res.authSetting['scope.userInfo'] if (isScope) { window['ks'].getUserInfo({ success: (res2) => { - console.log("快手 - 获取用户信息成功:", res2); + logger.log("快手 - 获取用户信息成功:", res2); cb && cb({avatarUrl:res2.userInfo.avatarUrl, nickName:res2.userInfo.nickName}) }, fail: (error) => { - console.log("快手 - 获取用户信息失败:", error); + logger.log("快手 - 获取用户信息失败:", error); } }) } else { @@ -151,17 +152,17 @@ export class KSSDK{ window['ks'].authorize({ scope: 'scope.userInfo', success: (res) => { - console.log("快手 - 发起授权请求成功:", res); + logger.log("快手 - 发起授权请求成功:", res); self.getUserInfo(cb) }, fail: (error) => { - console.log("快手 - 发起授权请求失败: ", error); + logger.log("快手 - 发起授权请求失败: ", error); } }) } }, fail: (error) => { - console.log("快手 - 获取授权信息失败: ", error); + logger.log("快手 - 获取授权信息失败: ", error); // cb && cb({avatarUrl:"", nickName:""}) } }) @@ -172,11 +173,11 @@ export class KSSDK{ login(cb: Function = null) { window['ks'].login({ success: (res) => { - console.log('快手 - 登录成功', res.code); + logger.log('快手 - 登录成功', res.code); cb && cb({ platform:3, code: res.code }); }, fail(res: any) { - console.log(`快手 login 调用失败`, res); + logger.log(`快手 login 调用失败`, res); cb && cb({ platform:3, code: null }); }, }); @@ -185,7 +186,7 @@ export class KSSDK{ //初始化视频广告 private init_video() { if (wx_video_ad_unit_id as any == "test") { - console.log("快手 激励广告id未配置,跳过此类型初始化") + logger.log("快手 激励广告id未配置,跳过此类型初始化") return } @@ -193,10 +194,10 @@ export class KSSDK{ adUnitId: wx_video_ad_unit_id }); this.wx_video.onError((err) => { - console.log('onError event emit', err); + logger.log('onError event emit', err); }); this.wx_video.onClose(res => { - console.log('onClose event emit',res); + logger.log('onClose event emit',res); // 用户点击了【关闭广告】按钮 // 小于 2.1.0 的基础库版本,res 是一个 undefined if ((res && res.isEnded) || res === undefined) { @@ -217,7 +218,7 @@ export class KSSDK{ //初始化插屏广告 private init_splash() { if (wx_splash_ad_unit_id as any == "test") { - console.log("快手 插屏广告id未配置,跳过此类型初始化") + logger.log("快手 插屏广告id未配置,跳过此类型初始化") return } @@ -227,10 +228,10 @@ export class KSSDK{ adUnitId: wx_splash_ad_unit_id }); this.wx_splash.onError((err) => { - console.log('splash onError event emit', err); + logger.log('splash onError event emit', err); }); this.wx_splash.onClose(res => { - console.log('splash onClose event emit', res); + logger.log('splash onClose event emit', res); }); } } @@ -238,7 +239,7 @@ export class KSSDK{ //初始化Banner private init_banner() { if (wx_banner_ad_unit_id as any == "test") { - console.log("快手 横幅广告id未配置,跳过此类型初始化") + logger.log("快手 横幅广告id未配置,跳过此类型初始化") return } @@ -247,7 +248,7 @@ export class KSSDK{ //显示视频广告 show_video(callback:Function, tag:number) { if (wx_video_ad_unit_id == 'test') { - console.log('未接入广告ID,视频广告请求直接返回'); + logger.log('未接入广告ID,视频广告请求直接返回'); callback && callback(); SDKManager.video_ad_back(); return; @@ -258,10 +259,10 @@ export class KSSDK{ let p = this.wx_video.show() p.then(function(result){ // 激励视频展示成功 - console.log(`快手 show rewarded video ad success, result is ${result}`) + logger.log(`快手 show rewarded video ad success, result is ${result}`) }).catch(function(error){ // 激励视频展示失败 - console.log(`快手 show rewarded video ad failed, error is ${error}`) + logger.log(`快手 show rewarded video ad failed, error is ${error}`) }) // this.wx_video.load() @@ -282,10 +283,10 @@ export class KSSDK{ let p = this.wx_splash.show() p.then(function(result){ // 插屏广告展示成功 - console.log(`快手 show interstitial ad success, result is ${result}`) + logger.log(`快手 show interstitial ad success, result is ${result}`) }).catch(function(error){ // 插屏广告展示失败 - console.log(`快手 show interstitial ad failed, error is ${error}`) + logger.log(`快手 show interstitial ad failed, error is ${error}`) if (error.code === -10005) { // 表明当前app版本不支持插屏广告,可以提醒用户升级app版本 } @@ -319,7 +320,7 @@ export class KSSDK{ } //主动拉起分享 show_share(rewardCB?:Function) { - console.log("主动拉起分享"); + logger.log("主动拉起分享"); let info:any = this.shareInfo(); info.succ = rewardCB; info.success = null; @@ -337,13 +338,13 @@ export class KSSDK{ //显示游戏圈 show_gameClub(leftRatio, topRatio, widthRatio, heightRatio) { if (true) { - console.log("显示游戏圈,快手暂不支持"); + logger.log("显示游戏圈,快手暂不支持"); return } } //隐藏游戏圈 hide_gameClub() { - console.log("隐藏游戏圈"); + logger.log("隐藏游戏圈"); if (this.wx_gameClub) { this.wx_gameClub.hide(); } @@ -359,7 +360,7 @@ export class KSSDK{ private _iacIdx = 0 //音频播放索引 playBase64Audio(base64, loop) { if (!this.checkSupportBase64Audio()) { - console.log("当前平台不支持base64音频播放"); + logger.log("当前平台不支持base64音频播放"); return; } @@ -373,23 +374,23 @@ export class KSSDK{ const fs = window['ks'].getFileSystemManager(); //1.删除上一个音频 const lastPath = window['ks'].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3` - console.log("快手 正在删除上一个音频 ->", lastPath); + logger.log("快手 正在删除上一个音频 ->", lastPath); fs.removeSavedFile({ filePath: lastPath, success(res) { - console.log("快手 删除上一个音频成功", res); + logger.log("快手 删除上一个音频成功", res); }, fail(err) { - console.log("快手 删除上一个音频失败", err); + logger.log("快手 删除上一个音频失败", err); }, complete(res) { - console.log("快手 删除上一个音频完成", res); + logger.log("快手 删除上一个音频完成", res); //2.保存当前音频 //这里需要每次保存时换一下名字的原因是:innerAudioContext设置路径时如果路径相同,会认为还是同一个音频,不会重新加载,所以需要每次保存时换一下名字 self._iacIdx++; const audioPath = window['ks'].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3` - console.log("快手 正在保存本次音频 ->", audioPath); + logger.log("快手 正在保存本次音频 ->", audioPath); fs.writeFile({ filePath: audioPath, data: substring, @@ -399,18 +400,18 @@ export class KSSDK{ self._innerAudioContext = window['ks'].createInnerAudioContext(); // 添加播放结束的回调 self._innerAudioContext.onEnded(() => { - console.log("快手 AI语音播放结束") + logger.log("快手 AI语音播放结束") self._innerAudioContext.stop(); // 使用 stop 方法停止音频并重置播放状态 self._innerAudioContext.destroy(); // 销毁音频实例 self._innerAudioContext = null; }); } - console.log("快手 播放base64音频", audioPath) + logger.log("快手 播放base64音频", audioPath) self._innerAudioContext.src = audioPath; self._innerAudioContext.play(); // 开始播放音频 }, fail(err) { - console.log("快手 保存本次音频失败", err); + logger.log("快手 保存本次音频失败", err); } }) } @@ -423,7 +424,7 @@ export class KSSDK{ //微信开发者工具上可以通过「编译模式」下的「下次编译模拟更新」开关来调试 qiangzhiUpdata() { if (window['ks'].getUpdateManager == null) { - console.log("快手 没有更新管理器", window['ks'].getUpdateManager) + logger.log("快手 没有更新管理器", window['ks'].getUpdateManager) return; } @@ -432,7 +433,7 @@ export class KSSDK{ //监听向微信后台请求检查更新结果事件。微信在小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。 updateManager.onCheckForUpdate((res) => { // 请求完新版本信息的回调 - console.log("快手 检查是否有新版本:", res.hasUpdate) + logger.log("快手 检查是否有新版本:", res.hasUpdate) }); //监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调 @@ -449,19 +450,19 @@ export class KSSDK{ //监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)时回调 updateManager.onUpdateFailed(function (err) { - console.log("快手 新版本下载失败", err) + logger.log("快手 新版本下载失败", err) }) } //客服功能是否支持 kefuSupport() { - console.log("快手 不支持联系客服") + logger.log("快手 不支持联系客服") return false; } //进入联系客服 openKefu() { - console.log("快手 进入联系客服") + logger.log("快手 进入联系客服") } @@ -471,7 +472,7 @@ export class KSSDK{ private curPlayType: VideoRoleType = VideoRoleType.None //当前播放的视频的类型 playBgAudio(remoteUrl:string, vtype:VideoRoleType, loop:boolean = false, extra:any = {}) { if (!window['ks'].createVideo) { - console.log("快手 不支持播放视频") + logger.log("快手 不支持播放视频") return } if (this._bgVideo && this._bgShow) { @@ -479,18 +480,18 @@ export class KSSDK{ return } let self = this; - console.log("微信 播放背景视频组件1", remoteUrl); + logger.log("微信 播放背景视频组件1", remoteUrl); this.curPlayType = vtype if (!this._bgVideo) { this._bgVideo = this.createVideoHandle(); // this._bgVideo.onPlay(() => { - // console.log("微信 背景视频播放开始"); + // logger.log("微信 背景视频播放开始"); // }) this._bgVideo.onTimeUpdate((_tinfo:any) =>{ - // console.log("微信 背景视频播放进度", self._bgShow, _tinfo); + // logger.log("微信 背景视频播放进度", self._bgShow, _tinfo); if (!self._bgShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 背景视频1进入视野"); + logger.log("微信 背景视频1进入视野"); self.videoMoveIn(self._bgVideo) self._bgShow = true; self.removeBgAudioNext() @@ -521,19 +522,19 @@ export class KSSDK{ private _bgTempShow: boolean = false; playBgAudioNext(remoteUrl:string, vtype:VideoRoleType, loop:boolean = false, extra:any = {}) { this.removeBgAudioNext(); - console.log("微信 创建背景视频组件2--->", remoteUrl); + logger.log("微信 创建背景视频组件2--->", remoteUrl); this.curPlayType = vtype let self = this; if (!this._bgTempVideo) { this._bgTempVideo = this.createVideoHandle(); // this._bgTempVideo.onPlay(() => { - // console.log("微信 临时背景视频播放开始"); + // logger.log("微信 临时背景视频播放开始"); // }) this._bgTempVideo.onTimeUpdate((_tinfo:any) =>{ - // console.log("微信 临时背景视频播放进度", self._bgTempShow, _tinfo); + // logger.log("微信 临时背景视频播放进度", self._bgTempShow, _tinfo); if (!self._bgTempShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 背景视频2进入视野"); + logger.log("微信 背景视频2进入视野"); self._bgTempShow = true; self.videoMoveIn(self._bgTempVideo) self.removeBgAudio() @@ -569,18 +570,18 @@ export class KSSDK{ return } let self = this; - console.log("微信 播放emo视频1", remoteUrl); + logger.log("微信 播放emo视频1", remoteUrl); this.curPlayType = vtype if (!this._emoVideo) { this._emoVideo = this.createVideoHandle(); // this._emoVideo.onPlay(() => { - // console.log("微信 背景视频播放开始"); + // logger.log("微信 背景视频播放开始"); // }) this._emoVideo.onTimeUpdate((_tinfo:any) =>{ - // console.log("微信 背景视频播放进度", self._emoShow, _tinfo); + // logger.log("微信 背景视频播放进度", self._emoShow, _tinfo); if (!self._emoShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 emo视频1准备好了"); + logger.log("微信 emo视频1准备好了"); self._emoShow = true; self.removeEmoAudioNext() self.setEmoReadyAudio(self._emoVideo) @@ -610,19 +611,19 @@ export class KSSDK{ private _emoTempShow: boolean = false; playEmoAudioNext(remoteUrl:string, vtype:VideoRoleType, loop:boolean = false, extra:any = {}) { this.removeEmoAudioNext(); - console.log("微信 播放emo视频2--->", remoteUrl); + logger.log("微信 播放emo视频2--->", remoteUrl); this.curPlayType = vtype let self = this; if (!this._emoTempVideo) { this._emoTempVideo = this.createVideoHandle(); // this._emoTempVideo.onPlay(() => { - // console.log("微信 临时背景视频播放开始"); + // logger.log("微信 临时背景视频播放开始"); // }) this._emoTempVideo.onTimeUpdate((_tinfo:any) =>{ - // console.log("微信 临时背景视频播放进度", self._emoTempShow, _tinfo); + // logger.log("微信 临时背景视频播放进度", self._emoTempShow, _tinfo); if (!self._emoTempShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 emo视频2已准备好"); + logger.log("微信 emo视频2已准备好"); self._emoTempShow = true; self.removeEmoAudio() self.setEmoReadyAudio(self._emoTempVideo) @@ -706,19 +707,19 @@ export class KSSDK{ this.videoAdaInfo.x = -(this.videoWidth * ratioh - size.width) / 2 this.videoAdaInfo.y = 0 } - console.log("微信 视频适配信息", this.videoAdaInfo, size) + logger.log("微信 视频适配信息", this.videoAdaInfo, size) return this.videoAdaInfo } //设置暂停播放的主视频 private vpWait: any = null; setBgAudioPause(wait:any) { - console.log("微信 主视频暂停播放") + logger.log("微信 主视频暂停播放") this.vpWait = wait this.vpWait.pause() } replayBgAudioPause() { - console.log("微信 主视频继续播放") + logger.log("微信 主视频继续播放") if (this.vpWait) { this.vpWait.play() } @@ -727,7 +728,7 @@ export class KSSDK{ //设置准备好要播放的表情视频 private emoReady: any = null; setEmoReadyAudio(au: any) { - console.log("微信 设置emo ready视频") + logger.log("微信 设置emo ready视频") if (this.emoReady) { this.emoReady.stop() this.videoMoveOut(this.emoReady) @@ -737,7 +738,7 @@ export class KSSDK{ } //移除准备好要播放的表情视频 removeEmoReadyAudio() { - console.log("微信 移除emo ready视频") + logger.log("微信 移除emo ready视频") if (this.emoReady) { this.emoReady.stop() this.videoMoveOut(this.emoReady) @@ -747,7 +748,7 @@ export class KSSDK{ //播放准备好要播放的表情视频 doPlayEmoReadyAudio():boolean { if (this.emoReady) { - console.log("微信 播放emo ready视频") + logger.log("微信 播放emo ready视频") this.emoReady.play() this.videoMoveIn(this.emoReady) return true @@ -756,7 +757,7 @@ export class KSSDK{ } //表情视频播放结束 doEmoFinish() { - console.log("微信emo ready视频播放结束") + logger.log("微信emo ready视频播放结束") this.removeEmoReadyAudio() this.replayBgAudioPause() } @@ -764,15 +765,15 @@ export class KSSDK{ //region 复制到剪贴板 /**复制文本到剪贴板 */ copyToClipboard(text: string, cb?: Function) { - console.log("快手 复制到剪贴板:", text); + logger.log("快手 复制到剪贴板:", text); window['ks'].setClipboardData({ data: text, success: () => { - console.log("快手 复制成功"); + logger.log("快手 复制成功"); cb && cb(true); }, fail: (err) => { - console.log("快手 复制失败:", err); + logger.log("快手 复制失败:", err); cb && cb(false); } }); diff --git a/assets/Scripts/Main/Channel/luffaSDK.ts b/assets/Scripts/Main/Channel/luffaSDK.ts index 20179ea8..0622497d 100644 --- a/assets/Scripts/Main/Channel/luffaSDK.ts +++ b/assets/Scripts/Main/Channel/luffaSDK.ts @@ -5,6 +5,7 @@ import { I_SDK_UserInfo_Callback, SDKManager } from "./SDKManager"; import Utils from "../Common/Utils"; import uma from "../../../utils/uma.wx.min.js"; import { InnerMsgCode } from "../Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; //广告ID const wx_banner_ad_unit_id = "test"; @@ -35,7 +36,7 @@ export class luffaSDK { // 保持屏幕常亮 window["wx"].setKeepScreenOn({ keepScreenOn: true }); luffaSDK.g_InGameScene = window["wx"].getLaunchOptionsSync().scene; - console.log("init luffa - 进入游戏的场景值", luffaSDK.g_InGameScene); + logger.log("init luffa - 进入游戏的场景值", luffaSDK.g_InGameScene); //this.init_video(); //初始化视频广告 //this.init_splash(); //初始化插屏广告 @@ -50,7 +51,7 @@ export class luffaSDK { checkAutoSetting(autoKey: string, cb: Function = null) { window["wx"].getSetting({ success(res: any) { - console.log("微信 - 检测权限状态 succ:", JSON.stringify(res)); + logger.log("微信 - 检测权限状态 succ:", JSON.stringify(res)); if (autoKey == "userInfo" && res.authSetting["scope.userInfo"]) { cb && cb(true); } else { @@ -58,7 +59,7 @@ export class luffaSDK { } }, fail(res: any) { - console.log("微信 - 检测权限状态 fail:", JSON.stringify(res)); + logger.log("微信 - 检测权限状态 fail:", JSON.stringify(res)); cb && cb(false); }, }); @@ -68,11 +69,11 @@ export class luffaSDK { * 获取个人信息 */ getUserInfo(cb: I_SDK_UserInfo_Callback = null) { - console.log("微信 - 正在获取用户信息..."); + logger.log("微信 - 正在获取用户信息..."); var self = this; window["wx"].getUserInfo({ success: (res) => { - console.log("微信 - 获取用户信息成功:", res); + logger.log("微信 - 获取用户信息成功:", res); cb && cb({ avatarUrl: res.userInfo.avatarUrl, @@ -80,7 +81,7 @@ export class luffaSDK { }); }, fail: (err) => { - console.log("微信 - 获取用户信息失败:", err); + logger.log("微信 - 获取用户信息失败:", err); self.openUserAuthorize(cb); }, }); @@ -91,7 +92,7 @@ export class luffaSDK { window["wx"].getSetting({ scope: "scope.userInfo", success(res: any) { - console.log("微信 authorize succ:", JSON.stringify(res)); + logger.log("微信 authorize succ:", JSON.stringify(res)); if (res.authSetting["scope.userInfo"]) { self.getUserInfo(cb); @@ -110,21 +111,21 @@ export class luffaSDK { textAlign: "center", }, }); - console.log("微信 点击开始游戏授权用户信息"); + logger.log("微信 点击开始游戏授权用户信息"); button.onTap((res) => { button.destroy(); // if (res.userInfo) { - // console.log(res.userInfo) + // logger.log(res.userInfo) // //此时可进行登录操作 // cb && cb(res.userInfo) // } - console.log("微信 点击Tap", res); + logger.log("微信 点击Tap", res); self.getUserInfo(cb); }); } }, fail(err) { - console.log("微信 - authorize fail", err); + logger.log("微信 - authorize fail", err); }, }); } @@ -134,16 +135,16 @@ export class luffaSDK { window["wx"].login({ success: (res) => { if (res.code) { - console.log("微信 - 登录成功", res.code); + logger.log("微信 - 登录成功", res.code); cb && cb({ platform: 1, code: res.code }); } else { - console.log("微信 - 登录失败", res.errMsg); + logger.log("微信 - 登录失败", res.errMsg); cb && cb({ platform: 1, code: null }); } }, fail(res: any) { - console.log(`微信 login 调用失败`); - console.log(res.anonymousCode); + logger.log(`微信 login 调用失败`); + logger.log(res.anonymousCode); cb && cb({ platform: 1, code: null }); }, }); @@ -152,7 +153,7 @@ export class luffaSDK { //初始化视频广告 private init_video() { if ((wx_video_ad_unit_id as any) == "test") { - console.log("微信 激励广告id未配置,跳过此类型初始化"); + logger.log("微信 激励广告id未配置,跳过此类型初始化"); return; } @@ -161,13 +162,13 @@ export class luffaSDK { disableFallbackSharePage: true, // 是否禁用分享页,默认为false }); this.wx_video.onLoad(() => { - console.log("onLoad event emit"); + logger.log("onLoad event emit"); }); this.wx_video.onError((err) => { - console.log("onError event emit", err); + logger.log("onError event emit", err); }); this.wx_video.onClose((res) => { - console.log("onClose event emit", res); + logger.log("onClose event emit", res); // 用户点击了【关闭广告】按钮 // 小于 2.1.0 的基础库版本,res 是一个 undefined if ((res && res.isEnded) || res === undefined) { @@ -186,7 +187,7 @@ export class luffaSDK { //初始化插屏广告 private init_splash() { if ((wx_splash_ad_unit_id as any) == "test") { - console.log("微信 插屏广告id未配置,跳过此类型初始化"); + logger.log("微信 插屏广告id未配置,跳过此类型初始化"); return; } // 创建插屏广告实例,提前初始化 @@ -195,13 +196,13 @@ export class luffaSDK { adUnitId: wx_splash_ad_unit_id, }); this.wx_splash.onLoad(() => { - console.log("splash onLoad event emit"); + logger.log("splash onLoad event emit"); }); this.wx_splash.onError((err) => { - console.log("splash onError event emit", err); + logger.log("splash onError event emit", err); }); this.wx_splash.onClose((res) => { - console.log("splash onClose event emit", res); + logger.log("splash onClose event emit", res); }); } } @@ -209,7 +210,7 @@ export class luffaSDK { //初始化Banner private init_banner() { if ((wx_banner_ad_unit_id as any) == "test") { - console.log("微信 横幅广告id未配置,跳过此类型初始化"); + logger.log("微信 横幅广告id未配置,跳过此类型初始化"); return; } let winSize = window["wx"].getSystemInfoSync(); @@ -237,7 +238,7 @@ export class luffaSDK { //显示视频广告 show_video(callback: Function, tag: number) { if ((wx_video_ad_unit_id as any) == "test") { - console.log("未接入广告ID,视频广告请求直接返回"); + logger.log("未接入广告ID,视频广告请求直接返回"); callback && callback(); SDKManager.video_ad_back(); return; @@ -271,7 +272,7 @@ export class luffaSDK { this.wx_splash.show(); }) .catch((err) => { - console.log(err); + logger.log(err); }); } } @@ -385,7 +386,7 @@ export class luffaSDK { let picmap = this.SharePicAry[rand1]; let rand2 = Utils.getRandomInt(0, this.ShareTextAry.length - 1); let text = this.ShareTextAry[rand2]; - console.log("分享:", rand1, rand2); + logger.log("分享:", rand1, rand2); return { title: text, query: "ShareCode=" + "user_default", //ModelPlayer.I.getPlayerId(), @@ -395,7 +396,7 @@ export class luffaSDK { } //主动拉起分享 show_share(rewardCB?: Function) { - console.log("主动拉起分享"); + logger.log("主动拉起分享"); let info: any = this.shareInfo(); info.succ = rewardCB; info.fail = null; @@ -411,7 +412,7 @@ export class luffaSDK { //显示游戏圈 show_gameClub(leftRatio, topRatio, widthRatio, heightRatio) { - console.log("显示游戏圈"); + logger.log("显示游戏圈"); if (this.wx_gameClub) { this.wx_gameClub.show(); } else { @@ -421,7 +422,7 @@ export class luffaSDK { let w = windowinfo.screenWidth * widthRatio; //按钮宽高 let h = windowinfo.screenHeight * heightRatio; - console.log( + logger.log( "游戏圈按钮配置:", windowinfo, leftRatio, @@ -449,7 +450,7 @@ export class luffaSDK { } //隐藏游戏圈 hide_gameClub() { - console.log("隐藏游戏圈"); + logger.log("隐藏游戏圈"); if (this.wx_gameClub) { this.wx_gameClub.hide(); } @@ -465,7 +466,7 @@ export class luffaSDK { private _iacIdx = 0; //音频播放索引 playBase64Audio(base64, loop) { if (!this.checkSupportBase64Audio()) { - console.log("微信平台不支持base64音频播放"); + logger.log("微信平台不支持base64音频播放"); return; } @@ -480,24 +481,24 @@ export class luffaSDK { //1.删除上一个音频 const lastPath = window["wx"].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3`; - console.log("微信 正在删除上一个音频 ->", lastPath); + logger.log("微信 正在删除上一个音频 ->", lastPath); fs.removeSavedFile({ filePath: lastPath, success(res) { - console.log("微信 删除上一个音频成功", res); + logger.log("微信 删除上一个音频成功", res); }, fail(err) { - console.log("微信 删除上一个音频失败", err); + logger.log("微信 删除上一个音频失败", err); }, complete(res) { - console.log("微信 删除上一个音频完成", res); + logger.log("微信 删除上一个音频完成", res); //2.保存当前音频 //这里需要每次保存时换一下名字的原因是:innerAudioContext设置路径时如果路径相同,会认为还是同一个音频,不会重新加载,所以需要每次保存时换一下名字 self._iacIdx++; const audioPath = window["wx"].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3`; - console.log("微信 正在保存本次音频 ->", audioPath); + logger.log("微信 正在保存本次音频 ->", audioPath); fs.writeFile({ filePath: audioPath, data: substring, @@ -507,18 +508,18 @@ export class luffaSDK { self._innerAudioContext = window["wx"].createInnerAudioContext(); // 添加播放结束的回调 self._innerAudioContext.onEnded(() => { - console.log("微信 AI语音播放结束"); + logger.log("微信 AI语音播放结束"); self._innerAudioContext.stop(); // 使用 stop 方法停止音频并重置播放状态 self._innerAudioContext.destroy(); // 销毁音频实例 self._innerAudioContext = null; }); } - console.log("微信 播放base64音频", audioPath); + logger.log("微信 播放base64音频", audioPath); self._innerAudioContext.src = audioPath; self._innerAudioContext.play(); // 开始播放音频 }, fail(err) { - console.log("微信 保存本次音频失败", err); + logger.log("微信 保存本次音频失败", err); }, }); }, @@ -533,7 +534,7 @@ export class luffaSDK { //监听向微信后台请求检查更新结果事件。微信在小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。 updateManager.onCheckForUpdate((res) => { // 请求完新版本信息的回调 - console.log("微信 检查是否有新版本:", res.hasUpdate); + logger.log("微信 检查是否有新版本:", res.hasUpdate); }); //监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调 @@ -552,7 +553,7 @@ export class luffaSDK { //监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)时回调 updateManager.onUpdateFailed(function (err) { - console.log("微信 新版本下载失败", err); + logger.log("微信 新版本下载失败", err); }); } @@ -561,7 +562,7 @@ export class luffaSDK { if (window["wx"].openCustomerServiceConversation) { return true; } - console.log("微信 不支持联系客服"); + logger.log("微信 不支持联系客服"); return false; } //进入联系客服 @@ -574,10 +575,10 @@ export class luffaSDK { wx.openCustomerServiceConversation({ success: (res) => { const { path, query } = res; - console.log("微信 进入客服成功", path, query); + logger.log("微信 进入客服成功", path, query); }, fail: (res) => { - console.log("微信 进入客服失败", res); + logger.log("微信 进入客服失败", res); }, }); } @@ -598,18 +599,18 @@ export class luffaSDK { return; } let self = this; - console.log("微信 播放背景视频组件1", remoteUrl); + logger.log("微信 播放背景视频组件1", remoteUrl); this.curPlayType = vtype; if (!this._bgVideo) { this._bgVideo = this.createVideoHandle(); // this._bgVideo.onPlay(() => { - // console.log("微信 背景视频播放开始"); + // logger.log("微信 背景视频播放开始"); // }) this._bgVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 背景视频播放进度", self._bgShow, _tinfo); + // logger.log("微信 背景视频播放进度", self._bgShow, _tinfo); if (!self._bgShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 背景视频1进入视野"); + logger.log("微信 背景视频1进入视野"); self.videoMoveIn(self._bgVideo); self._bgShow = true; self.removeBgAudioNext(); @@ -645,19 +646,19 @@ export class luffaSDK { extra: any = {} ) { this.removeBgAudioNext(); - console.log("微信 创建背景视频组件2--->", remoteUrl); + logger.log("微信 创建背景视频组件2--->", remoteUrl); this.curPlayType = vtype; let self = this; if (!this._bgTempVideo) { this._bgTempVideo = this.createVideoHandle(); // this._bgTempVideo.onPlay(() => { - // console.log("微信 临时背景视频播放开始"); + // logger.log("微信 临时背景视频播放开始"); // }) this._bgTempVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 临时背景视频播放进度", self._bgTempShow, _tinfo); + // logger.log("微信 临时背景视频播放进度", self._bgTempShow, _tinfo); if (!self._bgTempShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 背景视频2进入视野"); + logger.log("微信 背景视频2进入视野"); self._bgTempShow = true; self.videoMoveIn(self._bgTempVideo); self.removeBgAudio(); @@ -698,18 +699,18 @@ export class luffaSDK { return; } let self = this; - console.log("微信 播放emo视频1", remoteUrl); + logger.log("微信 播放emo视频1", remoteUrl); this.curPlayType = vtype; if (!this._emoVideo) { this._emoVideo = this.createVideoHandle(); // this._emoVideo.onPlay(() => { - // console.log("微信 背景视频播放开始"); + // logger.log("微信 背景视频播放开始"); // }) this._emoVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 背景视频播放进度", self._emoShow, _tinfo); + // logger.log("微信 背景视频播放进度", self._emoShow, _tinfo); if (!self._emoShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 emo视频1准备好了"); + logger.log("微信 emo视频1准备好了"); self._emoShow = true; self.removeEmoAudioNext(); self.setEmoReadyAudio(self._emoVideo); @@ -744,19 +745,19 @@ export class luffaSDK { extra: any = {} ) { this.removeEmoAudioNext(); - console.log("微信 播放emo视频2--->", remoteUrl); + logger.log("微信 播放emo视频2--->", remoteUrl); this.curPlayType = vtype; let self = this; if (!this._emoTempVideo) { this._emoTempVideo = this.createVideoHandle(); // this._emoTempVideo.onPlay(() => { - // console.log("微信 临时背景视频播放开始"); + // logger.log("微信 临时背景视频播放开始"); // }) this._emoTempVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 临时背景视频播放进度", self._emoTempShow, _tinfo); + // logger.log("微信 临时背景视频播放进度", self._emoTempShow, _tinfo); if (!self._emoTempShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 emo视频2已准备好"); + logger.log("微信 emo视频2已准备好"); self._emoTempShow = true; self.removeEmoAudio(); self.setEmoReadyAudio(self._emoTempVideo); @@ -839,19 +840,19 @@ export class luffaSDK { this.videoAdaInfo.x = -(this.videoWidth * ratioh - size.width) / 2; this.videoAdaInfo.y = 0; } - console.log("微信 视频适配信息", this.videoAdaInfo, size); + logger.log("微信 视频适配信息", this.videoAdaInfo, size); return this.videoAdaInfo; } //设置暂停播放的主视频 private vpWait: any = null; setBgAudioPause(wait: any) { - console.log("微信 主视频暂停播放"); + logger.log("微信 主视频暂停播放"); this.vpWait = wait; this.vpWait.pause(); } replayBgAudioPause() { - console.log("微信 主视频继续播放"); + logger.log("微信 主视频继续播放"); if (this.vpWait) { this.vpWait.play(); } @@ -860,7 +861,7 @@ export class luffaSDK { //设置准备好要播放的表情视频 private emoReady: any = null; setEmoReadyAudio(au: any) { - console.log("微信 设置emo ready视频"); + logger.log("微信 设置emo ready视频"); if (this.emoReady) { this.emoReady.stop(); this.videoMoveOut(this.emoReady); @@ -870,7 +871,7 @@ export class luffaSDK { } //移除准备好要播放的表情视频 removeEmoReadyAudio() { - console.log("微信 移除emo ready视频"); + logger.log("微信 移除emo ready视频"); if (this.emoReady) { this.emoReady.stop(); this.videoMoveOut(this.emoReady); @@ -880,7 +881,7 @@ export class luffaSDK { //播放准备好要播放的表情视频 doPlayEmoReadyAudio(): boolean { if (this.emoReady) { - console.log("微信 播放emo ready视频"); + logger.log("微信 播放emo ready视频"); this.emoReady.play(); this.videoMoveIn(this.emoReady); return true; @@ -889,7 +890,7 @@ export class luffaSDK { } //表情视频播放结束 doEmoFinish() { - console.log("微信emo ready视频播放结束"); + logger.log("微信emo ready视频播放结束"); this.removeEmoReadyAudio(); this.replayBgAudioPause(); } @@ -897,44 +898,44 @@ export class luffaSDK { //region 微信同声传译 // private rrmgr: any = null; // startRecordRecognition() { - // console.log("微信 同声传译111") + // logger.log("微信 同声传译111") // if (!this.rrmgr) { // const plugin = requirePlugin("WechatSI"); // this.rrmgr = plugin.getRecordRecognitionManager(); - // console.log("微信 同声传译222") + // logger.log("微信 同声传译222") // // 监听识别结果 // this.rrmgr.onRecognize = (res) => { - // console.log("微信 同声传译识别结果:", res.result); + // logger.log("微信 同声传译识别结果:", res.result); // }; // // 监听录音结束 // this.rrmgr.onStop = (res) => { - // console.log("微信 同声传译录音结束", res); + // logger.log("微信 同声传译录音结束", res); // }; // } // this.rrmgr.start({ lang: "zh_CN" }); - // console.log("微信 同声传译333") + // logger.log("微信 同声传译333") // } // stopRecordRecognition() { // if (this.rrmgr) { // this.rrmgr.stop(); - // console.log("微信 同声传译444") + // logger.log("微信 同声传译444") // } // } //region 复制到剪贴板 /**复制文本到剪贴板 */ copyToClipboard(text: string, cb?: Function) { - console.log("微信 复制到剪贴板:", text); + logger.log("微信 复制到剪贴板:", text); window["wx"].setClipboardData({ data: text, success: () => { - console.log("微信 复制成功"); + logger.log("微信 复制成功"); cb && cb(true); }, fail: (err) => { - console.log("微信 复制失败:", err); + logger.log("微信 复制失败:", err); cb && cb(false); }, }); @@ -950,7 +951,7 @@ export class luffaSDK { // debug: true, // uploadUserInfo: true, // 上传用户信息,上传后可以看到有用户头像和昵称的分享信息 // }); - // console.log("微信 uma 初始化"); + // logger.log("微信 uma 初始化"); } //友盟统计是否开启 umaSwt() { @@ -959,6 +960,6 @@ export class luffaSDK { //友盟事件统计 umaEvent(eventName: string, value: any = {}) { window["wx"].uma.trackEvent(eventName, value); - console.log("微信 uma 统计:", eventName, value); + logger.log("微信 uma 统计:", eventName, value); } } diff --git a/assets/Scripts/Main/Channel/webSDK.ts b/assets/Scripts/Main/Channel/webSDK.ts index d1620f9d..6b77ff67 100644 --- a/assets/Scripts/Main/Channel/webSDK.ts +++ b/assets/Scripts/Main/Channel/webSDK.ts @@ -6,11 +6,12 @@ import { BgVideo } from "./BgVideo"; import Utils from "../Common/Utils"; import { InnerMsgCode } from "../Config/InnerMsgCode"; import { VideoRoleType } from "../Common/GlobalValue"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class WebSDK { //初始化 init(cb: Function = null) { - console.log("init webSDK"); + logger.log("init webSDK"); cb && cb(); } @@ -92,7 +93,7 @@ export class WebSDK { // 创建音频 URL const audioUrl = URL.createObjectURL(audioBlob); - console.log("web 播放base64音频", audioUrl); + logger.log("web 播放base64音频", audioUrl); // 创建音频元素并播放 if (this._audioInst == null) { this._audioInst = new Audio(audioUrl); @@ -104,12 +105,12 @@ export class WebSDK { //客服功能是否支持 kefuSupport() { - console.log("web 不支持联系客服"); + logger.log("web 不支持联系客服"); return false; } //进入联系客服 openKefu() { - console.log("web 进入联系客服"); + logger.log("web 进入联系客服"); } //region 播放主背景视频 @@ -147,7 +148,7 @@ export class WebSDK { return; } - console.log("web 初始化主背景视频"); + logger.log("web 初始化主背景视频"); if (!this.zhuVideo1) { this.zhuVideo1 = bgvideo.getVideoClone(); this.zhuVideo1.remoteUrl = @@ -323,18 +324,18 @@ export class WebSDK { //region 复制到剪贴板 /**复制文本到剪贴板 */ copyToClipboard(text: string, cb?: Function) { - console.log("web 复制到剪贴板:", text); + logger.log("web 复制到剪贴板:", text); if (navigator.clipboard && window.isSecureContext) { // 使用现代的 Clipboard API navigator.clipboard .writeText(text) .then(() => { - console.log("web 复制成功 (Clipboard API)"); + logger.log("web 复制成功 (Clipboard API)"); cb && cb(true); }) .catch((err) => { - console.log("web 复制失败 (Clipboard API):", err); + logger.log("web 复制失败 (Clipboard API):", err); this.fallbackCopyToClipboard(text, cb); }); } else { @@ -361,14 +362,14 @@ export class WebSDK { try { const successful = document.execCommand("copy"); if (successful) { - console.log("web 复制成功 (fallback)"); + logger.log("web 复制成功 (fallback)"); cb && cb(true); } else { - console.log("web 复制失败 (fallback)"); + logger.log("web 复制失败 (fallback)"); cb && cb(false); } } catch (err) { - console.log("web 复制异常 (fallback):", err); + logger.log("web 复制异常 (fallback):", err); cb && cb(false); } diff --git a/assets/Scripts/Main/Channel/wxSDK.ts b/assets/Scripts/Main/Channel/wxSDK.ts index 79aadd3b..cc3a3281 100644 --- a/assets/Scripts/Main/Channel/wxSDK.ts +++ b/assets/Scripts/Main/Channel/wxSDK.ts @@ -5,6 +5,7 @@ import { I_SDK_UserInfo_Callback, SDKManager } from "./SDKManager"; import Utils from "../Common/Utils"; import uma from "../../../utils/uma.wx.min.js"; import { InnerMsgCode } from "../Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; //广告ID const wx_banner_ad_unit_id = "test"; @@ -35,7 +36,7 @@ export class WXSDK { // 保持屏幕常亮 window["wx"].setKeepScreenOn({ keepScreenOn: true }); WXSDK.g_InGameScene = window["wx"].getLaunchOptionsSync().scene; - console.log("init 微信 - 进入游戏的场景值", WXSDK.g_InGameScene); + logger.log("init 微信 - 进入游戏的场景值", WXSDK.g_InGameScene); //显示分享按钮 window["wx"].showShareMenu({ @@ -55,7 +56,7 @@ export class WXSDK { window["wx"].onHide(() => { if (this.ShareCb) { this.ShareSTime = new Date().getTime(); - console.log("分享时间差 记录:", this.ShareSTime); + logger.log("分享时间差 记录:", this.ShareSTime); } }); @@ -68,7 +69,7 @@ export class WXSDK { //小游戏回到前台 onWxShow(data: any) { - console.log("onWxShow:" + JSON.stringify(data)); + logger.log("onWxShow:" + JSON.stringify(data)); //返回小游戏场景值 if (data && data.query && data.query.ShareCode) { GlobalValue.ShareTocusid = data.query.ShareCode; @@ -77,7 +78,7 @@ export class WXSDK { if (this.ShareCb) { if (this.ShareSTime) { let nT = new Date().getTime(); - console.log("分享时间差 计算:", nT, this.ShareSTime); + logger.log("分享时间差 计算:", nT, this.ShareSTime); if (nT - this.ShareSTime > 1500) { let cb = this.ShareCb.succ; cb && cb(); @@ -104,7 +105,7 @@ export class WXSDK { checkAutoSetting(autoKey: string, cb: Function = null) { window["wx"].getSetting({ success(res: any) { - console.log("微信 - 检测权限状态 succ:", JSON.stringify(res)); + logger.log("微信 - 检测权限状态 succ:", JSON.stringify(res)); if (autoKey == "userInfo" && res.authSetting["scope.userInfo"]) { cb && cb(true); } else { @@ -112,7 +113,7 @@ export class WXSDK { } }, fail(res: any) { - console.log("微信 - 检测权限状态 fail:", JSON.stringify(res)); + logger.log("微信 - 检测权限状态 fail:", JSON.stringify(res)); cb && cb(false); }, }); @@ -122,11 +123,11 @@ export class WXSDK { * 获取个人信息 */ getUserInfo(cb: I_SDK_UserInfo_Callback = null) { - console.log("微信 - 正在获取用户信息..."); + logger.log("微信 - 正在获取用户信息..."); var self = this; window["wx"].getUserInfo({ success: (res) => { - console.log("微信 - 获取用户信息成功:", res); + logger.log("微信 - 获取用户信息成功:", res); cb && cb({ avatarUrl: res.userInfo.avatarUrl, @@ -134,7 +135,7 @@ export class WXSDK { }); }, fail: (err) => { - console.log("微信 - 获取用户信息失败:", err); + logger.log("微信 - 获取用户信息失败:", err); self.openUserAuthorize(cb); }, }); @@ -145,7 +146,7 @@ export class WXSDK { window["wx"].getSetting({ scope: "scope.userInfo", success(res: any) { - console.log("微信 authorize succ:", JSON.stringify(res)); + logger.log("微信 authorize succ:", JSON.stringify(res)); if (res.authSetting["scope.userInfo"]) { self.getUserInfo(cb); @@ -164,21 +165,21 @@ export class WXSDK { textAlign: "center", }, }); - console.log("微信 点击开始游戏授权用户信息"); + logger.log("微信 点击开始游戏授权用户信息"); button.onTap((res) => { button.destroy(); // if (res.userInfo) { - // console.log(res.userInfo) + // logger.log(res.userInfo) // //此时可进行登录操作 // cb && cb(res.userInfo) // } - console.log("微信 点击Tap", res); + logger.log("微信 点击Tap", res); self.getUserInfo(cb); }); } }, fail(err) { - console.log("微信 - authorize fail", err); + logger.log("微信 - authorize fail", err); }, }); } @@ -188,16 +189,16 @@ export class WXSDK { window["wx"].login({ success: (res) => { if (res.code) { - console.log("微信 - 登录成功", res.code); + logger.log("微信 - 登录成功", res.code); cb && cb({ platform: 1, code: res.code }); } else { - console.log("微信 - 登录失败", res.errMsg); + logger.log("微信 - 登录失败", res.errMsg); cb && cb({ platform: 1, code: null }); } }, fail(res: any) { - console.log(`微信 login 调用失败`); - console.log(res.anonymousCode); + logger.log(`微信 login 调用失败`); + logger.log(res.anonymousCode); cb && cb({ platform: 1, code: null }); }, }); @@ -206,7 +207,7 @@ export class WXSDK { //初始化视频广告 private init_video() { if ((wx_video_ad_unit_id as any) == "test") { - console.log("微信 激励广告id未配置,跳过此类型初始化"); + logger.log("微信 激励广告id未配置,跳过此类型初始化"); return; } @@ -215,13 +216,13 @@ export class WXSDK { disableFallbackSharePage: true, // 是否禁用分享页,默认为false }); this.wx_video.onLoad(() => { - console.log("onLoad event emit"); + logger.log("onLoad event emit"); }); this.wx_video.onError((err) => { - console.log("onError event emit", err); + logger.log("onError event emit", err); }); this.wx_video.onClose((res) => { - console.log("onClose event emit", res); + logger.log("onClose event emit", res); // 用户点击了【关闭广告】按钮 // 小于 2.1.0 的基础库版本,res 是一个 undefined if ((res && res.isEnded) || res === undefined) { @@ -240,7 +241,7 @@ export class WXSDK { //初始化插屏广告 private init_splash() { if ((wx_splash_ad_unit_id as any) == "test") { - console.log("微信 插屏广告id未配置,跳过此类型初始化"); + logger.log("微信 插屏广告id未配置,跳过此类型初始化"); return; } // 创建插屏广告实例,提前初始化 @@ -249,13 +250,13 @@ export class WXSDK { adUnitId: wx_splash_ad_unit_id, }); this.wx_splash.onLoad(() => { - console.log("splash onLoad event emit"); + logger.log("splash onLoad event emit"); }); this.wx_splash.onError((err) => { - console.log("splash onError event emit", err); + logger.log("splash onError event emit", err); }); this.wx_splash.onClose((res) => { - console.log("splash onClose event emit", res); + logger.log("splash onClose event emit", res); }); } } @@ -263,7 +264,7 @@ export class WXSDK { //初始化Banner private init_banner() { if ((wx_banner_ad_unit_id as any) == "test") { - console.log("微信 横幅广告id未配置,跳过此类型初始化"); + logger.log("微信 横幅广告id未配置,跳过此类型初始化"); return; } let winSize = window["wx"].getSystemInfoSync(); @@ -291,7 +292,7 @@ export class WXSDK { //显示视频广告 show_video(callback: Function, tag: number) { if ((wx_video_ad_unit_id as any) == "test") { - console.log("未接入广告ID,视频广告请求直接返回"); + logger.log("未接入广告ID,视频广告请求直接返回"); callback && callback(); SDKManager.video_ad_back(); return; @@ -325,7 +326,7 @@ export class WXSDK { this.wx_splash.show(); }) .catch((err) => { - console.log(err); + logger.log(err); }); } } @@ -439,7 +440,7 @@ export class WXSDK { let picmap = this.SharePicAry[rand1]; let rand2 = Utils.getRandomInt(0, this.ShareTextAry.length - 1); let text = this.ShareTextAry[rand2]; - console.log("分享:", rand1, rand2); + logger.log("分享:", rand1, rand2); return { title: text, query: "ShareCode=" + "user_default", //ModelPlayer.I.getPlayerId(), @@ -449,7 +450,7 @@ export class WXSDK { } //主动拉起分享 show_share(rewardCB?: Function) { - console.log("主动拉起分享"); + logger.log("主动拉起分享"); let info: any = this.shareInfo(); info.succ = rewardCB; info.fail = null; @@ -465,7 +466,7 @@ export class WXSDK { //显示游戏圈 show_gameClub(leftRatio, topRatio, widthRatio, heightRatio) { - console.log("显示游戏圈"); + logger.log("显示游戏圈"); if (this.wx_gameClub) { this.wx_gameClub.show(); } else { @@ -475,7 +476,7 @@ export class WXSDK { let w = windowinfo.screenWidth * widthRatio; //按钮宽高 let h = windowinfo.screenHeight * heightRatio; - console.log( + logger.log( "游戏圈按钮配置:", windowinfo, leftRatio, @@ -503,7 +504,7 @@ export class WXSDK { } //隐藏游戏圈 hide_gameClub() { - console.log("隐藏游戏圈"); + logger.log("隐藏游戏圈"); if (this.wx_gameClub) { this.wx_gameClub.hide(); } @@ -519,7 +520,7 @@ export class WXSDK { private _iacIdx = 0; //音频播放索引 playBase64Audio(base64, loop) { if (!this.checkSupportBase64Audio()) { - console.log("微信平台不支持base64音频播放"); + logger.log("微信平台不支持base64音频播放"); return; } @@ -534,24 +535,24 @@ export class WXSDK { //1.删除上一个音频 const lastPath = window["wx"].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3`; - console.log("微信 正在删除上一个音频 ->", lastPath); + logger.log("微信 正在删除上一个音频 ->", lastPath); fs.removeSavedFile({ filePath: lastPath, success(res) { - console.log("微信 删除上一个音频成功", res); + logger.log("微信 删除上一个音频成功", res); }, fail(err) { - console.log("微信 删除上一个音频失败", err); + logger.log("微信 删除上一个音频失败", err); }, complete(res) { - console.log("微信 删除上一个音频完成", res); + logger.log("微信 删除上一个音频完成", res); //2.保存当前音频 //这里需要每次保存时换一下名字的原因是:innerAudioContext设置路径时如果路径相同,会认为还是同一个音频,不会重新加载,所以需要每次保存时换一下名字 self._iacIdx++; const audioPath = window["wx"].env.USER_DATA_PATH + `/ordernew${self._iacIdx}.mp3`; - console.log("微信 正在保存本次音频 ->", audioPath); + logger.log("微信 正在保存本次音频 ->", audioPath); fs.writeFile({ filePath: audioPath, data: substring, @@ -561,18 +562,18 @@ export class WXSDK { self._innerAudioContext = window["wx"].createInnerAudioContext(); // 添加播放结束的回调 self._innerAudioContext.onEnded(() => { - console.log("微信 AI语音播放结束"); + logger.log("微信 AI语音播放结束"); self._innerAudioContext.stop(); // 使用 stop 方法停止音频并重置播放状态 self._innerAudioContext.destroy(); // 销毁音频实例 self._innerAudioContext = null; }); } - console.log("微信 播放base64音频", audioPath); + logger.log("微信 播放base64音频", audioPath); self._innerAudioContext.src = audioPath; self._innerAudioContext.play(); // 开始播放音频 }, fail(err) { - console.log("微信 保存本次音频失败", err); + logger.log("微信 保存本次音频失败", err); }, }); }, @@ -587,7 +588,7 @@ export class WXSDK { //监听向微信后台请求检查更新结果事件。微信在小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。 updateManager.onCheckForUpdate((res) => { // 请求完新版本信息的回调 - console.log("微信 检查是否有新版本:", res.hasUpdate); + logger.log("微信 检查是否有新版本:", res.hasUpdate); }); //监听小程序有版本更新事件。客户端主动触发下载(无需开发者触发),下载成功后回调 @@ -606,7 +607,7 @@ export class WXSDK { //监听小程序更新失败事件。小程序有新版本,客户端主动触发下载(无需开发者触发),下载失败(可能是网络原因等)时回调 updateManager.onUpdateFailed(function (err) { - console.log("微信 新版本下载失败", err); + logger.log("微信 新版本下载失败", err); }); } @@ -615,7 +616,7 @@ export class WXSDK { if (window["wx"].openCustomerServiceConversation) { return true; } - console.log("微信 不支持联系客服"); + logger.log("微信 不支持联系客服"); return false; } //进入联系客服 @@ -628,10 +629,10 @@ export class WXSDK { wx.openCustomerServiceConversation({ success: (res) => { const { path, query } = res; - console.log("微信 进入客服成功", path, query); + logger.log("微信 进入客服成功", path, query); }, fail: (res) => { - console.log("微信 进入客服失败", res); + logger.log("微信 进入客服失败", res); }, }); } @@ -651,18 +652,18 @@ export class WXSDK { return; } let self = this; - console.log("微信 播放背景视频组件1", remoteUrl); + logger.log("微信 播放背景视频组件1", remoteUrl); //this.curPlayType = vtype; if (!this._bgVideo) { this._bgVideo = this.createVideoHandle(); // this._bgVideo.onPlay(() => { - // console.log("微信 背景视频播放开始"); + // logger.log("微信 背景视频播放开始"); // }) this._bgVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 背景视频播放进度", self._bgShow, _tinfo); + // logger.log("微信 背景视频播放进度", self._bgShow, _tinfo); if (!self._bgShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 背景视频1进入视野"); + logger.log("微信 背景视频1进入视野"); self.videoMoveIn(self._bgVideo); self._bgShow = true; self.removeBgAudioNext(); @@ -697,18 +698,18 @@ export class WXSDK { extra: any = {} ) { this.removeBgAudioNext(); - console.log("微信 创建背景视频组件2--->", remoteUrl); + logger.log("微信 创建背景视频组件2--->", remoteUrl); let self = this; if (!this._bgTempVideo) { this._bgTempVideo = this.createVideoHandle(); // this._bgTempVideo.onPlay(() => { - // console.log("微信 临时背景视频播放开始"); + // logger.log("微信 临时背景视频播放开始"); // }) this._bgTempVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 临时背景视频播放进度", self._bgTempShow, _tinfo); + // logger.log("微信 临时背景视频播放进度", self._bgTempShow, _tinfo); if (!self._bgTempShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 背景视频2进入视野"); + logger.log("微信 背景视频2进入视野"); self._bgTempShow = true; self.videoMoveIn(self._bgTempVideo); self.removeBgAudio(); @@ -749,18 +750,18 @@ export class WXSDK { return; } let self = this; - console.log("微信 播放emo视频1", remoteUrl); + logger.log("微信 播放emo视频1", remoteUrl); this.curPlayType = vtype; if (!this._emoVideo) { this._emoVideo = this.createVideoHandle(); // this._emoVideo.onPlay(() => { - // console.log("微信 背景视频播放开始"); + // logger.log("微信 背景视频播放开始"); // }) this._emoVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 背景视频播放进度", self._emoShow, _tinfo); + // logger.log("微信 背景视频播放进度", self._emoShow, _tinfo); if (!self._emoShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 emo视频1准备好了"); + logger.log("微信 emo视频1准备好了"); self._emoShow = true; self.removeEmoAudioNext(); self.setEmoReadyAudio(self._emoVideo); @@ -795,19 +796,19 @@ export class WXSDK { extra: any = {} ) { this.removeEmoAudioNext(); - console.log("微信 播放emo视频2--->", remoteUrl); + logger.log("微信 播放emo视频2--->", remoteUrl); this.curPlayType = vtype; let self = this; if (!this._emoTempVideo) { this._emoTempVideo = this.createVideoHandle(); // this._emoTempVideo.onPlay(() => { - // console.log("微信 临时背景视频播放开始"); + // logger.log("微信 临时背景视频播放开始"); // }) this._emoTempVideo.onTimeUpdate((_tinfo: any) => { - // console.log("微信 临时背景视频播放进度", self._emoTempShow, _tinfo); + // logger.log("微信 临时背景视频播放进度", self._emoTempShow, _tinfo); if (!self._emoTempShow) { if (_tinfo && _tinfo.position > 0.01) { - console.log("微信 emo视频2已准备好"); + logger.log("微信 emo视频2已准备好"); self._emoTempShow = true; self.removeEmoAudio(); self.setEmoReadyAudio(self._emoTempVideo); @@ -890,19 +891,19 @@ export class WXSDK { this.videoAdaInfo.x = -(this.videoWidth * ratioh - size.width) / 2; this.videoAdaInfo.y = 0; } - console.log("微信 视频适配信息", this.videoAdaInfo, size); + logger.log("微信 视频适配信息", this.videoAdaInfo, size); return this.videoAdaInfo; } //设置暂停播放的主视频 private vpWait: any = null; setBgAudioPause(wait: any) { - console.log("微信 主视频暂停播放"); + logger.log("微信 主视频暂停播放"); this.vpWait = wait; this.vpWait.pause(); } replayBgAudioPause() { - console.log("微信 主视频继续播放"); + logger.log("微信 主视频继续播放"); if (this.vpWait) { this.vpWait.play(); } @@ -911,7 +912,7 @@ export class WXSDK { //设置准备好要播放的表情视频 private emoReady: any = null; setEmoReadyAudio(au: any) { - console.log("微信 设置emo ready视频"); + logger.log("微信 设置emo ready视频"); if (this.emoReady) { this.emoReady.stop(); this.videoMoveOut(this.emoReady); @@ -921,7 +922,7 @@ export class WXSDK { } //移除准备好要播放的表情视频 removeEmoReadyAudio() { - console.log("微信 移除emo ready视频"); + logger.log("微信 移除emo ready视频"); if (this.emoReady) { this.emoReady.stop(); this.videoMoveOut(this.emoReady); @@ -931,7 +932,7 @@ export class WXSDK { //播放准备好要播放的表情视频 doPlayEmoReadyAudio(): boolean { if (this.emoReady) { - console.log("微信 播放emo ready视频"); + logger.log("微信 播放emo ready视频"); this.emoReady.play(); this.videoMoveIn(this.emoReady); return true; @@ -940,7 +941,7 @@ export class WXSDK { } //表情视频播放结束 doEmoFinish() { - console.log("微信emo ready视频播放结束"); + logger.log("微信emo ready视频播放结束"); this.removeEmoReadyAudio(); this.replayBgAudioPause(); } @@ -948,44 +949,44 @@ export class WXSDK { //region 微信同声传译 // private rrmgr: any = null; // startRecordRecognition() { - // console.log("微信 同声传译111") + // logger.log("微信 同声传译111") // if (!this.rrmgr) { // const plugin = requirePlugin("WechatSI"); // this.rrmgr = plugin.getRecordRecognitionManager(); - // console.log("微信 同声传译222") + // logger.log("微信 同声传译222") // // 监听识别结果 // this.rrmgr.onRecognize = (res) => { - // console.log("微信 同声传译识别结果:", res.result); + // logger.log("微信 同声传译识别结果:", res.result); // }; // // 监听录音结束 // this.rrmgr.onStop = (res) => { - // console.log("微信 同声传译录音结束", res); + // logger.log("微信 同声传译录音结束", res); // }; // } // this.rrmgr.start({ lang: "zh_CN" }); - // console.log("微信 同声传译333") + // logger.log("微信 同声传译333") // } // stopRecordRecognition() { // if (this.rrmgr) { // this.rrmgr.stop(); - // console.log("微信 同声传译444") + // logger.log("微信 同声传译444") // } // } //region 复制到剪贴板 /**复制文本到剪贴板 */ copyToClipboard(text: string, cb?: Function) { - console.log("微信 复制到剪贴板:", text); + logger.log("微信 复制到剪贴板:", text); window["wx"].setClipboardData({ data: text, success: () => { - console.log("微信 复制成功"); + logger.log("微信 复制成功"); cb && cb(true); }, fail: (err) => { - console.log("微信 复制失败:", err); + logger.log("微信 复制失败:", err); cb && cb(false); }, }); @@ -1001,7 +1002,7 @@ export class WXSDK { debug: true, uploadUserInfo: true, // 上传用户信息,上传后可以看到有用户头像和昵称的分享信息 }); - console.log("微信 uma 初始化"); + logger.log("微信 uma 初始化"); } //友盟统计是否开启 umaSwt() { @@ -1010,6 +1011,6 @@ export class WXSDK { //友盟事件统计 umaEvent(eventName: string, value: any = {}) { window["wx"].uma.trackEvent(eventName, value); - console.log("微信 uma 统计:", eventName, value); + logger.log("微信 uma 统计:", eventName, value); } } diff --git a/assets/Scripts/Main/Common/Utils.ts b/assets/Scripts/Main/Common/Utils.ts index 588e3202..9374e480 100644 --- a/assets/Scripts/Main/Common/Utils.ts +++ b/assets/Scripts/Main/Common/Utils.ts @@ -13,6 +13,7 @@ import { } from "cc"; import li_EventManager from "./li_EventManager"; import LanguageUtils from "./LanguageUtils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -22,21 +23,21 @@ export default class Utils { public static Log(msg: string | any, ...subst: any[]) { let IsLocalCSChanel = true; if (IsLocalCSChanel) { - console.log(msg, subst); + logger.log(msg, subst); } } //警告日志 public static Warning(msg: string | any, ...subst: any[]) { let IsLocalCSChanel = true; if (IsLocalCSChanel) { - console.warn(msg, subst); + logger.warn(msg, subst); } } //错误日志 public static Error(msg: string | any, ...subst: any[]) { let IsLocalCSChanel = true; if (IsLocalCSChanel) { - console.error(msg, subst); + logger.error(msg, subst); } } @@ -258,7 +259,7 @@ export default class Utils { public static getScaleRatio(mod: number = 1) { let windowSize = view.getVisibleSize(); let designSize = view.getDesignResolutionSize(); - // console.log("游戏分辨率:", windowSize, designSize); + // logger.log("游戏分辨率:", windowSize, designSize); if (mod == 1) { return windowSize.height / designSize.height; } else { @@ -367,7 +368,7 @@ export default class Utils { public static ProfilerTimePrint(key: string = "") { let time = new Date().getTime(); let timecha = time - Utils._eplTime; - console.log(`${key}消耗时间:${timecha}毫秒`); + logger.log(`${key}消耗时间:${timecha}毫秒`); Utils._eplTime = time; } @@ -381,7 +382,7 @@ export default class Utils { 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( + logger.log( "vip失效剩余时间差(秒):", diffSeconds, "天:", diff --git a/assets/Scripts/Main/Manager/AudioManager.ts b/assets/Scripts/Main/Manager/AudioManager.ts index 03282ceb..df8935bb 100644 --- a/assets/Scripts/Main/Manager/AudioManager.ts +++ b/assets/Scripts/Main/Manager/AudioManager.ts @@ -2,6 +2,7 @@ import { _decorator, Node, AudioClip, AudioSource, director, assetManager } from import PlayerDataManager from "./PlayerDataManager"; import ResManager from "./ResManager"; import Resource from "../Config/Resource"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -44,7 +45,7 @@ export default class AudioManager { if (!cfgs[sound]) return; let path = `Sound/${cfgs[sound].AssetName}` - console.log("PlayEffect:", sound, path) + logger.log("PlayEffect:", sound, path) ResManager.I.getBundleAudio(path, (res: AudioClip)=>{ this._audoSource.playOneShot(res, volume) }); @@ -68,7 +69,7 @@ export default class AudioManager { this.curBgId = sound; this.curBgId_confirm = sound; let path = `Music/${cfgs[sound].AssetName}` - console.log("PlayMusic:", sound, path) + logger.log("PlayMusic:", sound, path) ResManager.I.getBundleAudio(path, (res: AudioClip)=>{ this._audoSource.clip = res this._audoSource.play() @@ -80,13 +81,13 @@ export default class AudioManager { /**播放远程背景乐 */ PlayRemoteMusic(url, loop:boolean = true, volume:number=1.0) { - console.log(`下载远程背景乐: url= ${url}`) + logger.log(`下载远程背景乐: url= ${url}`) assetManager.loadRemote(url, { ext: '.mp3'}, (err, res: AudioClip) => { if (err) { - console.log(err); + logger.log(err); return } - console.log(`播放远程背景乐: res= ${res}`) + logger.log(`播放远程背景乐: res= ${res}`) this.StopMusic() this._audoSource.clip = res this._audoSource.play() diff --git a/assets/Scripts/Main/Manager/GameManager.ts b/assets/Scripts/Main/Manager/GameManager.ts index 67de025f..4cfb0b1f 100644 --- a/assets/Scripts/Main/Manager/GameManager.ts +++ b/assets/Scripts/Main/Manager/GameManager.ts @@ -7,6 +7,7 @@ import SubManager from "../../Sub/SubManager"; import HttpUnit from "../Common/HttpUnit"; import { SDKManager } from "../Channel/SDKManager"; import { VideoRoleType } from "../Common/GlobalValue"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -68,7 +69,7 @@ export default class GameManager { let resData = JSON.parse(data.data) if (GameManager.curStage != E_TalkStage.waitNpcTalk) return if (resData.isFinished) { - console.log("npc回复:", resData) + logger.log("npc回复:", resData) GameManager.CurNpcTalkData = resData Utils.sendInnerMsg(InnerMsgCode.Data_NpcTalkBack, resData || {}) } @@ -122,7 +123,7 @@ export default class GameManager { if (umRecords.length > 0 && SDKManager.umaSwt()){ let umr = umRecords.join(',') HttpUnit.ins.sendLevelRecord({level_ids:umr}, (_data)=>{ - console.log('友盟记录关卡',_data) + logger.log('友盟记录关卡',_data) let userId = HttpUnit.GetID() let curDate = Utils.GetNowFormatDay() for (let i = 0; i < umRecords.length; i++) { @@ -513,7 +514,7 @@ export default class GameManager { } /**解锁一个私家珍藏id */ static UnlockZhencang(record_id:string, levelId: string) { - console.log("解锁私家珍藏:", record_id, levelId) + logger.log("解锁私家珍藏:", record_id, levelId) HttpUnit.ins.getZhencangList({limit:999, page:1, type:1}, (data) => { if (data){ this._doUnlockZhencang(data.data, record_id, levelId) @@ -559,7 +560,7 @@ export default class GameManager { let item = lockAry[randIdx] HttpUnit.ins.sendZhencangId({record_id:record_id, level_id:levelId, img:item.id}, (_data) => { if (_data) { - console.log("获得珍藏卡:", item) + logger.log("获得珍藏卡:", item) GameManager.refreshZhencangCanget() } }) diff --git a/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts b/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts index 4a96b003..0501fc0f 100644 --- a/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts +++ b/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts @@ -13,6 +13,8 @@ import li_BaseView from "../../Main/Common/li_BaseView"; import ResManager from "../../Main/Manager/ResManager"; import { DataManager, DataId } from "../../chat18x/data/DataManager"; import { EnvData } from "../../chat18x/data/EnvData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; //场景背景层 - 视频模式 @@ -39,7 +41,7 @@ export class SceneBgVideoLayer extends li_BaseView { Utils.parseNode(this.node, this._nodeTab); this.videoPlayer = this._nodeTab.videoPlayer.getComponent(VideoPlayer); if (!this.videoPlayer) { - console.error("SceneBgVideoLayer: video节点未找到或没有VideoPlayer组件"); + logger.error("SceneBgVideoLayer: video节点未找到或没有VideoPlayer组件"); } this.initVideoEvents(); SceneBgVideoLayer.handle = this; @@ -129,13 +131,13 @@ export class SceneBgVideoLayer extends li_BaseView { const uiTransform = this.videoPlayer.node.getComponent(UITransform); if (uiTransform) { uiTransform.setAnchorPoint(0.5, 0.5); - console.log("SceneBgVideoLayer: 设置视频锚点为 (0.5, 0.5)"); + logger.log("SceneBgVideoLayer: 设置视频锚点为 (0.5, 0.5)"); } // 立即开始播放,尺寸和位置将在 READY_TO_PLAY 事件中设置 this.videoPlayer.play(); this.isPlaying = true; - console.log(`SceneBgVideoLayer: 开始加载视频 ${path}, 配置:`, config); + logger.log(`SceneBgVideoLayer: 开始加载视频 ${path}, 配置:`, config); } ); } @@ -146,7 +148,7 @@ export class SceneBgVideoLayer extends li_BaseView { pause() { if (this.videoPlayer && this.isPlaying) { this.videoPlayer.pause(); - console.log("SceneBgVideoLayer: 暂停视频"); + logger.log("SceneBgVideoLayer: 暂停视频"); } } @@ -156,7 +158,7 @@ export class SceneBgVideoLayer extends li_BaseView { resume() { if (this.videoPlayer && !this.videoPlayer.isPlaying) { this.videoPlayer.play(); - console.log("SceneBgVideoLayer: 继续播放视频"); + logger.log("SceneBgVideoLayer: 继续播放视频"); } } @@ -167,7 +169,7 @@ export class SceneBgVideoLayer extends li_BaseView { if (this.videoPlayer) { this.videoPlayer.stop(); this.clearVideoState(); - console.log("SceneBgVideoLayer: 停止视频"); + logger.log("SceneBgVideoLayer: 停止视频"); } } @@ -179,10 +181,10 @@ export class SceneBgVideoLayer extends li_BaseView { if (this.videoPlayer) { if (typeof scale === "number") { this.videoPlayer.node.setScale(new Vec3(scale, scale, 1)); - console.log(`SceneBgVideoLayer: 设置视频缩放 ${scale}`); + logger.log(`SceneBgVideoLayer: 设置视频缩放 ${scale}`); } else { this.videoPlayer.node.setScale(scale); - console.log( + logger.log( `SceneBgVideoLayer: 设置视频缩放 (${scale.x}, ${scale.y}, ${scale.z})` ); } @@ -209,7 +211,7 @@ export class SceneBgVideoLayer extends li_BaseView { size: targetSize, position: position, }; - console.log("SceneBgVideoLayer: 视频未准备好,配置已存储等待应用"); + logger.log("SceneBgVideoLayer: 视频未准备好,配置已存储等待应用"); } } @@ -248,7 +250,7 @@ export class SceneBgVideoLayer extends li_BaseView { targetWorldPos = new Vec3(pos.x, pos.y, pos.z || 0); } this.videoPlayer.node.setWorldPosition(targetWorldPos); - console.log( + logger.log( `SceneBgVideoLayer: 设置视频位置 (${targetWorldPos.x}, ${targetWorldPos.y}, ${targetWorldPos.z})` ); } @@ -270,34 +272,34 @@ export class SceneBgVideoLayer extends li_BaseView { const scale = Math.max(scaleX, scaleY); this.videoPlayer.node.setScale(new Vec3(scale, scale, 1)); - console.log( + logger.log( `SceneBgVideoLayer: 设置视频缩放 ${scale} (原始尺寸: ${videoSize.width}x${videoSize.height}, 目标尺寸: ${targetWidth}x${targetHeight})` ); } else { - console.warn("SceneBgVideoLayer: 无法获取视频尺寸,跳过缩放设置"); + logger.warn("SceneBgVideoLayer: 无法获取视频尺寸,跳过缩放设置"); } } else if (config.scale) { // 如果显式传入了 scale 参数,直接应用 if (typeof config.scale === "number") { this.videoPlayer.node.setScale(new Vec3(config.scale, config.scale, 1)); - console.log(`SceneBgVideoLayer: 设置显式缩放 ${config.scale}`); + logger.log(`SceneBgVideoLayer: 设置显式缩放 ${config.scale}`); } else { this.videoPlayer.node.setScale(config.scale); - console.log( + logger.log( `SceneBgVideoLayer: 设置显式缩放 (${config.scale.x}, ${config.scale.y}, ${config.scale.z})` ); } } else { // 没有指定尺寸或缩放,保持原始缩放 this.videoPlayer.node.setScale(Vec3.ONE); - console.log("SceneBgVideoLayer: 保持默认缩放 (1, 1, 1)"); + logger.log("SceneBgVideoLayer: 保持默认缩放 (1, 1, 1)"); } } //================== 事件回调 ================== private onVideoReadyToPlay = () => { - console.log("SceneBgVideoLayer: 视频准备完成"); + logger.log("SceneBgVideoLayer: 视频准备完成"); // 应用待处理的视频配置 if (this.pendingVideoConfig) { @@ -312,12 +314,12 @@ export class SceneBgVideoLayer extends li_BaseView { private onVideoEvent = (event: any, eventType: string) => { switch (eventType) { case "completed": - console.log("SceneBgVideoLayer: 视频播放完成"); + logger.log("SceneBgVideoLayer: 视频播放完成"); this.clearVideoState(); this.onVideoEnd(); break; case "error": - console.error("SceneBgVideoLayer: 视频播放错误"); + logger.error("SceneBgVideoLayer: 视频播放错误"); this.clearVideoState(); this.onVideoError(); break; From 8f90c1d7cf25748909a0b8478e51fee55203ff68 Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 20:18:24 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/Main/Channel/BgVideo.ts | 10 +-- assets/Scripts/Main/Common/EditBoxEvent.ts | 14 ++-- .../chat18x/manager/ChatHistoryManager.ts | 51 +++++++------- .../Scripts/chat18x/manager/DialogManager.ts | 11 +-- .../chat18x/manager/NavigationManager.ts | 37 +++++----- assets/Scripts/chat18x/payment/CashInrFlow.ts | 3 +- .../Scripts/chat18x/payment/PaymentPoller.ts | 5 +- .../Scripts/chat18x/payment/PaymentService.ts | 9 +-- assets/Scripts/chat18x/payment/WebUsdFlow.ts | 3 +- .../chat18x/test/ChatAIBatchTestRunner.ts | 67 ++++++++++--------- assets/Scripts/chat18x/ui/panels/ChatPanel.ts | 62 ++++++++--------- .../chat18x/ui/panels/GirlListPopupPanel.ts | 8 ++- .../chat18x/ui/panels/NavigationPanel.ts | 3 +- .../chat18x/ui/panels/PayToTalkSubpanel.ts | 8 ++- assets/Scripts/chat18x/ui/panels/ShowPanel.ts | 4 +- .../Scripts/chat18x/ui/panels/ThemePanel.ts | 35 +++++----- .../Scripts/chat18x/ui/panels/Web3PopPanel.ts | 3 +- .../Scripts/chat18x/uiitems/GirlListItem.ts | 3 +- assets/Scripts/chat18x/uiitems/ThemeItem.ts | 4 +- assets/Scripts/chat18x/utils/ErrorHandler.ts | 14 ++-- assets/Scripts/chat18x/utils/polyfills.ts | 2 - assets/Scripts/luban/ByteBuf.ts | 14 ++-- assets/Scripts/test/QRCodeGeneratorTest.ts | 15 +++-- 23 files changed, 207 insertions(+), 178 deletions(-) diff --git a/assets/Scripts/Main/Channel/BgVideo.ts b/assets/Scripts/Main/Channel/BgVideo.ts index cf740f38..7dc2648e 100644 --- a/assets/Scripts/Main/Channel/BgVideo.ts +++ b/assets/Scripts/Main/Channel/BgVideo.ts @@ -1,6 +1,8 @@ import { _decorator, Component, Node, tween, UIOpacity, Vec3, VideoPlayer } from 'cc'; import Utils from '../Common/Utils'; import { VideoRoleType } from '../Common/GlobalValue'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; /**背景视频 */ @@ -49,14 +51,14 @@ export class BgVideo extends Component { update(deltaTime: number) { // if (this._isPlaying && this.vtype == VideoRoleType.Idle) { - // console.log("BgVideo 主视频时长:", this.vp.currentTime, this.vp.duration); + // logger.log("BgVideo 主视频时长:", this.vp.currentTime, this.vp.duration); // } } /**播放视频 */ playVideo(remoteUrl:string, loop:boolean = false, autoIn:boolean = true) { - console.log("BgVideo 播放视频:", this.node.position) + logger.log("BgVideo 播放视频:", this.node.position) this.vp.remoteURL = remoteUrl this.vp.loop = loop this.vp.stop() @@ -69,7 +71,7 @@ export class BgVideo extends Component { /**暂停视频 */ pauseVideo() { - console.log("BgVideo 暂停视频:", this._vtype) + logger.log("BgVideo 暂停视频:", this._vtype) this.vp.pause() } /**继续播放 */ @@ -99,7 +101,7 @@ export class BgVideo extends Component { onVideoEvent(event1:any, event2:any) { - // console.log("bgvideo BgVideo组件 event", event2, this._vtype) + // logger.log("bgvideo BgVideo组件 event", event2, this._vtype) if (event2 == "ready-to-play") { // if (!this._emoShow) { // this._emoShow = true; diff --git a/assets/Scripts/Main/Common/EditBoxEvent.ts b/assets/Scripts/Main/Common/EditBoxEvent.ts index c8c5316c..f2b982ff 100644 --- a/assets/Scripts/Main/Common/EditBoxEvent.ts +++ b/assets/Scripts/Main/Common/EditBoxEvent.ts @@ -1,5 +1,7 @@ import { _decorator, Component, EditBox, Label, macro, Node, view } from 'cc'; import GameRootUI from './GameRootUI'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property, requireComponent } = _decorator; //输入框事件监听 @@ -18,7 +20,7 @@ export class EditBoxEvent extends Component { this.node.on(EditBox.EventType.EDITING_DID_BEGAN, this.onEditDidBegan, this); this.node.on(EditBox.EventType.EDITING_DID_ENDED, this.onEditDidEnded, this); this.node.on(EditBox.EventType.EDITING_RETURN, this.onEditingReturn, this); - console.log("EditBoxEvent: start.") + logger.log("EditBoxEvent: start.") } update(deltaTime: number) { @@ -27,20 +29,20 @@ export class EditBoxEvent extends Component { onEditDidBegan(editbox, customEventData) { - console.log("EditBoxEvent: 开始编辑...") + logger.log("EditBoxEvent: 开始编辑...") // view.setOrientation(macro.ORIENTATION_LANDSCAPE); //设置横屏 - // console.log("窗口大小 开始:", view.getVisibleSize(), GameRootUI.MainCamera) + // logger.log("窗口大小 开始:", view.getVisibleSize(), GameRootUI.MainCamera) } onEditDidEnded(editbox, customEventData) { - console.log("EditBoxEvent: 结束编辑.") + logger.log("EditBoxEvent: 结束编辑.") // view.setOrientation(macro.ORIENTATION_LANDSCAPE); //设置横屏 - // console.log("窗口大小 结束:", view.getVisibleSize(), GameRootUI.MainCamera) + // logger.log("窗口大小 结束:", view.getVisibleSize(), GameRootUI.MainCamera) } onEditingReturn(editbox, customEventData) { - console.log("EditBoxEvent: 按下返回.") + logger.log("EditBoxEvent: 按下返回.") } } diff --git a/assets/Scripts/chat18x/manager/ChatHistoryManager.ts b/assets/Scripts/chat18x/manager/ChatHistoryManager.ts index 0e9057e8..9fda4072 100644 --- a/assets/Scripts/chat18x/manager/ChatHistoryManager.ts +++ b/assets/Scripts/chat18x/manager/ChatHistoryManager.ts @@ -3,6 +3,7 @@ import { DataManager, DataId } from "../data/DataManager"; import { GirlData } from "../data/GirlData"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import { ChatService } from "../network/services/ChatService"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export interface ChatMessage { role: "user" | "model"; @@ -49,7 +50,7 @@ export class ChatHistoryManager { const existingHistory: ChatHistory = JSON.parse(existingData); createdAt = existingHistory.createdAt; } catch (parseError) { - console.warn(`Failed to parse existing history for role ${roleId}, using current time as createdAt`); + logger.warn(`Failed to parse existing history for role ${roleId}, using current time as createdAt`); } } @@ -61,11 +62,11 @@ export class ChatHistoryManager { }; sys.localStorage.setItem(key, JSON.stringify(history)); - console.log( + logger.log( `Saved chat history for role ${roleId}, ${messages.length} messages` ); } catch (error) { - console.error(`Failed to save chat history for role ${roleId}:`, error); + logger.error(`Failed to save chat history for role ${roleId}:`, error); } } @@ -80,13 +81,13 @@ export class ChatHistoryManager { const data = sys.localStorage.getItem(key); if (data) { const history: ChatHistory = JSON.parse(data); - console.log( + logger.log( `Loaded chat history for role ${roleId}: ${history.messages.length} messages` ); return history.messages; } } catch (error) { - console.error(`Failed to load chat history for role ${roleId}:`, error); + logger.error(`Failed to load chat history for role ${roleId}:`, error); // 如果数据损坏,清除错误的数据 this.clearHistory(roleId); } @@ -100,7 +101,7 @@ export class ChatHistoryManager { public clearHistory(roleId: number): void { const key = `chat_history_${roleId}`; sys.localStorage.removeItem(key); - console.log(`Cleared chat history for role ${roleId}`); + logger.log(`Cleared chat history for role ${roleId}`); } /** @@ -118,7 +119,7 @@ export class ChatHistoryManager { // 限制历史长度,保留最近100条消息 if (history.length > 100) { history.splice(0, history.length - 100); - console.log(`Trimmed chat history for role ${roleId} to 100 messages`); + logger.log(`Trimmed chat history for role ${roleId} to 100 messages`); } this.saveHistory(roleId, history); @@ -163,7 +164,7 @@ export class ChatHistoryManager { sys.localStorage.removeItem(key); }); - console.log( + logger.log( `Cleared all chat histories, ${keysToRemove.length} records removed` ); } @@ -193,7 +194,7 @@ export class ChatHistoryManager { public async syncToRemote(roleId: number): Promise { const history = this.loadHistory(roleId); if (history.length === 0) { - console.log(`No history to sync for role ${roleId}`); + logger.log(`No history to sync for role ${roleId}`); return; } @@ -204,11 +205,11 @@ export class ChatHistoryManager { // messages: history // }, "POST"); - console.log( + logger.log( `Ready to sync ${history.length} messages for role ${roleId} to remote server` ); } catch (error) { - console.error(`Failed to sync history for role ${roleId}:`, error); + logger.error(`Failed to sync history for role ${roleId}:`, error); } } @@ -232,7 +233,7 @@ export class ChatHistoryManager { return history.createdAt; } } catch (error) { - console.error(`Failed to get last chat time for role ${roleId}:`, error); + logger.error(`Failed to get last chat time for role ${roleId}:`, error); } return null; } @@ -250,14 +251,14 @@ export class ChatHistoryManager { // if (response && response.messages) { // this.saveHistory(roleId, response.messages); - // console.log(`Synced ${response.messages.length} messages from remote for role ${roleId}`); + // logger.log(`Synced ${response.messages.length} messages from remote for role ${roleId}`); // } - console.log( + logger.log( `Ready to sync history from remote server for role ${roleId}` ); } catch (error) { - console.error(`Failed to sync from remote for role ${roleId}:`, error); + logger.error(`Failed to sync from remote for role ${roleId}:`, error); } } @@ -288,7 +289,7 @@ export class ChatHistoryManager { // 按时间戳排序,确保消息顺序正确 messages.sort((a, b) => (a.timestamp || 0) - (b.timestamp || 0)); - console.log( + logger.log( `Converted ${serverMessages.length} server messages to ${messages.length} local messages` ); return messages; @@ -313,7 +314,7 @@ export class ChatHistoryManager { limit, }; - console.log("获取服务端聊天记录:", reqData); + logger.log("获取服务端聊天记录:", reqData); const res = await ChatService.I.reqGetChatMsg(reqData); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { @@ -333,20 +334,20 @@ export class ChatHistoryManager { resData.chatRemainCount ); - console.log( + logger.log( `成功从服务端获取聊天记录,roleId: ${roleId}, 消息数: ${ resData.msgs?.length || 0 }` ); return true; } else { - console.warn( + logger.warn( `从服务端获取聊天记录失败,roleId: ${roleId}, code: ${res?.code}` ); return false; } } catch (error) { - console.error(`获取服务端聊天记录异常,roleId: ${roleId}:`, error); + logger.error(`获取服务端聊天记录异常,roleId: ${roleId}:`, error); return false; } } @@ -390,7 +391,7 @@ export class ChatHistoryManager { const mergedMessages = Array.from(messageMap.values()); mergedMessages.sort((a, b) => (a.timestamp || 0) - (b.timestamp || 0)); - console.log( + logger.log( `合并聊天记录: 本地 ${localMessages.length} 条, 服务端 ${serverMessages.length} 条, 合并后 ${mergedMessages.length} 条` ); return mergedMessages; @@ -407,18 +408,18 @@ export class ChatHistoryManager { // 2. 如果本地有数据,直接返回 if (localHistory && localHistory.length > 0) { - console.log( + logger.log( `使用本地聊天记录,roleId: ${roleId}, 消息数: ${localHistory.length}` ); return localHistory; } // 3. 本地没有数据,尝试从服务端获取 - console.log(`本地无聊天记录,尝试从服务端获取,roleId: ${roleId}`); + logger.log(`本地无聊天记录,尝试从服务端获取,roleId: ${roleId}`); const serverSuccess = await this.fetchServerChatHistory(roleId); if (!serverSuccess) { - console.log(`服务端获取失败,返回空记录,roleId: ${roleId}`); + logger.log(`服务端获取失败,返回空记录,roleId: ${roleId}`); return []; } @@ -447,7 +448,7 @@ export class ChatHistoryManager { // 6. 保存到本地存储 if (convertedMessages.length > 0) { this.saveHistory(roleId, convertedMessages); - console.log( + logger.log( `从服务端获取并保存聊天记录,roleId: ${roleId}, 消息数: ${convertedMessages.length}` ); } diff --git a/assets/Scripts/chat18x/manager/DialogManager.ts b/assets/Scripts/chat18x/manager/DialogManager.ts index 2267f0bf..ef009a74 100644 --- a/assets/Scripts/chat18x/manager/DialogManager.ts +++ b/assets/Scripts/chat18x/manager/DialogManager.ts @@ -2,6 +2,7 @@ import { ChatContentsLayout } from "../ui/components/ChatContentsLayout"; import { DiaLogData, Dialog } from "../data/DialogData"; import Utils from "db://assets/Scripts/Main/Common/Utils"; import { InnerMsgCode } from "db://assets/Scripts/Main/Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 对话管理器 @@ -75,7 +76,7 @@ export class DialogManager { // 如果是玩家消息,直接添加单个气泡 if (isPlayer) { this.dialogData.pushDialog(isPlayer, str); - console.log("Dialog updated:", { + logger.log("Dialog updated:", { isPlayer, content: str.substring(0, 50) + "...", }); @@ -134,7 +135,7 @@ export class DialogManager { */ public addLoadingDialog(): void { this.dialogData.pushDialog(false, "...", true); - console.log("Loading dialog added"); + logger.log("Loading dialog added"); Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); } @@ -153,7 +154,7 @@ export class DialogManager { */ public clearDialogs(): void { this.dialogData.cleanDialog(); - console.log("All dialogs cleared"); + logger.log("All dialogs cleared"); } /** @@ -168,7 +169,7 @@ export class DialogManager { dialog.content, ); }); - console.log(`DialogManager: Set ${dialogs.length} dialogs`); + logger.log(`DialogManager: Set ${dialogs.length} dialogs`); Utils.sendInnerMsg(InnerMsgCode.Chat_DialogRefresh); } @@ -178,7 +179,7 @@ export class DialogManager { */ public syncFromChatModel(dialogs: Dialog[]): void { this.setDialogs(dialogs); - console.log("DialogManager: Synced dialogs from ChatModel"); + logger.log("DialogManager: Synced dialogs from ChatModel"); } } diff --git a/assets/Scripts/chat18x/manager/NavigationManager.ts b/assets/Scripts/chat18x/manager/NavigationManager.ts index 7ce2bae9..56cafd3f 100644 --- a/assets/Scripts/chat18x/manager/NavigationManager.ts +++ b/assets/Scripts/chat18x/manager/NavigationManager.ts @@ -7,6 +7,7 @@ import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; import { ThemePanel } from "../ui/panels/ThemePanel"; import { GirlListPanel } from "../ui/panels/GirlListPanel"; import li_BaseView from "../../Main/Common/li_BaseView"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 页面过渡动画类型枚举 @@ -120,7 +121,7 @@ export class NavigationManager { */ public registerNavigationPanel(panel: any): void { this.navigationPanel = panel; - console.log("[NavigationManager] NavigationPanel registered"); + logger.log("[NavigationManager] NavigationPanel registered"); } /** @@ -133,19 +134,19 @@ export class NavigationManager { callback: Function = null ): Node { if (!panelType) { - console.error("[NavigationManager] switchToPanel: panelType is invalid"); + logger.error("[NavigationManager] switchToPanel: panelType is invalid"); return null; } if (this.currentActivePanelType === panelType && !force) { - console.log( + logger.log( `[NavigationManager] Already on ${panelType}, skipping switch` ); return this.currentActivePanel; } if (!this.navigationPanel) { - console.warn( + logger.warn( "[NavigationManager] NavigationPanel not registered, fallback to direct ViewManager call" ); //this.fallbackSwitchPanel(panelType); @@ -377,21 +378,21 @@ export class NavigationManager { force: boolean = false ): Node { if (!panelType) { - console.error( + logger.error( "[NavigationManager] switchToPanelWithTransition: panelType is invalid" ); return null; } if (this.currentActivePanelType === panelType && !force) { - console.log( + logger.log( `[NavigationManager] Already on ${panelType}, skipping switch` ); return this.currentActivePanel; } if (!this.navigationPanel) { - console.warn( + logger.warn( "[NavigationManager] NavigationPanel not registered, fallback to direct ViewManager call" ); return null; @@ -545,13 +546,13 @@ export class NavigationManager { callback?: Function ): void { if (!panelName) { - console.error("[NavigationManager] openPopupPanel: panelName is empty"); + logger.error("[NavigationManager] openPopupPanel: panelName is empty"); return; } const popupCallback = (panel: Node) => { if (!panel || !panel.isValid) { - console.error( + logger.error( "[NavigationManager] openPopupPanel: created panel is invalid" ); return; @@ -559,7 +560,7 @@ export class NavigationManager { // 将弹窗添加到管理集合中 this.popupPanels.add(panel); - console.log( + logger.log( `[NavigationManager] Popup panel opened: ${panelName}, total popups: ${this.popupPanels.size}` ); @@ -577,14 +578,14 @@ export class NavigationManager { */ public closePopupPanel(panel: Node): void { if (!panel || !panel.isValid) { - console.warn("[NavigationManager] closePopupPanel: panel is invalid"); + logger.warn("[NavigationManager] closePopupPanel: panel is invalid"); return; } // 从弹窗管理集合中移除 if (this.popupPanels.has(panel)) { this.popupPanels.delete(panel); - console.log( + logger.log( `[NavigationManager] Popup panel closed: ${panel.name}, total popups: ${this.popupPanels.size}` ); } @@ -598,7 +599,7 @@ export class NavigationManager { panel.destroy(); } } catch (error) { - console.error("[NavigationManager] closePopupPanel error:", error); + logger.error("[NavigationManager] closePopupPanel error:", error); } } @@ -610,7 +611,7 @@ export class NavigationManager { return; } - console.log( + logger.log( `[NavigationManager] Closing all popups, count: ${this.popupPanels.size}` ); @@ -631,7 +632,7 @@ export class NavigationManager { animationConfig?: SubPanelAnimationConfig ) { if (!panel) { - console.warn( + logger.warn( "[NavigationManager] closeSubPanel: panel is null or undefined" ); return; @@ -794,7 +795,7 @@ export class NavigationManager { // 不在这里调用Show(),因为ThemePanel已经有加载状态保护 // 只在必要时调用onHide()确保子页面状态正确 if (typeof themePanel.onHide === "function") { - console.log("[NavigationManager] 确保主题面板子页面状态正确"); + logger.log("[NavigationManager] 确保主题面板子页面状态正确"); themePanel.onHide(); } } @@ -918,7 +919,7 @@ export class NavigationManager { public setSelectedGirlId(girlId: number): void { this.selectedGirlId = girlId; sys.localStorage.setItem(NavigationManager.LastSelectGirlID, girlId); - console.log("[NavigationManager] Selected girl ID set to:", girlId); + logger.log("[NavigationManager] Selected girl ID set to:", girlId); } /** @@ -935,7 +936,7 @@ export class NavigationManager { */ public setSelectedCategoryId(themeId: number): void { this.selectedCategoryId = themeId; - console.log("[NavigationManager] Selected theme ID set to:", themeId); + logger.log("[NavigationManager] Selected theme ID set to:", themeId); } /** diff --git a/assets/Scripts/chat18x/payment/CashInrFlow.ts b/assets/Scripts/chat18x/payment/CashInrFlow.ts index 6147d4e8..559b9cae 100644 --- a/assets/Scripts/chat18x/payment/CashInrFlow.ts +++ b/assets/Scripts/chat18x/payment/CashInrFlow.ts @@ -9,6 +9,7 @@ import type proto from "db://assets/Scripts/proto/proto.pb.js"; import { type OpenStrategy } from "./PaymentOpener"; import { DataManager, DataId } from "db://assets/Scripts/chat18x/data/DataManager"; import { OrderData } from "db://assets/Scripts/chat18x/data/OrderData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class CashInrFlow implements PaymentFlow { constructor(private waitAppResume: (open: OpenStrategy) => Promise) {} @@ -41,6 +42,6 @@ export class CashInrFlow implements PaymentFlow { startIntervalMs: 2000, maxIntervalMs: 10000, jitter: true, - }, (d) => console.log()); + }, (d) => logger.log()); } } diff --git a/assets/Scripts/chat18x/payment/PaymentPoller.ts b/assets/Scripts/chat18x/payment/PaymentPoller.ts index 362592c0..78f3be14 100644 --- a/assets/Scripts/chat18x/payment/PaymentPoller.ts +++ b/assets/Scripts/chat18x/payment/PaymentPoller.ts @@ -4,6 +4,7 @@ */ import { PaymentApi } from "./PaymentApi"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export interface PollOptions { maxDurationMs: number; // 最大轮询时长(超过就自动退出)(例如 2分钟) @@ -41,9 +42,9 @@ export class PaymentPoller { this.currentPollCount++; // 查询 let reqData = {orderId: orderId}; - console.log("订单:", orderId, " ,第 ", this.currentPollCount, " 次轮询订单的请求数据:", reqData); + logger.log("订单:", orderId, " ,第 ", this.currentPollCount, " 次轮询订单的请求数据:", reqData); const r = await PaymentApi.I.queryOrder(reqData); - console.log("订单:", orderId, " ,第 ", this.currentPollCount, " 次轮询订单的响应数据:", r); + logger.log("订单:", orderId, " ,第 ", this.currentPollCount, " 次轮询订单的响应数据:", r); if (r.code === proto.cs.EnmRetCode.SUCCESS && r.data) { // 回调 onTick?.(r.data); diff --git a/assets/Scripts/chat18x/payment/PaymentService.ts b/assets/Scripts/chat18x/payment/PaymentService.ts index 02a474c4..228170d5 100644 --- a/assets/Scripts/chat18x/payment/PaymentService.ts +++ b/assets/Scripts/chat18x/payment/PaymentService.ts @@ -14,6 +14,7 @@ import { DataManager, DataId } from "db://assets/Scripts/chat18x/data/DataManage import { OrderData } from "db://assets/Scripts/chat18x/data/OrderData"; import Utils from "../../Main/Common/Utils"; import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class PaymentService { private static _I: PaymentService | null = null; @@ -32,9 +33,9 @@ export class PaymentService { /** 发起支付:创建订单→打开URL→回到App后开始轮询 */ async startPayment(req: proto.cs.ICSCreateOrderReq, open: OpenStrategy = "system"): Promise { // 下单 - console.log("创建订单的请求数据:", req); + logger.log("创建订单的请求数据:", req); const create = await PaymentApi.I.createOrder(req); - console.log("创建订单的响应数据:", create); + logger.log("创建订单的响应数据:", create); if (create.code !== proto.cs.EnmRetCode.SUCCESS || !create.data) { return { status: -1, retCode: -1, balance: 0, vipExpire: 0}; } @@ -88,7 +89,7 @@ export class PaymentService { return new Promise((resolve) => { let finished = false; const finish = () => { - console.log("应用回到 finish"); + logger.log("应用回到 finish"); if (finished) return; finished = true; // 安全移除监听 @@ -98,7 +99,7 @@ export class PaymentService { const onShow = () => { // 应用回到前台 - console.log("应用回到了前台"); + logger.log("应用回到了前台"); finish(); }; diff --git a/assets/Scripts/chat18x/payment/WebUsdFlow.ts b/assets/Scripts/chat18x/payment/WebUsdFlow.ts index 4ef82927..fe884d91 100644 --- a/assets/Scripts/chat18x/payment/WebUsdFlow.ts +++ b/assets/Scripts/chat18x/payment/WebUsdFlow.ts @@ -8,6 +8,7 @@ import type proto from "db://assets/Scripts/proto/proto.pb.js"; import { type OpenStrategy } from "./PaymentOpener"; import { DataManager, DataId } from "db://assets/Scripts/chat18x/data/DataManager"; import { OrderData } from "db://assets/Scripts/chat18x/data/OrderData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class WebUsdFlow implements PaymentFlow { constructor(private delayMs: number = 5000) {} @@ -36,7 +37,7 @@ export class WebUsdFlow implements PaymentFlow { startIntervalMs: 5000, maxIntervalMs: 10000, jitter: true, - }, (d) => console.log()); + }, (d) => logger.log()); } private delay(ms: number) { diff --git a/assets/Scripts/chat18x/test/ChatAIBatchTestRunner.ts b/assets/Scripts/chat18x/test/ChatAIBatchTestRunner.ts index 4b20f0c7..16221e1d 100644 --- a/assets/Scripts/chat18x/test/ChatAIBatchTestRunner.ts +++ b/assets/Scripts/chat18x/test/ChatAIBatchTestRunner.ts @@ -1,4 +1,5 @@ import { ChatAIService } from '../core/ChatAIService'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * ChatAI 批量测试运行器 - 纯脚本版本 @@ -14,7 +15,7 @@ export class ChatAIBatchTestRunner { private isRunning: boolean = false; constructor() { - console.log("[ChatAIBatchTestRunner] 测试运行器已初始化"); + logger.log("[ChatAIBatchTestRunner] 测试运行器已初始化"); } /** @@ -32,13 +33,13 @@ export class ChatAIBatchTestRunner { */ public async runBatchTest(): Promise { if (this.isRunning) { - console.log("[ChatAIBatchTestRunner] 测试已在运行中,请等待完成..."); + logger.log("[ChatAIBatchTestRunner] 测试已在运行中,请等待完成..."); return; } this.isRunning = true; - console.log("[ChatAIBatchTestRunner] 开始批量测试角色ID 10001-10030"); - console.log("[ChatAIBatchTestRunner] 每次测试间隔10秒"); + logger.log("[ChatAIBatchTestRunner] 开始批量测试角色ID 10001-10030"); + logger.log("[ChatAIBatchTestRunner] 每次测试间隔10秒"); const startTime = Date.now(); const successIds: number[] = []; @@ -47,7 +48,7 @@ export class ChatAIBatchTestRunner { // 测试角色ID 10001-10030 for (let roleId = 10001; roleId <= 10030; roleId++) { - console.log(`[ChatAIBatchTestRunner] 正在测试角色ID: ${roleId}`); + logger.log(`[ChatAIBatchTestRunner] 正在测试角色ID: ${roleId}`); const testStartTime = Date.now(); @@ -57,12 +58,12 @@ export class ChatAIBatchTestRunner { if (response && response.trim() !== "") { successIds.push(roleId); - console.log(`[ChatAIBatchTestRunner] ✅ 角色 ${roleId} 测试成功 (${testDuration}ms)`); - console.log(`[ChatAIBatchTestRunner] 响应预览: ${response.substring(0, 50)}...`); + logger.log(`[ChatAIBatchTestRunner] ✅ 角色 ${roleId} 测试成功 (${testDuration}ms)`); + logger.log(`[ChatAIBatchTestRunner] 响应预览: ${response.substring(0, 50)}...`); } else { failureIds.push(roleId); errorDetails[roleId] = "返回空响应"; - console.log(`[ChatAIBatchTestRunner] ❌ 角色 ${roleId} 返回空响应 (${testDuration}ms)`); + logger.log(`[ChatAIBatchTestRunner] ❌ 角色 ${roleId} 返回空响应 (${testDuration}ms)`); } } catch (error) { const testDuration = Date.now() - testStartTime; @@ -70,12 +71,12 @@ export class ChatAIBatchTestRunner { failureIds.push(roleId); errorDetails[roleId] = errorMessage; - console.log(`[ChatAIBatchTestRunner] ❌ 角色 ${roleId} 测试失败 (${testDuration}ms): ${errorMessage}`); + logger.log(`[ChatAIBatchTestRunner] ❌ 角色 ${roleId} 测试失败 (${testDuration}ms): ${errorMessage}`); } // 等待10秒(最后一个不需要等待) if (roleId < 10030) { - console.log(`[ChatAIBatchTestRunner] 等待10秒后继续下一个测试...`); + logger.log(`[ChatAIBatchTestRunner] 等待10秒后继续下一个测试...`); await this.delay(10); } } @@ -86,7 +87,7 @@ export class ChatAIBatchTestRunner { this.printFinalReport(successIds, failureIds, errorDetails, totalDuration); this.isRunning = false; - console.log("[ChatAIBatchTestRunner] 批量测试完成!"); + logger.log("[ChatAIBatchTestRunner] 批量测试完成!"); } /** @@ -103,44 +104,44 @@ export class ChatAIBatchTestRunner { const failureCount = failureIds.length; const successRate = ((successCount / totalTests) * 100).toFixed(2); - console.log("\n" + "=".repeat(60)); - console.log(" ChatAI 批量测试报告"); - console.log("=".repeat(60)); - console.log(`测试时间: ${new Date().toLocaleString()}`); - console.log(`总测试数: ${totalTests}`); - console.log(`成功数量: ${successCount}`); - console.log(`失败数量: ${failureCount}`); - console.log(`成功率: ${successRate}%`); - console.log(`总耗时: ${(totalDuration / 1000).toFixed(2)}秒`); - console.log(`平均耗时: ${(totalDuration / totalTests / 1000).toFixed(2)}秒/测试`); + logger.log("\n" + "=".repeat(60)); + logger.log(" ChatAI 批量测试报告"); + logger.log("=".repeat(60)); + logger.log(`测试时间: ${new Date().toLocaleString()}`); + logger.log(`总测试数: ${totalTests}`); + logger.log(`成功数量: ${successCount}`); + logger.log(`失败数量: ${failureCount}`); + logger.log(`成功率: ${successRate}%`); + logger.log(`总耗时: ${(totalDuration / 1000).toFixed(2)}秒`); + logger.log(`平均耗时: ${(totalDuration / totalTests / 1000).toFixed(2)}秒/测试`); - console.log("\n" + "-".repeat(30) + " 成功的角色ID " + "-".repeat(30)); + logger.log("\n" + "-".repeat(30) + " 成功的角色ID " + "-".repeat(30)); if (successIds.length > 0) { const successList = this.formatIdList(successIds); - console.log(successList); + logger.log(successList); } else { - console.log("无成功案例"); + logger.log("无成功案例"); } - console.log("\n" + "-".repeat(30) + " 失败的角色ID " + "-".repeat(30)); + logger.log("\n" + "-".repeat(30) + " 失败的角色ID " + "-".repeat(30)); if (failureIds.length > 0) { const failureList = this.formatIdList(failureIds); - console.log(failureList); + logger.log(failureList); - console.log("\n" + "-".repeat(25) + " 失败详情 " + "-".repeat(25)); + logger.log("\n" + "-".repeat(25) + " 失败详情 " + "-".repeat(25)); failureIds.forEach(roleId => { - console.log(`角色 ${roleId}: ${errorDetails[roleId]}`); + logger.log(`角色 ${roleId}: ${errorDetails[roleId]}`); }); } else { - console.log("无失败案例"); + logger.log("无失败案例"); } - console.log("\n" + "=".repeat(60)); + logger.log("\n" + "=".repeat(60)); // 输出简洁版结果供复制使用 - console.log("\n简洁结果:"); - console.log(`成功(${successCount}): ${successIds.join(',')}`); - console.log(`失败(${failureCount}): ${failureIds.join(',')}`); + logger.log("\n简洁结果:"); + logger.log(`成功(${successCount}): ${successIds.join(',')}`); + logger.log(`失败(${failureCount}): ${failureIds.join(',')}`); } /** diff --git a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts index ada78b37..3ec3317a 100644 --- a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts @@ -34,6 +34,8 @@ import { NavigationManager, PanelType } from "../../manager/NavigationManager"; import { GirlService } from "../../network/services/GirlService"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import { TipsPanel } from "./TipsPanel"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; @ccclass("ChatPanel") @@ -110,9 +112,9 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { // 检查 SceneBgVideoLayer 是否可用 if (!this.videoLayer) { - console.error("ChatPanel: SceneBgVideoLayer.handle 未初始化"); + logger.error("ChatPanel: SceneBgVideoLayer.handle 未初始化"); } else { - console.log("ChatPanel: 成功获取 SceneBgVideoLayer 实例"); + logger.log("ChatPanel: 成功获取 SceneBgVideoLayer 实例"); } this.popUpImage.node.active = false; } @@ -199,7 +201,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { this.chatController.hasRoleData(this.categoryId, this.id) ) { // 如果是角色切换且有缓存数据,使用switchRole - console.log( + logger.log( `ChatPanel: Switching from role ${this.chatController.getCurrentRoleId()} to role ${ this.id }` @@ -207,7 +209,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { this.chatController.switchRole(this.categoryId, this.id); } else { // 首次初始化或没有缓存数据,使用initialize - console.log(`ChatPanel: Initializing role ${this.id}`); + logger.log(`ChatPanel: Initializing role ${this.id}`); this.chatController.initialize(this.categoryId, this.id); } } @@ -234,7 +236,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { if (this.videoLayer) { // Get current emotion from ChatController const currentEmotion = this.chatController.getCurrentEmotion(); - console.log( + logger.log( `Current emotion for role ${this.id}: ${VideoEmotion[currentEmotion]}` ); @@ -244,7 +246,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { chatModel.getDefaultVideo(); if (initialVideo) { - console.log( + logger.log( `Loading initial video: ${initialVideo} (emotion: ${VideoEmotion[initialVideo]})` ); @@ -263,7 +265,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { } } else { this.currentEmotion = null; // Reset current emotion when no videos available - console.log("No SceneBgVideoLayer available for role", this.id); + logger.log("No SceneBgVideoLayer available for role", this.id); } } @@ -272,35 +274,35 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { * 保留此方法仅为了兼容性,但不再主动调用 */ adjustVideoScale() { - console.log( + logger.log( "ChatPanel: adjustVideoScale() 方法已废弃,缩放和位置由 playVideo() 自动处理" ); // 如果确实需要手动调整,可以重新调用 playVideo // this.videoLayer.playVideo(currentVideo, { size, position }); } onChatCountChange() { - console.log("Trigger On ChatCount Change"); + logger.log("Trigger On ChatCount Change"); const girlData = DataManager.I.getDataById(DataId.Girl); let triggerId = girlData.getTriggerGrilPhotoId(this.categoryId, this.id); if (triggerId == 0) return; - console.log("Trigger pop up Image id:" + this.id + "--" + triggerId); + logger.log("Trigger pop up Image id:" + this.id + "--" + triggerId); this.popUpImage.refresh(this.categoryId, this.id, triggerId); } setVideoEnable(enable: boolean) { if (!this.videoLayer) { - console.error("ChatPanel: SceneBgVideoLayer 不可用"); + logger.error("ChatPanel: SceneBgVideoLayer 不可用"); return; } if (enable) { this.videoLayer.resume(); - console.log("ChatPanel: 恢复视频播放"); + logger.log("ChatPanel: 恢复视频播放"); } else { this.videoLayer.pause(); - console.log("ChatPanel: 暂停视频播放"); + logger.log("ChatPanel: 暂停视频播放"); } } @@ -314,7 +316,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { // Check if emotion has changed if (this.currentEmotion === emotion) { - console.log( + logger.log( `Emotion ${VideoEmotion[emotion]} unchanged, skipping video switch` ); return; @@ -324,7 +326,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { const matchingVideo = chatModel.getVideoByEmotion(emotion); if (matchingVideo) { - console.log( + logger.log( `Switching to video for emotion ${ VideoEmotion[emotion] }: ${matchingVideo} (from ${ @@ -346,14 +348,14 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { // 注意:移除了 adjustVideoScale() 调用,因为 playVideo 现在会自动处理缩放和位置 this.setVideoEnable(true); } else { - console.warn( + logger.warn( `No video found for emotion ${VideoEmotion[emotion]}, falling back to default video` ); // Fallback to default video from ChatModel const fallbackVideo = chatModel.getDefaultVideo(); if (fallbackVideo) { - console.log( + logger.log( `Loading fallback video: ${fallbackVideo} (emotion: ${VideoEmotion[fallbackVideo]})` ); @@ -378,7 +380,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { }): void { // 检查是否是当前角色 if (data.roleId === this.id) { - console.log( + logger.log( `Emotion initialized for current role ${this.id}: ${ VideoEmotion[data.emotion] }` @@ -387,7 +389,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { // 切换到对应的视频 this.switchVideoByEmotion(data.emotion); } else { - console.log( + logger.log( `Emotion initialized for role ${data.roleId} (not current role ${this.id}), ignoring` ); } @@ -444,7 +446,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { * @param message 用户发送的消息 */ public onMessageSent(message: string): void { - console.log("Message sent:", message); + logger.log("Message sent:", message); // 消息发送后开始显示加载动画,由DialogManager处理 } @@ -453,7 +455,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { * @param response AI的回复内容 */ public onMessageReceived(response: string): void { - //console.log("Message received:", response); + //logger.log("Message received:", response); // AI回复收到后加载动画会被自动移除,可以在这里添加其他UI效果 } @@ -483,7 +485,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { * @param emotion 当前情绪状态 */ public onEmotionUpdated(emotion: VideoEmotion): void { - console.log( + logger.log( `ChatPanel: Emotion updated to ${VideoEmotion[emotion]} (${emotion})` ); @@ -495,23 +497,23 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { switch (emotion) { case VideoEmotion.calm_down: // 平静状态的UI更新 - console.log("UI state: Calm"); + logger.log("UI state: Calm"); break; case VideoEmotion.arousal: // 兴奋状态的UI更新 - console.log("UI state: Arousal"); + logger.log("UI state: Arousal"); break; case VideoEmotion.desire: // 渴望状态的UI更新 - console.log("UI state: Desire"); + logger.log("UI state: Desire"); break; case VideoEmotion.passion: // 激情状态的UI更新 - console.log("UI state: Passion"); + logger.log("UI state: Passion"); break; case VideoEmotion.orgasm: // 高潮状态的UI更新 - console.log("UI state: Orgasm"); + logger.log("UI state: Orgasm"); break; } } @@ -529,17 +531,17 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { */ public clearRoleDataDebug(roleId?: number): void { if (!this.chatController) { - console.warn("ChatController not initialized"); + logger.warn("ChatController not initialized"); return; } const targetRoleId = roleId || this.id; if (!targetRoleId) { - console.warn("No role ID specified"); + logger.warn("No role ID specified"); return; } this.chatController.clearRoleData(targetRoleId); - console.log(`Cleared data for role ${targetRoleId}`); + logger.log(`Cleared data for role ${targetRoleId}`); } } diff --git a/assets/Scripts/chat18x/ui/panels/GirlListPopupPanel.ts b/assets/Scripts/chat18x/ui/panels/GirlListPopupPanel.ts index 83ae9ee9..4e1a2187 100644 --- a/assets/Scripts/chat18x/ui/panels/GirlListPopupPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/GirlListPopupPanel.ts @@ -26,6 +26,8 @@ import { ViewManager } from "../../../Main/Manager/ViewManager"; import { TipsPanel } from "./TipsPanel"; import ResManager from "../../../Main/Manager/ResManager"; import { InnerMsgCode } from "../../../Main/Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; @ccclass("GirlListPopupPanel") @@ -79,7 +81,7 @@ export class GirlListPopupPanel extends li_BaseView { const path = girlData.getGrilAvatar(this.category.toString(), this.girlId); this.refreshCoinNum(); - //console.log(path); + //logger.log(path); // 加载远程资源 const envData = DataManager.I.getDataById(DataId.Env); let newPath = envData.cdn + "/" + "Girls/" + path + ".png"; @@ -101,13 +103,13 @@ export class GirlListPopupPanel extends li_BaseView { } async buyCharacter() { // 购买id为girlId的女生 - console.log(this.girlId); + logger.log(this.girlId); // 请求解锁 const reqData = { id: this.girlId, }; let res = await GirlService.I.reqUnlockGirl(reqData); - console.log("请求解锁技师响应数据:", res); + logger.log("请求解锁技师响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 diff --git a/assets/Scripts/chat18x/ui/panels/NavigationPanel.ts b/assets/Scripts/chat18x/ui/panels/NavigationPanel.ts index 15a17012..3e5cd69e 100644 --- a/assets/Scripts/chat18x/ui/panels/NavigationPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/NavigationPanel.ts @@ -6,6 +6,7 @@ import { NavigationManager, PanelType } from "../../manager/NavigationManager"; import { NavigationBtn } from "../items/NavigationBtn"; import { ChatHistoryManager } from "../../manager/ChatHistoryManager"; import { PastGirlListPanel } from "./PastGirlListPanel"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -101,7 +102,7 @@ export class NavigationPanel extends li_BaseView { private refreshButtonVisuals() { // TODO: 实现按钮状态更新的视觉效果 // 根据 currentActivePanel 更新按钮的选中状态 - console.log( + logger.log( "[NavigationPanel] Button states updated for:", this.currentActivePanel ); diff --git a/assets/Scripts/chat18x/ui/panels/PayToTalkSubpanel.ts b/assets/Scripts/chat18x/ui/panels/PayToTalkSubpanel.ts index 8841856b..96a53f6f 100644 --- a/assets/Scripts/chat18x/ui/panels/PayToTalkSubpanel.ts +++ b/assets/Scripts/chat18x/ui/panels/PayToTalkSubpanel.ts @@ -17,6 +17,8 @@ import proto from "db://assets/Scripts/proto/proto.pb.js"; import { ConfigId, ConfigManager } from "../../manager/ConfigManager"; import { PurchaseConfig } from "../../config/PurchaseConfig"; import LanguageUtils from "../../../Main/Common/LanguageUtils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; @ccclass("PayToTalkSubpanel") @@ -76,7 +78,7 @@ export class PayToTalkSubpanel extends Component { //ChatController.Instance.resetChatCount(); const shopData = DataManager.I.getDataById(DataId.Shop); const chatIds = shopData.getChatIds(); - console.log("聊天商品Id: ", chatIds); + logger.log("聊天商品Id: ", chatIds); if (chatIds.length > 0) { this.reqBuyGood(chatIds[0], this.girlId); } @@ -84,7 +86,7 @@ export class PayToTalkSubpanel extends Component { onClick_BuyVip() { //购买VIP - console.log("购买vip"); + logger.log("购买vip"); const shopData = DataManager.I.getDataById(DataId.Shop); const memberId = shopData.get7DayMemberId(); this.reqBuyGood(memberId, this.girlId); @@ -98,7 +100,7 @@ export class PayToTalkSubpanel extends Component { girlId: girlId, }; let res = await ShopService.I.reqBuyGood(reqData); - console.log("请求使用余额购买商品的响应数据:", res); + logger.log("请求使用余额购买商品的响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 diff --git a/assets/Scripts/chat18x/ui/panels/ShowPanel.ts b/assets/Scripts/chat18x/ui/panels/ShowPanel.ts index 2a5d8ef3..3aa8f9fa 100644 --- a/assets/Scripts/chat18x/ui/panels/ShowPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ShowPanel.ts @@ -18,6 +18,8 @@ import { GButton } from "db://assets/Scripts/Main/Common/GButton"; import { SceneBgVideoLayer } from "../../../Sub/UI/SceneBgVideoLayer"; import { DataManager, DataId } from "../../data/DataManager"; import { EnvData } from "../../data/EnvData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; interface ShowPanelData { @@ -139,7 +141,7 @@ export class ShowPanel extends li_BaseView { const scale = Math.max(scaleX, scaleY); // 填满整个区域 this.videoPlayer.node.setScale(new Vec3(scale, scale, 1)); - console.log(`ShowPanel: 调整视频缩放到 ${scale}`); + logger.log(`ShowPanel: 调整视频缩放到 ${scale}`); } } } diff --git a/assets/Scripts/chat18x/ui/panels/ThemePanel.ts b/assets/Scripts/chat18x/ui/panels/ThemePanel.ts index 2521b0b1..2f54c70c 100644 --- a/assets/Scripts/chat18x/ui/panels/ThemePanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ThemePanel.ts @@ -35,6 +35,7 @@ import proto from "db://assets/Scripts/proto/proto.pb.js"; import GameRootUI from "../../../Main/Common/GameRootUI"; import { MainController } from "../../core/MainController"; import { GirlListPanel } from "./GirlListPanel"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -79,7 +80,7 @@ export class ThemePanel extends li_BaseView { async Show(forceRefresh: boolean = false) { // 防止重复加载 if (this.isLoading) { - console.log("[ThemePanel] 已在加载中,等待当前加载完成"); + logger.log("[ThemePanel] 已在加载中,等待当前加载完成"); if (this.loadingPromise) { await this.loadingPromise; } @@ -123,12 +124,12 @@ export class ThemePanel extends li_BaseView { // 如果需要强制刷新,先刷新数据 if (forceRefresh) { - console.log("[ThemePanel] 开始强制刷新数据"); + logger.log("[ThemePanel] 开始强制刷新数据"); await Promise.all([ MainController.I.refreshThemeData(), MainController.I.refreshDailyRecommend(), ]); - console.log("[ThemePanel] 数据刷新完成"); + logger.log("[ThemePanel] 数据刷新完成"); // 再次检查是否已被取消 if (signal.aborted) { @@ -138,7 +139,7 @@ export class ThemePanel extends li_BaseView { // 优先使用MainController中预加载的数据 const preloadStatus = MainController.I.getPreloadStatus(); - console.log("[ThemePanel] 预加载状态:", preloadStatus); + logger.log("[ThemePanel] 预加载状态:", preloadStatus); // 处理主题数据 await this.handleThemeData(preloadStatus.themeData); @@ -161,13 +162,13 @@ export class ThemePanel extends li_BaseView { // 处理商品列表数据 await this.handleShopListData(preloadStatus.shopList); } catch (error) { - console.error("[ThemePanel] Show操作出错:", error); + logger.error("[ThemePanel] Show操作出错:", error); this._nodeTab.loadingRec.active = false; // 如果不是取消操作导致的错误,可以考虑显示错误提示 if (error.message !== "Operation was aborted") { // 这里可以添加错误提示逻辑 - console.error("[ThemePanel] 数据加载失败,请稍后重试"); + logger.error("[ThemePanel] 数据加载失败,请稍后重试"); } } finally { this.abortController = null; @@ -179,7 +180,7 @@ export class ThemePanel extends li_BaseView { */ private async handleThemeData(isPreloaded: boolean): Promise { if (isPreloaded) { - console.log("[ThemePanel] 使用预加载的主题数据"); + logger.log("[ThemePanel] 使用预加载的主题数据"); // 直接使用预加载的数据渲染界面 const themeData = DataManager.I.getDataById(DataId.Theme); if (themeData && themeData.themes) { @@ -189,7 +190,7 @@ export class ThemePanel extends li_BaseView { } // 如果没有预加载数据,则请求数据 - console.log("[ThemePanel] 请求主题数据"); + logger.log("[ThemePanel] 请求主题数据"); const reqData = {}; let res = await ThemeService.I.reqHallTheme(reqData); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { @@ -220,7 +221,7 @@ export class ThemePanel extends li_BaseView { */ private async handleDailyRecommendData(isPreloaded: boolean): Promise { if (isPreloaded) { - console.log("[ThemePanel] 使用预加载的每日推荐数据"); + logger.log("[ThemePanel] 使用预加载的每日推荐数据"); // 直接使用预加载的数据渲染界面 const girlData = DataManager.I.getDataById(DataId.Girl); if (girlData) { @@ -230,7 +231,7 @@ export class ThemePanel extends li_BaseView { } // 如果没有预加载数据,则请求数据 - console.log("[ThemePanel] 请求每日推荐数据"); + logger.log("[ThemePanel] 请求每日推荐数据"); const reqData = {}; let res = await GirlService.I.reqDailyRecommend(reqData); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { @@ -266,13 +267,13 @@ export class ThemePanel extends li_BaseView { */ private async handleShopListData(isPreloaded: boolean): Promise { if (isPreloaded) { - console.log("[ThemePanel] 商品列表数据已预加载"); + logger.log("[ThemePanel] 商品列表数据已预加载"); // 数据已经在DataManager中,不需要额外处理 return; } // 如果没有预加载数据,则请求数据 - console.log("[ThemePanel] 请求商品列表数据"); + logger.log("[ThemePanel] 请求商品列表数据"); await this.reqShopList(); } @@ -336,7 +337,7 @@ export class ThemePanel extends li_BaseView { } openMsgBox() { - console.log("打开信箱"); + logger.log("打开信箱"); } // 刷新余额 @@ -380,7 +381,7 @@ export class ThemePanel extends li_BaseView { */ private clearCache(): void { if (this.cache && this.cache.length > 0) { - console.log(`[ThemePanel] 清理 ${this.cache.length} 个缓存节点`); + logger.log(`[ThemePanel] 清理 ${this.cache.length} 个缓存节点`); for (let i = this.cache.length - 1; i >= 0; i--) { if (this.cache[i] && this.cache[i].node && this.cache[i].node.isValid) { this.cache[i].node.destroy(); @@ -394,7 +395,7 @@ export class ThemePanel extends li_BaseView { * 页面被隐藏时调用 */ public onHide(): void { - console.log("[ThemePanel] onHide called"); + logger.log("[ThemePanel] onHide called"); this.cancelCurrentOperation(); } @@ -403,14 +404,14 @@ export class ThemePanel extends li_BaseView { */ private cancelCurrentOperation(): void { if (this.abortController) { - console.log("[ThemePanel] 取消当前操作"); + logger.log("[ThemePanel] 取消当前操作"); this.abortController.abort(); this.abortController = null; } } onDestroy(): void { - console.log("[ThemePanel] onDestroy called"); + logger.log("[ThemePanel] onDestroy called"); // 取消当前操作 this.cancelCurrentOperation(); diff --git a/assets/Scripts/chat18x/ui/panels/Web3PopPanel.ts b/assets/Scripts/chat18x/ui/panels/Web3PopPanel.ts index b9f924f5..e8576ee5 100644 --- a/assets/Scripts/chat18x/ui/panels/Web3PopPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/Web3PopPanel.ts @@ -11,6 +11,7 @@ import { QRCodeGenerator } from "db://assets/utils/qrcodeGenerator"; import { TipsPanel } from "./TipsPanel"; import { SDKManager } from "../../../Main/Channel/SDKManager"; import LanguageUtils from "../../../Main/Common/LanguageUtils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -326,7 +327,7 @@ export class Web3PopPanel extends li_BaseView { } private onCountdownExpired(): void { - console.log("Web3支付倒计时已过期"); + logger.log("Web3支付倒计时已过期"); this.disableButtons(); TipsPanel.show("支付时间已过期,请重新发起支付"); } diff --git a/assets/Scripts/chat18x/uiitems/GirlListItem.ts b/assets/Scripts/chat18x/uiitems/GirlListItem.ts index 6c2e6e54..5dd33353 100644 --- a/assets/Scripts/chat18x/uiitems/GirlListItem.ts +++ b/assets/Scripts/chat18x/uiitems/GirlListItem.ts @@ -19,6 +19,7 @@ import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; import { DataManager, DataId } from "../data/DataManager"; import { GirlData } from "../data/GirlData"; import { EnvData } from "../data/EnvData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -148,7 +149,7 @@ export class GirlListItem extends Component { }); const star = girlData.getStar(this.category.toString(), this.id); - console.log("好感度:" + star); + logger.log("好感度:" + star); for (let i = 0; i < this.stars.length; i++) { const element = this.stars[i]; if (star > i) { diff --git a/assets/Scripts/chat18x/uiitems/ThemeItem.ts b/assets/Scripts/chat18x/uiitems/ThemeItem.ts index d88093e3..658d64c0 100644 --- a/assets/Scripts/chat18x/uiitems/ThemeItem.ts +++ b/assets/Scripts/chat18x/uiitems/ThemeItem.ts @@ -11,6 +11,8 @@ import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; import { DataManager, DataId } from "../data/DataManager"; import { ThemeData } from "../data/ThemeData"; import { ViewManager } from "../../Main/Manager/ViewManager"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; @ccclass("ThemeItem") @@ -91,7 +93,7 @@ export class ThemeItem extends Component { return; } - console.log( + logger.log( "[ThemeItem] Opening GirlListPanel for category:", this.category ); diff --git a/assets/Scripts/chat18x/utils/ErrorHandler.ts b/assets/Scripts/chat18x/utils/ErrorHandler.ts index 156b3689..a07e37f9 100644 --- a/assets/Scripts/chat18x/utils/ErrorHandler.ts +++ b/assets/Scripts/chat18x/utils/ErrorHandler.ts @@ -7,6 +7,8 @@ * @version 1.0.0 */ +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + export enum ErrorType { /** API调用错误 */ API_ERROR = "API_ERROR", @@ -166,18 +168,18 @@ export class ErrorHandler { switch (errorInfo.type) { case ErrorType.API_ERROR: case ErrorType.NETWORK_ERROR: - console.error(logMessage, errorInfo.details); + logger.error(logMessage, errorInfo.details); break; case ErrorType.VALIDATION_ERROR: - console.warn(logMessage, errorInfo.details); + logger.warn(logMessage, errorInfo.details); break; default: - console.log(logMessage, errorInfo.details); + logger.log(logMessage, errorInfo.details); } // 如果有堆栈信息,也输出 if (errorInfo.stack) { - console.error("Stack trace:", errorInfo.stack); + logger.error("Stack trace:", errorInfo.stack); } } @@ -205,7 +207,7 @@ export class ErrorHandler { } // TODO: 这里应该显示UI提示,比如Toast或对话框 - console.log("用户提示:", userMessage); + logger.log("用户提示:", userMessage); } /** @@ -220,7 +222,7 @@ export class ErrorHandler { */ public clearErrorLog(): void { this.errorLog = []; - console.log("Error log cleared"); + logger.log("Error log cleared"); } /** diff --git a/assets/Scripts/chat18x/utils/polyfills.ts b/assets/Scripts/chat18x/utils/polyfills.ts index 5be58ad2..96de881a 100644 --- a/assets/Scripts/chat18x/utils/polyfills.ts +++ b/assets/Scripts/chat18x/utils/polyfills.ts @@ -37,8 +37,6 @@ export function initPolyfills(): void { return obj; }; - - //console.log('[Polyfill] structuredClone polyfill loaded'); } } diff --git a/assets/Scripts/luban/ByteBuf.ts b/assets/Scripts/luban/ByteBuf.ts index 6c195a41..93722366 100644 --- a/assets/Scripts/luban/ByteBuf.ts +++ b/assets/Scripts/luban/ByteBuf.ts @@ -1,4 +1,6 @@ import b from "buffer/index.js"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { Buffer } = b; export enum EDeserializeError { @@ -153,7 +155,7 @@ export default class ByteBuf { return x } else if (h < 0xe0) { - // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + // logger.log(`== read ${buf.readInt32BE(this._readerIndex)}`) this.ensureRead(3) const x = ((h & 0x1f) << 16) | (buf.readUInt16BE(this._readerIndex + 1)) this._readerIndex += 3 @@ -161,7 +163,7 @@ export default class ByteBuf { } else if (h < 0xf0) { this.ensureRead(4) - // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + // logger.log(`== read ${buf.readInt32BE(this._readerIndex)}`) const x = buf.readInt32BE(this._readerIndex) & 0x0fffffff this._readerIndex += 4 return x @@ -194,12 +196,12 @@ export default class ByteBuf { else if (h < 0xc0) { this.ensureRead(2) const x = buf.readUInt16BE(this._readerIndex) & 0x3fff - // console.log(`== read long :${x} index:${this._readerIndex}`) + // logger.log(`== read long :${x} index:${this._readerIndex}`) this._readerIndex += 2 return x } else if (h < 0xe0) { - // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + // logger.log(`== read ${buf.readInt32BE(this._readerIndex)}`) this.ensureRead(3) const x = ((h & 0x1f) << 16) | (buf.readUInt16BE(this._readerIndex + 1)) this._readerIndex += 3 @@ -207,7 +209,7 @@ export default class ByteBuf { } else if (h < 0xf0) { this.ensureRead(4) - // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + // logger.log(`== read ${buf.readInt32BE(this._readerIndex)}`) const x = buf.readInt32BE(this._readerIndex) & 0x0fffffff this._readerIndex += 4 return x @@ -304,7 +306,7 @@ export default class ByteBuf { // TODO 是否要对 < Number.MAX_SAFE_INTEGER 优化处理? const xl = buf.readUInt32BE(this._readerIndex + 4) const xh = buf.readUInt32BE(this._readerIndex) & 0xffffff - // console.log(`== read8 ${xl} ${xh}`) + // logger.log(`== read8 ${xl} ${xh}`) this._readerIndex += 8 return (BigInt(xh) << BigInt(32)) | BigInt(xl) } diff --git a/assets/Scripts/test/QRCodeGeneratorTest.ts b/assets/Scripts/test/QRCodeGeneratorTest.ts index 52078a75..5af21dba 100644 --- a/assets/Scripts/test/QRCodeGeneratorTest.ts +++ b/assets/Scripts/test/QRCodeGeneratorTest.ts @@ -1,5 +1,6 @@ import { _decorator, Component, Node, Sprite, Label, Button } from 'cc'; import { QRCodeGenerator } from '../../utils/qrcodeGenerator'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -66,7 +67,7 @@ export class QRCodeGeneratorTest extends Component { this.updateStatus(`✓ 成功生成二维码 (${this.currentIndex + 1}/${this.testTexts.length})`); // 打印一些调试信息 - console.log('QRCode生成成功:', { + logger.log('QRCode生成成功:', { text: testText, spriteFrame: qrSprite.spriteFrame, size: qrSprite.spriteFrame?.texture?.width + 'x' + qrSprite.spriteFrame?.texture?.height @@ -88,10 +89,10 @@ export class QRCodeGeneratorTest extends Component { // 演示方法3: 生成 Base64 字符串 // const base64 = QRCodeGenerator.generateQRCodeBase64(testText, 200, 8); - // console.log('QRCode Base64:', base64.substring(0, 100) + '...'); + // logger.log('QRCode Base64:', base64.substring(0, 100) + '...'); } catch (error) { - console.error('QRCode生成测试失败:', error); + logger.error('QRCode生成测试失败:', error); this.updateStatus('✗ 生成失败: ' + error.message); } } @@ -100,7 +101,7 @@ export class QRCodeGeneratorTest extends Component { if (this.statusLabel) { this.statusLabel.string = message; } - console.log('QRCodeTest:', message); + logger.log('QRCodeTest:', message); } /** @@ -109,17 +110,17 @@ export class QRCodeGeneratorTest extends Component { public static createQRCodeExample() { // 示例1: 生成网址二维码(异步) QRCodeGenerator.generateQRCodeSprite('https://www.example.com', 256, 4, (urlQR) => { - console.log('URL二维码生成完成:', urlQR); + logger.log('URL二维码生成完成:', urlQR); }); // 示例2: 生成文本二维码,自定义尺寸(异步) QRCodeGenerator.generateQRCodeSpriteFrame('Hello World!', 300, 10, (textQR) => { - console.log('文本二维码生成完成:', textQR); + logger.log('文本二维码生成完成:', textQR); }); // 示例3: 生成Base64格式二维码(同步) const base64QR = QRCodeGenerator.generateQRCodeBase64('测试数据', 150, 5); - console.log('Base64二维码生成完成:', base64QR.substring(0, 100) + '...'); + logger.log('Base64二维码生成完成:', base64QR.substring(0, 100) + '...'); return { message: '二维码生成中,请查看控制台日志' }; } From e78f6b937eb72c766679a21622f002fc5e5bce9b Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 20:25:36 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/chat18x/core/ChatAIService.ts | 23 ++++---- assets/Scripts/chat18x/core/ChatController.ts | 45 ++++++++-------- .../Scripts/chat18x/core/EmotionAIService.ts | 23 ++++---- assets/Scripts/chat18x/core/MainController.ts | 54 ++++++++++--------- assets/Scripts/chat18x/data/ChatModel.ts | 29 +++++----- assets/Scripts/chat18x/data/ShopData.ts | 3 +- assets/Scripts/chat18x/data/ThemeData.ts | 3 +- .../chat18x/ui/panels/GirlDetailPanel.ts | 21 ++++---- .../chat18x/ui/panels/PastGirlListPanel.ts | 3 +- .../chat18x/ui/panels/PersonalPanel.ts | 3 +- .../chat18x/ui/panels/PopupGirlDetailPanel.ts | 6 ++- .../chat18x/ui/panels/PurchasePanel.ts | 9 ++-- .../Scripts/chat18x/ui/panels/RecordPanel.ts | 7 +-- 13 files changed, 122 insertions(+), 107 deletions(-) diff --git a/assets/Scripts/chat18x/core/ChatAIService.ts b/assets/Scripts/chat18x/core/ChatAIService.ts index eb9c83b4..ec86b28b 100644 --- a/assets/Scripts/chat18x/core/ChatAIService.ts +++ b/assets/Scripts/chat18x/core/ChatAIService.ts @@ -12,6 +12,7 @@ import { GirlData } from "../data/GirlData"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import { TipsPanel } from "../ui/panels/TipsPanel"; import LanguageUtils from "../../Main/Common/LanguageUtils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * AI聊天服务类 @@ -130,7 +131,7 @@ export class ChatAIService { }, history: savedHistory, }); - console.log( + logger.log( `Loaded ${savedHistory.length} history messages for role ${roleId}` ); } else { @@ -164,7 +165,7 @@ export class ChatAIService { ], }, }); - console.log(`Created new chat instance for role ${roleId}`); + logger.log(`Created new chat instance for role ${roleId}`); } this.chatInstances.set(roleId, chat); @@ -201,7 +202,7 @@ export class ChatAIService { * @example * ```typescript * const response = await chatService.sendMessage(10001, "你好"); - * console.log(response); // AI的回复 + * logger.log(response); // AI的回复 * ``` */ public async sendMessage(roleId: number, message: string): Promise { @@ -231,7 +232,7 @@ export class ChatAIService { }); if (response && response.text) { - console.log(`Response from role ${roleId}:`, response.text); + logger.log(`Response from role ${roleId}:`, response.text); try { // 保存用户消息 @@ -318,7 +319,7 @@ export class ChatAIService { EmotionAIService.Instance.clearEmotionHistory(roleId); // 清除本地存储的历史 ChatHistoryManager.Instance.clearHistory(roleId); - console.log(`Cleared chat history for role ${roleId}`); + logger.log(`Cleared chat history for role ${roleId}`); } /** @@ -330,7 +331,7 @@ export class ChatAIService { EmotionAIService.Instance.clearAllEmotionHistory(); // 清除本地存储的所有历史 ChatHistoryManager.Instance.clearAllHistory(); - console.log("Cleared all chat histories"); + logger.log("Cleared all chat histories"); } /** @@ -345,7 +346,7 @@ export class ChatAIService { * @deprecated 请使用sendMessage方法,此方法将在下个版本中移除 */ public async Post(data: GPTRequest): Promise { - console.warn("Post方法已废弃,请使用sendMessage方法"); + logger.warn("Post方法已废弃,请使用sendMessage方法"); const roleId = this.currentRoleId || 10001; // 默认使用第一个角色 const message = data.messages[0]?.content || ""; return this.sendMessage(roleId, message); @@ -360,9 +361,9 @@ export class ChatAIService { girlId, msgs: msgList, }; - console.log("请求上报聊天数据的请求数据:", reqData); + logger.log("请求上报聊天数据的请求数据:", reqData); let res = await ChatService.I.reqChatMsg(reqData); - console.log("请求上报聊天数据的响应数据:", res); + logger.log("请求上报聊天数据的响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 @@ -391,9 +392,9 @@ export class ChatAIService { page, limit, }; - console.log("获取聊天数据的请求数据:", reqData); + logger.log("获取聊天数据的请求数据:", reqData); let res = await ChatService.I.reqGetChatMsg(reqData); - console.log("获取聊天数据的响应数据:", res); + logger.log("获取聊天数据的响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 diff --git a/assets/Scripts/chat18x/core/ChatController.ts b/assets/Scripts/chat18x/core/ChatController.ts index 1d0c18e5..5f09192a 100644 --- a/assets/Scripts/chat18x/core/ChatController.ts +++ b/assets/Scripts/chat18x/core/ChatController.ts @@ -9,6 +9,7 @@ import Utils from "../../Main/Common/Utils"; import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; import { TipsPanel } from "../ui/panels/TipsPanel"; import LanguageUtils from "../../Main/Common/LanguageUtils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 聊天控制器接口 - 定义Panel和Controller之间的通信协议 @@ -102,7 +103,7 @@ export class ChatController { */ public bindView(callback: IChatPanelCallback): void { this.callback = callback; - console.log("ChatController: View bound successfully"); + logger.log("ChatController: View bound successfully"); } /** @@ -110,7 +111,7 @@ export class ChatController { */ public unbindView(): void { this.callback = null; - console.log("ChatController: View unbound"); + logger.log("ChatController: View unbound"); } /** @@ -139,7 +140,7 @@ export class ChatController { // 同步到DialogManager //this.syncDialogData(); - console.log(`ChatController initialized with role ${roleId}`); + logger.log(`ChatController initialized with role ${roleId}`); } else { const error = new Error(`Invalid roleId: ${roleId}`); this.handleError(error); @@ -153,7 +154,7 @@ export class ChatController { */ public switchRole(categoryId: string, roleId: number): boolean { if (!this.chatModel.switchToRole(categoryId, roleId)) { - console.error(`Failed to switch to role ${roleId}`); + logger.error(`Failed to switch to role ${roleId}`); return false; } @@ -166,7 +167,7 @@ export class ChatController { // 同步对话数据到DialogManager //this.syncDialogData(); - console.log(`ChatController switched to role ${roleId}`); + logger.log(`ChatController switched to role ${roleId}`); return true; } @@ -182,7 +183,7 @@ export class ChatController { // 检查聊天次数限制 if (!this.canSendMessage()) { - console.warn("ChatController: Cannot send message - chat limit reached"); + logger.warn("ChatController: Cannot send message - chat limit reached"); this.callback?.onChatLimitReached(); return false; } @@ -190,7 +191,7 @@ export class ChatController { try { const roleId = this.chatModel.getCurrentRoleId(); if (!roleId) { - console.error("Role ID is not available in ChatModel"); + logger.error("Role ID is not available in ChatModel"); TipsPanel.show(LanguageUtils.getText("chat_error_code_1004")); } @@ -200,7 +201,7 @@ export class ChatController { // 显示加载中的对话 //this.dialogManager?.addLoadingDialog(); - console.log(`Sending message to role ${roleId}: ${message}`); + logger.log(`Sending message to role ${roleId}: ${message}`); // 发送消息给AI服务 const response = await ChatAIService.Instance.sendMessage( roleId, @@ -225,7 +226,7 @@ export class ChatController { // 注意:情绪状态将通过异步事件更新,不在这里同步获取 - console.log(`Response received from role ${roleId}: ${response}`); + logger.log(`Response received from role ${roleId}: ${response}`); return true; } else { return false; @@ -259,7 +260,7 @@ export class ChatController { public clearChatHistory(): void { const roleId = this.chatModel.getCurrentRoleId(); if (!roleId) { - console.warn("Cannot clear history: roleId is null"); + logger.warn("Cannot clear history: roleId is null"); return; } @@ -270,9 +271,9 @@ export class ChatController { // 清除模型中的对话记录 this.chatModel.clearDialogs(); - console.log(`Chat history cleared for role ${roleId}`); + logger.log(`Chat history cleared for role ${roleId}`); } catch (error) { - console.error("Failed to clear chat history:", error); + logger.error("Failed to clear chat history:", error); this.handleError(error as Error); } } @@ -289,9 +290,9 @@ export class ChatController { // 清除模型中的对话记录 this.chatModel.clearDialogs(roleId); - console.log(`Chat history cleared for role ${roleId}`); + logger.log(`Chat history cleared for role ${roleId}`); } catch (error) { - console.error(`Failed to clear chat history for role ${roleId}:`, error); + logger.error(`Failed to clear chat history for role ${roleId}:`, error); this.handleError(error as Error); } } @@ -311,7 +312,7 @@ export class ChatController { this.chatModel.reset(); this.callback = null; this.dialogManager = null; - console.log("ChatController destroyed"); + logger.log("ChatController destroyed"); } /** @@ -373,7 +374,7 @@ export class ChatController { this.chatModel.addDialog(isPlayer, content, targetRoleId); }); - console.log( + logger.log( `Loaded ${chatHistory.length} messages from ChatHistoryManager for role ${targetRoleId}` ); } @@ -384,7 +385,7 @@ export class ChatController { */ public syncDialogData(): void { if (!this.dialogManager || !this.chatModel.validate()) { - console.warn( + logger.warn( "Cannot sync dialog data: missing DialogManager or invalid ChatModel" ); return; @@ -392,7 +393,7 @@ export class ChatController { const dialogs = this.chatModel.getDialogs(); this.dialogManager.syncFromChatModel(dialogs); - console.log( + logger.log( `Synced ${dialogs.length} dialogs from ChatModel to DialogManager` ); } @@ -445,9 +446,9 @@ export class ChatController { // 清除模型中的角色数据 this.chatModel.clearRoleData(roleId); - console.log(`All data cleared for role ${roleId}`); + logger.log(`All data cleared for role ${roleId}`); } catch (error) { - console.error(`Failed to clear all data for role ${roleId}:`, error); + logger.error(`Failed to clear all data for role ${roleId}:`, error); this.handleError(error as Error); } } @@ -482,7 +483,7 @@ export class ChatController { */ private onEmotionUpdated(data: any): void { if (!data || !data.roleId || data.emotion === undefined) { - console.warn("Invalid emotion update data:", data); + logger.warn("Invalid emotion update data:", data); return; } @@ -490,7 +491,7 @@ export class ChatController { // 只处理当前角色的情绪更新 if (roleId === this.chatModel.getCurrentRoleId()) { - console.log( + logger.log( `ChatController: Emotion updated for role ${roleId}: ${VideoEmotion[emotion]}` ); diff --git a/assets/Scripts/chat18x/core/EmotionAIService.ts b/assets/Scripts/chat18x/core/EmotionAIService.ts index 0b6a9648..4f7dd76d 100644 --- a/assets/Scripts/chat18x/core/EmotionAIService.ts +++ b/assets/Scripts/chat18x/core/EmotionAIService.ts @@ -10,6 +10,7 @@ import { ConfigManager } from "../manager/ConfigManager"; import LanguageUtils, { LanguageType } from "../../Main/Common/LanguageUtils"; import Utils from "../../Main/Common/Utils"; import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * AI情绪分析服务类 @@ -24,7 +25,7 @@ import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; * ```typescript * const emotionService = EmotionAIService.Instance; * const emotion = await emotionService.analyzeEmotionalState(10001); - * console.log(VideoEmotion[emotion]); // "calm_down" + * logger.log(VideoEmotion[emotion]); // "calm_down" * ``` * * @author AI Chat System @@ -86,7 +87,7 @@ export class EmotionAIService { }); this.emotionChatInstances.set(roleId, chat); - console.log(`Created new emotion chat instance for role ${roleId}`); + logger.log(`Created new emotion chat instance for role ${roleId}`); // 异步分析历史情绪状态 this.initializeEmotionAnalysis(roleId); @@ -106,7 +107,7 @@ export class EmotionAIService { let emotionalState: VideoEmotion; if (messageCount > 0) { - console.log( + logger.log( `Analyzing emotional state for role ${roleId} based on ${messageCount} messages` ); @@ -115,11 +116,11 @@ export class EmotionAIService { if (emotionalState == null) { emotionalState = VideoEmotion.calm_down; } - console.log( + logger.log( `Initial emotional state for role ${roleId}: ${VideoEmotion[emotionalState]}` ); } else { - console.log( + logger.log( `No history found for role ${roleId}, using default emotion: calm_down` ); emotionalState = VideoEmotion.calm_down; @@ -131,11 +132,11 @@ export class EmotionAIService { emotion: emotionalState, }); - console.log( + logger.log( `Emotion initialization completed for role ${roleId}: ${VideoEmotion[emotionalState]}` ); } catch (error) { - console.error( + logger.error( `Failed to initialize emotion analysis for role ${roleId}:`, error ); @@ -209,7 +210,7 @@ export class EmotionAIService { }); if (response && response.text) { - console.log(`Emotion analysis from role ${roleId}:`, response.text); + logger.log(`Emotion analysis from role ${roleId}:`, response.text); return this.parseEmotionResponse(response.text); } else { const warningMsg = `情绪AI返回了空响应 (角色ID: ${roleId})`; @@ -297,7 +298,7 @@ export class EmotionAIService { if (this.emotionChatInstances.has(roleId)) { this.emotionChatInstances.delete(roleId); } - console.log(`Cleared emotion chat history for role ${roleId}`); + logger.log(`Cleared emotion chat history for role ${roleId}`); } /** @@ -305,7 +306,7 @@ export class EmotionAIService { */ public clearAllEmotionHistory(): void { this.emotionChatInstances.clear(); - console.log("Cleared all emotion chat histories"); + logger.log("Cleared all emotion chat histories"); } /** @@ -331,7 +332,7 @@ export class EmotionAIService { */ private setCurrentEmotion(roleId: number, emotion: VideoEmotion): void { this.currentEmotions.set(roleId, emotion); - console.log(`Updated emotion for role ${roleId}: ${VideoEmotion[emotion]}`); + logger.log(`Updated emotion for role ${roleId}: ${VideoEmotion[emotion]}`); } /** diff --git a/assets/Scripts/chat18x/core/MainController.ts b/assets/Scripts/chat18x/core/MainController.ts index ceef2b4d..d00a762f 100644 --- a/assets/Scripts/chat18x/core/MainController.ts +++ b/assets/Scripts/chat18x/core/MainController.ts @@ -6,6 +6,8 @@ import { DataManager, DataId } from "../data/DataManager"; import { ThemeData } from "../data/ThemeData"; import { GirlData } from "../data/GirlData"; import { ShopData } from "../data/ShopData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + import proto from "db://assets/Scripts/proto/proto.pb.js"; const { ccclass, property } = _decorator; @@ -30,7 +32,7 @@ export class MainController { * 初始化并预加载数据 */ async init(): Promise { - console.log("[MainController] 开始初始化并预加载数据"); + logger.log("[MainController] 开始初始化并预加载数据"); // 并行预加载所有数据 await Promise.all([ @@ -39,7 +41,7 @@ export class MainController { this.preloadShopList() ]); - console.log("[MainController] 数据预加载完成"); + logger.log("[MainController] 数据预加载完成"); } /** @@ -47,12 +49,12 @@ export class MainController { */ async preloadThemeData(): Promise { if (this.isThemeDataPreloaded) { - console.log("[MainController] 主题数据已预加载"); + logger.log("[MainController] 主题数据已预加载"); return true; } try { - console.log("[MainController] 开始预加载主题数据"); + logger.log("[MainController] 开始预加载主题数据"); const reqData = {}; const res = await ThemeService.I.reqHallTheme(reqData); @@ -61,14 +63,14 @@ export class MainController { const themeData = DataManager.I.getDataById(DataId.Theme); themeData.themes = res.data; this.isThemeDataPreloaded = true; - console.log("[MainController] 主题数据预加载成功"); + logger.log("[MainController] 主题数据预加载成功"); return true; } else { - console.warn("[MainController] 主题数据预加载失败:", res); + logger.warn("[MainController] 主题数据预加载失败:", res); return false; } } catch (error) { - console.error("[MainController] 主题数据预加载异常:", error); + logger.error("[MainController] 主题数据预加载异常:", error); return false; } } @@ -78,12 +80,12 @@ export class MainController { */ async preloadDailyRecommend(): Promise { if (this.isDailyRecommendPreloaded) { - console.log("[MainController] 每日推荐数据已预加载"); + logger.log("[MainController] 每日推荐数据已预加载"); return true; } try { - console.log("[MainController] 开始预加载每日推荐数据"); + logger.log("[MainController] 开始预加载每日推荐数据"); const reqData = {}; const res = await GirlService.I.reqDailyRecommend(reqData); @@ -92,14 +94,14 @@ export class MainController { const girlData = DataManager.I.getDataById(DataId.Girl); girlData.setDailyRecommend(res.data); this.isDailyRecommendPreloaded = true; - console.log("[MainController] 每日推荐数据预加载成功"); + logger.log("[MainController] 每日推荐数据预加载成功"); return true; } else { - console.warn("[MainController] 每日推荐数据预加载失败:", res); + logger.warn("[MainController] 每日推荐数据预加载失败:", res); return false; } } catch (error) { - console.error("[MainController] 每日推荐数据预加载异常:", error); + logger.error("[MainController] 每日推荐数据预加载异常:", error); return false; } } @@ -109,12 +111,12 @@ export class MainController { */ async preloadShopList(): Promise { if (this.isShopListPreloaded) { - console.log("[MainController] 商品列表数据已预加载"); + logger.log("[MainController] 商品列表数据已预加载"); return true; } try { - console.log("[MainController] 开始预加载商品列表数据"); + logger.log("[MainController] 开始预加载商品列表数据"); const reqData = {}; const res = await ShopService.I.reqShopList(reqData); @@ -123,14 +125,14 @@ export class MainController { const shopData = DataManager.I.getDataById(DataId.Shop); shopData.goods = res.data; this.isShopListPreloaded = true; - console.log("[MainController] 商品列表数据预加载成功"); + logger.log("[MainController] 商品列表数据预加载成功"); return true; } else { - console.warn("[MainController] 商品列表数据预加载失败:", res); + logger.warn("[MainController] 商品列表数据预加载失败:", res); return false; } } catch (error) { - console.error("[MainController] 商品列表数据预加载异常:", error); + logger.error("[MainController] 商品列表数据预加载异常:", error); return false; } } @@ -161,14 +163,14 @@ export class MainController { this.isThemeDataPreloaded = false; this.isDailyRecommendPreloaded = false; this.isShopListPreloaded = false; - console.log("[MainController] 预加载状态已重置"); + logger.log("[MainController] 预加载状态已重置"); } /** * 强制刷新主题数据 */ async refreshThemeData(): Promise { - console.log("[MainController] 开始强制刷新主题数据"); + logger.log("[MainController] 开始强制刷新主题数据"); try { const reqData = {}; const res = await ThemeService.I.reqHallTheme(reqData); @@ -178,14 +180,14 @@ export class MainController { const themeData = DataManager.I.getDataById(DataId.Theme); themeData.themes = res.data; this.isThemeDataPreloaded = true; - console.log("[MainController] 主题数据刷新成功"); + logger.log("[MainController] 主题数据刷新成功"); return true; } else { - console.warn("[MainController] 主题数据刷新失败:", res); + logger.warn("[MainController] 主题数据刷新失败:", res); return false; } } catch (error) { - console.error("[MainController] 主题数据刷新异常:", error); + logger.error("[MainController] 主题数据刷新异常:", error); return false; } } @@ -194,7 +196,7 @@ export class MainController { * 强制刷新每日推荐数据 */ async refreshDailyRecommend(): Promise { - console.log("[MainController] 开始强制刷新每日推荐数据"); + logger.log("[MainController] 开始强制刷新每日推荐数据"); try { const reqData = {}; const res = await GirlService.I.reqDailyRecommend(reqData); @@ -204,14 +206,14 @@ export class MainController { const girlData = DataManager.I.getDataById(DataId.Girl); girlData.setDailyRecommend(res.data); this.isDailyRecommendPreloaded = true; - console.log("[MainController] 每日推荐数据刷新成功"); + logger.log("[MainController] 每日推荐数据刷新成功"); return true; } else { - console.warn("[MainController] 每日推荐数据刷新失败:", res); + logger.warn("[MainController] 每日推荐数据刷新失败:", res); return false; } } catch (error) { - console.error("[MainController] 每日推荐数据刷新异常:", error); + logger.error("[MainController] 每日推荐数据刷新异常:", error); return false; } } diff --git a/assets/Scripts/chat18x/data/ChatModel.ts b/assets/Scripts/chat18x/data/ChatModel.ts index 2879833e..f30408ce 100644 --- a/assets/Scripts/chat18x/data/ChatModel.ts +++ b/assets/Scripts/chat18x/data/ChatModel.ts @@ -3,6 +3,7 @@ import { Dialog } from "./DialogData"; import { ConfigManager } from "../manager/ConfigManager"; import { DataId, DataManager } from "./DataManager"; import { GirlData } from "./GirlData"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 单个角色的聊天数据结构 @@ -44,7 +45,7 @@ export class ChatModel { */ public initializeRole(categoryId: string, girlId: number): boolean { if (girlId <= 0) { - console.error("ChatModel: Invalid roleId provided"); + logger.error("ChatModel: Invalid roleId provided"); return false; } @@ -52,7 +53,7 @@ export class ChatModel { if (this.rolesData.has(girlId)) { this.currentGirlId = girlId; this.updateLastActiveTime(girlId); - console.log(`ChatModel: Switched to existing role ${girlId}`); + logger.log(`ChatModel: Switched to existing role ${girlId}`); return true; } @@ -64,7 +65,7 @@ export class ChatModel { this.rolesData.set(girlId, newRoleData); this.currentGirlId = girlId; - console.log(`ChatModel: Initialized new role ${girlId}`); + logger.log(`ChatModel: Initialized new role ${girlId}`); return true; } @@ -152,7 +153,7 @@ export class ChatModel { if (oldestRoleId !== null) { this.rolesData.delete(oldestRoleId); - console.log(`ChatModel: Cleaned up unused role ${oldestRoleId} data`); + logger.log(`ChatModel: Cleaned up unused role ${oldestRoleId} data`); } } @@ -238,7 +239,7 @@ export class ChatModel { public clearDialogs(roleId?: number): void { const targetRoleId = roleId || this.currentGirlId; if (!targetRoleId) { - console.warn("ChatModel: Cannot clear dialogs - no active role"); + logger.warn("ChatModel: Cannot clear dialogs - no active role"); return; } @@ -246,7 +247,7 @@ export class ChatModel { if (roleData) { roleData.dialogs = []; this.updateLastActiveTime(targetRoleId); - console.log(`ChatModel: Dialogs cleared for role ${targetRoleId}`); + logger.log(`ChatModel: Dialogs cleared for role ${targetRoleId}`); } } @@ -272,13 +273,13 @@ export class ChatModel { public setCurrentEmotion(emotion: VideoEmotion, roleId?: number): void { const targetRoleId = roleId || this.currentGirlId; if (!targetRoleId) { - console.warn("ChatModel: Cannot set emotion - no active role"); + logger.warn("ChatModel: Cannot set emotion - no active role"); return; } const roleData = this.rolesData.get(targetRoleId); if (!roleData) { - console.warn(`ChatModel: Role data not found for roleId ${targetRoleId}`); + logger.warn(`ChatModel: Role data not found for roleId ${targetRoleId}`); return; } @@ -286,7 +287,7 @@ export class ChatModel { const oldEmotion = roleData.currentEmotion; roleData.currentEmotion = emotion; this.updateLastActiveTime(targetRoleId); - console.log( + logger.log( `ChatModel: Role ${targetRoleId} emotion changed from ${VideoEmotion[oldEmotion]} to ${VideoEmotion[emotion]}` ); } @@ -423,7 +424,7 @@ export class ChatModel { public reset(): void { this.rolesData.clear(); this.currentGirlId = null; - console.log( + logger.log( "ChatModel: All role data cleared and model reset to initial state" ); } @@ -441,7 +442,7 @@ export class ChatModel { this.currentGirlId = null; } - console.log(`ChatModel: Role ${roleId} data cleared`); + logger.log(`ChatModel: Role ${roleId} data cleared`); } } @@ -452,13 +453,13 @@ export class ChatModel { public validate(roleId?: number): boolean { const targetRoleId = roleId || this.currentGirlId; if (!targetRoleId) { - console.error("ChatModel: No active role"); + logger.error("ChatModel: No active role"); return false; } const roleData = this.rolesData.get(targetRoleId); if (!roleData) { - console.error(`ChatModel: Role data not found for ${targetRoleId}`); + logger.error(`ChatModel: Role data not found for ${targetRoleId}`); return false; } return true; @@ -500,7 +501,7 @@ export class ChatModel { public setMaxCachedRoles(maxCount: number): void { if (maxCount > 0) { this.maxCachedRoles = maxCount; - console.log(`ChatModel: Max cached roles set to ${maxCount}`); + logger.log(`ChatModel: Max cached roles set to ${maxCount}`); // 如果当前缓存超过新限制,清理多余的 this.manageMemory(); diff --git a/assets/Scripts/chat18x/data/ShopData.ts b/assets/Scripts/chat18x/data/ShopData.ts index 7085ed87..3b692806 100644 --- a/assets/Scripts/chat18x/data/ShopData.ts +++ b/assets/Scripts/chat18x/data/ShopData.ts @@ -3,6 +3,7 @@ */ import { BaseData } from "./BaseData"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class ShopData extends BaseData { // 商品数据 @@ -41,7 +42,7 @@ export class ShopData extends BaseData { this._goods.set(vo.id, vo); this._goodIds.push(vo.id); } - console.log("设置商品数据:", this._goods); + logger.log("设置商品数据:", this._goods); } /** 获取所有商品数据 */ diff --git a/assets/Scripts/chat18x/data/ThemeData.ts b/assets/Scripts/chat18x/data/ThemeData.ts index 98a8f6d8..3b099d46 100644 --- a/assets/Scripts/chat18x/data/ThemeData.ts +++ b/assets/Scripts/chat18x/data/ThemeData.ts @@ -3,6 +3,7 @@ */ import { BaseData } from "./BaseData"; import proto from 'db://assets/Scripts/proto/proto.pb.js'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export class ThemeData extends BaseData { // 主题数据 @@ -43,7 +44,7 @@ export class ThemeData extends BaseData { this._themes.set(vo.id, vo); this._themeIds.push(vo.id); } - console.log("设置主题数据:", this._themes); + logger.log("设置主题数据:", this._themes); } /** 获取所有主题数据 */ diff --git a/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts b/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts index 7168e162..f29f4e05 100644 --- a/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts @@ -28,6 +28,7 @@ import { GirlData } from "../../data/GirlData"; import { GirlService } from "db://assets/Scripts/chat18x/network/services/GirlService"; import proto from "db://assets/Scripts/proto/proto.pb.js"; import { SceneBgVideoLayer } from "../../../Sub/UI/SceneBgVideoLayer"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -106,18 +107,18 @@ export class GirlDetailPanel extends li_BaseView { setVideEnable(enable: boolean) { if (!this.videoLayer) { - console.error("GirlDetailPanel: SceneBgVideoLayer 不可用"); + logger.error("GirlDetailPanel: SceneBgVideoLayer 不可用"); return; } if (enable) { // 恢复播放 this.videoLayer.resume(); - console.log("GirlDetailPanel: 开启视频播放"); + logger.log("GirlDetailPanel: 开启视频播放"); } else { // 暂停播放 this.videoLayer.pause(); - console.log("GirlDetailPanel: 暂停视频播放"); + logger.log("GirlDetailPanel: 暂停视频播放"); } } @@ -159,9 +160,9 @@ export class GirlDetailPanel extends li_BaseView { // 检查 SceneBgVideoLayer 是否可用 if (!this.videoLayer) { - console.error("GirlDetailPanel: SceneBgVideoLayer.handle 未初始化"); + logger.error("GirlDetailPanel: SceneBgVideoLayer.handle 未初始化"); } else { - console.log("GirlDetailPanel: 成功获取 SceneBgVideoLayer 实例"); + logger.log("GirlDetailPanel: 成功获取 SceneBgVideoLayer 实例"); // 初始化视频显示位置 //this.initVideoPosition(); } @@ -191,7 +192,7 @@ export class GirlDetailPanel extends li_BaseView { this.tags.string = desc; const star = girlData.getStar(this.category.toString(), this.id); const stars = this.starParent.getComponentsInChildren(Sprite); - console.log("好感度:" + star); + logger.log("好感度:" + star); for (let i = 0; i < stars.length; i++) { const element = stars[i]; if (star > i) { @@ -215,7 +216,7 @@ export class GirlDetailPanel extends li_BaseView { // 使用 SceneBgVideoLayer 加载并播放视频 if (this.videoLayer && firstPath) { - console.log(`GirlDetailPanel: 加载视频 ${firstPath}`); + logger.log(`GirlDetailPanel: 加载视频 ${firstPath}`); // 获取 videoArea 的尺寸和位置 const targetSize = this.videoArea @@ -234,7 +235,7 @@ export class GirlDetailPanel extends li_BaseView { this.videoLayer.getVideoPlayer().node.parent; if (videoPlayerParent) { const parentWorldPos = videoPlayerParent.getWorldPosition(); - console.log( + logger.log( `GirlDetailPanel: VideoPlayer 父节点世界位置: (${parentWorldPos.x}, ${parentWorldPos.y}, ${parentWorldPos.z})` ); } @@ -339,7 +340,7 @@ export class GirlDetailPanel extends li_BaseView { // 停止视频播放,释放资源 if (this.videoLayer) { //this.videoLayer.stop(); - //console.log("GirlDetailPanel: 停止视频播放"); + //logger.log("GirlDetailPanel: 停止视频播放"); } super.onClose(); @@ -352,7 +353,7 @@ export class GirlDetailPanel extends li_BaseView { // 确保视频资源被释放 if (this.videoLayer) { //this.videoLayer.stop(); - //console.log("GirlDetailPanel: 销毁时停止视频播放"); + //logger.log("GirlDetailPanel: 销毁时停止视频播放"); } // 回收所有使用中的节点到对象池 diff --git a/assets/Scripts/chat18x/ui/panels/PastGirlListPanel.ts b/assets/Scripts/chat18x/ui/panels/PastGirlListPanel.ts index c8e291aa..70f61427 100644 --- a/assets/Scripts/chat18x/ui/panels/PastGirlListPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/PastGirlListPanel.ts @@ -6,6 +6,7 @@ import { PastGirlListItem } from "../../uiitems/PastGirlListItem"; import { DataManager, DataId } from "../../data/DataManager"; import { GirlData } from "../../data/GirlData"; import { ChatHistoryManager } from "../../manager/ChatHistoryManager"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -71,7 +72,7 @@ export class PastGirlListPanel extends li_BaseView { private getUnlockedGirls(): number[] { const GirlData = DataManager.I.getDataById(DataId.Girl); const allids = GirlData.getAllReleaseGirlIds(); - console.log(allids); + logger.log(allids); return allids; } diff --git a/assets/Scripts/chat18x/ui/panels/PersonalPanel.ts b/assets/Scripts/chat18x/ui/panels/PersonalPanel.ts index 09421a14..8388cec8 100644 --- a/assets/Scripts/chat18x/ui/panels/PersonalPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/PersonalPanel.ts @@ -26,6 +26,7 @@ import { } from "../../manager/NavigationManager"; import { PlayerDataService } from "../../network/services/PlayerDataService"; import proto from "db://assets/Scripts/proto/proto.pb.js"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -91,7 +92,7 @@ export class PersonalPanel extends li_BaseView { private async refresh() { const reqData = {}; let res = await PlayerDataService.I.reqMyInfo(reqData); - console.log("个人信息响应数据:", res); + logger.log("个人信息响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; const walletData = DataManager.I.getDataById(DataId.Wallet); diff --git a/assets/Scripts/chat18x/ui/panels/PopupGirlDetailPanel.ts b/assets/Scripts/chat18x/ui/panels/PopupGirlDetailPanel.ts index e976bde7..b64cc697 100644 --- a/assets/Scripts/chat18x/ui/panels/PopupGirlDetailPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/PopupGirlDetailPanel.ts @@ -22,6 +22,8 @@ import LanguageUtils from "../../../Main/Common/LanguageUtils"; import { ImagePopup } from "../components/ImagePopup"; import { TipsPanel } from "./TipsPanel"; import ResManager from "../../../Main/Manager/ResManager"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; + const { ccclass, property } = _decorator; @ccclass("PopupGirlDetailPanel") @@ -115,7 +117,7 @@ export class PopupGirlDetailPanel extends li_BaseView { } async buyCharacter() { // 购买id为girlId的女生 - console.log(this.girlId + "---" + this.resId); + logger.log(this.girlId + "---" + this.resId); // 请求解锁 const reqData = { @@ -124,7 +126,7 @@ export class PopupGirlDetailPanel extends li_BaseView { type: this.type, }; let res = await GirlService.I.reqUnlockGirlRes(reqData); - console.log("请求解锁资源响应数据:", res); + logger.log("请求解锁资源响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 diff --git a/assets/Scripts/chat18x/ui/panels/PurchasePanel.ts b/assets/Scripts/chat18x/ui/panels/PurchasePanel.ts index 29e53a95..32679eee 100644 --- a/assets/Scripts/chat18x/ui/panels/PurchasePanel.ts +++ b/assets/Scripts/chat18x/ui/panels/PurchasePanel.ts @@ -15,6 +15,7 @@ import proto from "db://assets/Scripts/proto/proto.pb.js"; import { NavigationManager, PanelType } from "../../manager/NavigationManager"; import { Web3PopPanel } from "./Web3PopPanel"; import { TipsPanel } from "./TipsPanel"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -255,7 +256,7 @@ export class PurchasePanel extends li_BaseView { girlId: 0, }; let res = await ShopService.I.reqBuyGood(reqData); - console.log("请求使用余额购买商品的响应数据:", res); + logger.log("请求使用余额购买商品的响应数据:", res); if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { const resData = res.data; // 保存数据 @@ -276,16 +277,16 @@ export class PurchasePanel extends li_BaseView { network, }; let res = await PaymentService.I.startPayment(reqData); - console.log("支付完成的响应数据:", res); + logger.log("支付完成的响应数据:", res); if (res) { let status = res.status; if (status === -1) { - console.log("支付失败!!!,错误码:", res.retCode); + logger.log("支付失败!!!,错误码:", res.retCode); const key = "error_code_" + res.retCode; TipsPanel.show(LanguageUtils.getText(key)); } else if (status === 0) { - console.log("支付成功!!!"); + logger.log("支付成功!!!"); const walletData = DataManager.I.getDataById(DataId.Wallet); walletData.balance = Number(res.balance); walletData.vipExpire = Number(res.vipExpire); diff --git a/assets/Scripts/chat18x/ui/panels/RecordPanel.ts b/assets/Scripts/chat18x/ui/panels/RecordPanel.ts index e082e9bd..9c28f634 100644 --- a/assets/Scripts/chat18x/ui/panels/RecordPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/RecordPanel.ts @@ -22,6 +22,7 @@ import { ConfigManager } from "../../manager/ConfigManager"; import LanguageUtils from "../../../Main/Common/LanguageUtils"; import { Dialog } from "../../data/DialogData"; import { InnerMsgCode } from "../../../Main/Config/InnerMsgCode"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -132,7 +133,7 @@ export class RecordPanel extends li_BaseView { this.allMessages = ChatHistoryManager.Instance.loadHistory(this.id); if (this.allMessages.length === 0) { - console.log(`No chat history found for role ${this.id}`); + logger.log(`No chat history found for role ${this.id}`); this.updateLoadMoreBtn(); return; } @@ -170,7 +171,7 @@ export class RecordPanel extends li_BaseView { // 添加到已显示的消息列表 this.displayedMessages.push(...newDialogs); - console.log( + logger.log( `Loaded page ${this.currentPage + 1}, showing ${ this.displayedMessages.length }/${this.allMessages.length} messages` @@ -234,7 +235,7 @@ export class RecordPanel extends li_BaseView { */ public clearHistory() { ChatHistoryManager.Instance.clearHistory(this.id); - console.log(`Cleared chat history for role ${this.id}`); + logger.log(`Cleared chat history for role ${this.id}`); // 重置数据 this.allMessages = []; From 93bfe3174f472a4bbebfd0df4c6add4cce8efd45 Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sun, 21 Sep 2025 20:36:19 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/Main/Common/GameRootUI.ts | 2 +- assets/Scripts/Main/Common/HttpUnit.ts | 4 +-- assets/Scripts/Main/Common/LanguageLabel.ts | 3 ++- assets/Scripts/Main/Common/ScrollViewList.ts | 21 ++++++++------- assets/Scripts/Main/Common/li_EventManager.ts | 3 ++- assets/Scripts/Main/Manager/ResManager.ts | 2 +- assets/Scripts/Sub/SubManager.ts | 5 ++-- assets/Scripts/Sub/UI/SceneBgVideoLayer.ts | 2 +- .../Scripts/chat18x/core/ApiConfigLoader.ts | 9 ++++--- assets/Scripts/chat18x/core/ChatAIService.ts | 2 +- assets/Scripts/chat18x/core/ChatController.ts | 4 +-- .../Scripts/chat18x/core/EmotionAIService.ts | 2 +- .../Scripts/chat18x/data/AiCharacterData.ts | 3 ++- assets/Scripts/chat18x/data/ChatModel.ts | 10 +++---- assets/Scripts/chat18x/data/DataManager.ts | 4 +-- .../Scripts/chat18x/manager/ConfigManager.ts | 4 +-- .../chat18x/manager/NavigationManager.ts | 18 ++++++------- assets/Scripts/chat18x/ui/panels/ChatPanel.ts | 4 +-- .../chat18x/ui/panels/GirlDetailPanel.ts | 2 +- .../Scripts/chat18x/ui/uiTool/ParentResize.ts | 11 ++++---- .../Scripts/chat18x/ui/uiTool/SpriteResize.ts | 5 ++-- .../chat18x/utils/UITransitionHelper.ts | 27 ++++++++++--------- assets/utils/qrcodeGenerator.ts | 25 ++++++++--------- 23 files changed, 91 insertions(+), 81 deletions(-) diff --git a/assets/Scripts/Main/Common/GameRootUI.ts b/assets/Scripts/Main/Common/GameRootUI.ts index b25b9cc9..ee9c033f 100644 --- a/assets/Scripts/Main/Common/GameRootUI.ts +++ b/assets/Scripts/Main/Common/GameRootUI.ts @@ -64,7 +64,7 @@ export default class GameRootUI extends Component { callback?: Function ) { if (!this.defaultView) { - console.warn("GameRootUI: defaultView not found"); + logger.warn("GameRootUI: defaultView not found"); callback && callback(); return; } diff --git a/assets/Scripts/Main/Common/HttpUnit.ts b/assets/Scripts/Main/Common/HttpUnit.ts index 6c1fe02d..a465dd62 100644 --- a/assets/Scripts/Main/Common/HttpUnit.ts +++ b/assets/Scripts/Main/Common/HttpUnit.ts @@ -89,12 +89,12 @@ export default class HttpUnit { } }; xhr.onerror = (error) => { - console.error("http request onerror"); + logger.error("http request onerror"); SubManager.ShowPrompt("网络错误,请检查网络连接"); reason(error) }; xhr.ontimeout = (e) => { - console.error("http request timeout"); + logger.error("http request timeout"); SubManager.ShowPrompt("网络错误,请检查网络连接"); reason(e) } diff --git a/assets/Scripts/Main/Common/LanguageLabel.ts b/assets/Scripts/Main/Common/LanguageLabel.ts index 28295364..e1da9799 100644 --- a/assets/Scripts/Main/Common/LanguageLabel.ts +++ b/assets/Scripts/Main/Common/LanguageLabel.ts @@ -1,5 +1,6 @@ import { _decorator, Component, Label, Node } from "cc"; import LanguageUtils, { LanguageType } from "./LanguageUtils"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property, requireComponent } = _decorator; @@ -30,7 +31,7 @@ export class LanguageLabel extends Component { onLoad() { this.label = this.getComponent(Label); if (!this.label) { - console.error("LanguageLabel: Label component not found!"); + logger.error("LanguageLabel: Label component not found!"); return; } diff --git a/assets/Scripts/Main/Common/ScrollViewList.ts b/assets/Scripts/Main/Common/ScrollViewList.ts index 8f068dcf..dec1ed3c 100644 --- a/assets/Scripts/Main/Common/ScrollViewList.ts +++ b/assets/Scripts/Main/Common/ScrollViewList.ts @@ -8,6 +8,7 @@ const { ccclass, property, disallowMultiple, menu, executionOrder, requireCompon import { Node, Component, Enum, tween, _decorator, EventHandler, Tween, ScrollView, Prefab, Layout, Vec2, Size, NodePool, isValid, instantiate, Vec3, Widget, UITransform, CCFloat, CCBoolean, CCInteger } from 'cc'; import { DEV } from 'cc/env'; import ScrollViewListItem from './ScrollviewListItem'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; enum TemplateType { NODE = 1, @@ -263,7 +264,7 @@ export default class HXZ_ScrollViewList extends Component { if (!t.checkInited(false)) return; if (val == null || val < 0) { - console.error('numItems set the wrong::', val); + logger.error('numItems set the wrong::', val); return; } t._actualNumItems = t._numItems = val; @@ -464,7 +465,7 @@ export default class HXZ_ScrollViewList extends Component { t.content = t._scrollView.content; t._contentUt = t.content.getComponent(UITransform); if (!t.content) { - console.error(t.node.name + "'s ScrollView unset content!"); + logger.error(t.node.name + "'s ScrollView unset content!"); return; } @@ -728,7 +729,7 @@ export default class HXZ_ScrollViewList extends Component { checkInited(printLog: boolean = true) { if (!this._inited) { if (printLog) - console.error('List initialization not completed!'); + logger.error('List initialization not completed!'); return false; } return true; @@ -1847,13 +1848,13 @@ export default class HXZ_ScrollViewList extends Component { let t: any = this; if (!t.checkInited() || t.cyclic || !t._virtual) - return console.error('This function is not allowed to be called!'); + return logger.error('This function is not allowed to be called!'); if (!callFunc) - return console.error('CallFunc are not allowed to be NULL, You need to delete the corresponding index in the data array in the CallFunc!'); + return logger.error('CallFunc are not allowed to be NULL, You need to delete the corresponding index in the data array in the CallFunc!'); if (t._aniDelRuning) - return console.warn('Please wait for the current deletion to finish!'); + return logger.warn('Please wait for the current deletion to finish!'); let item: any = t.getItemByListId(listId); let listItem: ScrollViewListItem; @@ -1969,7 +1970,7 @@ export default class HXZ_ScrollViewList extends Component { let pos = t.getItemPos(listId); if (!pos) { - return DEV && console.error('pos is null', listId); + return DEV && logger.error('pos is null', listId); } let targetX: number, targetY: number; @@ -2150,7 +2151,7 @@ export default class HXZ_ScrollViewList extends Component { if (!t.checkInited()) return; if (t._slideMode != SlideType.PAGE) - return console.error('This function is not allowed to be called, Must SlideMode = PAGE!'); + return logger.error('This function is not allowed to be called, Must SlideMode = PAGE!'); if (pageNum < 0 || pageNum >= t._numItems) return; if (t.curPageNum == pageNum) @@ -2168,9 +2169,9 @@ export default class HXZ_ScrollViewList extends Component { if (!t.checkInited()) return; if (!t._itemTmp) - return console.error('Unset template item!'); + return logger.error('Unset template item!'); if (!t.renderEvent) - return console.error('Unset Render-Event!'); + return logger.error('Unset Render-Event!'); t._customSize = {}; let temp: any = instantiate(t._itemTmp); let ut: UITransform = temp.getComponent(UITransform); diff --git a/assets/Scripts/Main/Common/li_EventManager.ts b/assets/Scripts/Main/Common/li_EventManager.ts index e7f6b05b..8d6d9599 100644 --- a/assets/Scripts/Main/Common/li_EventManager.ts +++ b/assets/Scripts/Main/Common/li_EventManager.ts @@ -1,4 +1,5 @@ import { _decorator } from "cc"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -85,7 +86,7 @@ export default class li_EventManager { try { handler[0].apply(handler[1], param); } catch (e) { - console.error("innerErr:" + e.stack); + logger.error("innerErr:" + e.stack); } } if (handlerArray.length != length) { diff --git a/assets/Scripts/Main/Manager/ResManager.ts b/assets/Scripts/Main/Manager/ResManager.ts index e627c05e..b2dec6a9 100644 --- a/assets/Scripts/Main/Manager/ResManager.ts +++ b/assets/Scripts/Main/Manager/ResManager.ts @@ -362,7 +362,7 @@ export default class ResManager { loadRemoteAudio(url: string, cb: Function = null) { assetManager.loadRemote(url, (err, res: AudioClip) => { if (err) { - console.error(err); + logger.error(err); return; } cb && cb(res); diff --git a/assets/Scripts/Sub/SubManager.ts b/assets/Scripts/Sub/SubManager.ts index 447370ce..69e094dc 100644 --- a/assets/Scripts/Sub/SubManager.ts +++ b/assets/Scripts/Sub/SubManager.ts @@ -8,6 +8,7 @@ import { CommAdDialog } from "./Item/CommAdDialog"; import Utils from "../Main/Common/Utils"; import { InnerMsgCode } from "../Main/Config/InnerMsgCode"; import { TipsPanel } from "../chat18x/ui/panels/TipsPanel"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -34,7 +35,7 @@ export default class SubManager { /**通用确认框 { content: string, strYes?: string, strNo?: string, yesCallback?: Function, noCallback?: Function, closeCallback?: Function } */ public static ShowConfirm(param: any) { if (!GameRootUI.I) { - console.warn("GameRootUI还未初始化", param); + logger.warn("GameRootUI还未初始化", param); return; } ResManager.I.loadSubpackagePrefab("item/ConfirmDialog", (n_node: Node) => { @@ -48,7 +49,7 @@ export default class SubManager { /**通用广告框 { content: string, strAd?: string, strLeft?: string, adCallback?: Function, leftCallback?: Function, closeCallback?: Function } */ public static ShowCommonAdDialog(param: any) { if (!GameRootUI.I) { - console.warn("GameRootUI还未初始化", param); + logger.warn("GameRootUI还未初始化", param); return; } ResManager.I.loadSubpackagePrefab("item/CommAdDialog", (n_node: Node) => { diff --git a/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts b/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts index 0501fc0f..c33da139 100644 --- a/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts +++ b/assets/Scripts/Sub/UI/SceneBgVideoLayer.ts @@ -95,7 +95,7 @@ export class SceneBgVideoLayer extends li_BaseView { } ) { if (!this.videoPlayer) { - console.error("SceneBgVideoLayer: VideoPlayer未初始化"); + logger.error("SceneBgVideoLayer: VideoPlayer未初始化"); return; } diff --git a/assets/Scripts/chat18x/core/ApiConfigLoader.ts b/assets/Scripts/chat18x/core/ApiConfigLoader.ts index ee42feaf..16607642 100644 --- a/assets/Scripts/chat18x/core/ApiConfigLoader.ts +++ b/assets/Scripts/chat18x/core/ApiConfigLoader.ts @@ -6,6 +6,7 @@ import { DataId, DataManager } from "../data/DataManager"; import { GlobalData } from "../data/GlobalData"; import { ConfigManager } from "../manager/ConfigManager"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; export interface AIConfig { /** API密钥 */ @@ -60,7 +61,7 @@ export class ApiConfig { ).getTimeout(), // 30秒 }; - //console.warn(this.config.apiKey); + //logger.warn(this.config.apiKey); } /** @@ -97,7 +98,7 @@ export class ApiConfig { if (temperature >= 0 && temperature <= 2) { this.config.temperature = temperature; } else { - console.warn("Temperature should be between 0 and 2"); + logger.warn("Temperature should be between 0 and 2"); } } @@ -110,11 +111,11 @@ export class ApiConfig { */ public validateConfig(): boolean { if (!this.config.apiKey || this.config.apiKey.trim() === "") { - console.error("API key is missing"); + logger.error("API key is missing"); return false; } if (!this.config.model || this.config.model.trim() === "") { - console.error("Model name is missing"); + logger.error("Model name is missing"); return false; } return true; diff --git a/assets/Scripts/chat18x/core/ChatAIService.ts b/assets/Scripts/chat18x/core/ChatAIService.ts index ec86b28b..0c1c7787 100644 --- a/assets/Scripts/chat18x/core/ChatAIService.ts +++ b/assets/Scripts/chat18x/core/ChatAIService.ts @@ -269,7 +269,7 @@ export class ChatAIService { message, response.text ).catch((emotionError) => { - console.warn( + logger.warn( `Failed to update emotion for role ${roleId}:`, emotionError ); diff --git a/assets/Scripts/chat18x/core/ChatController.ts b/assets/Scripts/chat18x/core/ChatController.ts index 5f09192a..04d440dd 100644 --- a/assets/Scripts/chat18x/core/ChatController.ts +++ b/assets/Scripts/chat18x/core/ChatController.ts @@ -357,7 +357,7 @@ export class ChatController { public loadDialogsFromHistory(roleId?: number): void { const targetRoleId = roleId || this.chatModel.getCurrentRoleId(); if (!targetRoleId) { - console.warn("Cannot load dialogs: no active role"); + logger.warn("Cannot load dialogs: no active role"); return; } @@ -508,7 +508,7 @@ export class ChatController { * @param error 错误对象 */ private handleError(error: Error): void { - console.error("ChatController error:", error); + logger.error("ChatController error:", error); this.callback?.onError(error); } } diff --git a/assets/Scripts/chat18x/core/EmotionAIService.ts b/assets/Scripts/chat18x/core/EmotionAIService.ts index 4f7dd76d..85e1f844 100644 --- a/assets/Scripts/chat18x/core/EmotionAIService.ts +++ b/assets/Scripts/chat18x/core/EmotionAIService.ts @@ -354,7 +354,7 @@ export class EmotionAIService { } } } catch (error) { - console.warn(`Failed to get role name for ${roleId}:`, error); + logger.warn(`Failed to get role name for ${roleId}:`, error); } return "AI"; } diff --git a/assets/Scripts/chat18x/data/AiCharacterData.ts b/assets/Scripts/chat18x/data/AiCharacterData.ts index 40df0363..06591f8a 100644 --- a/assets/Scripts/chat18x/data/AiCharacterData.ts +++ b/assets/Scripts/chat18x/data/AiCharacterData.ts @@ -3,6 +3,7 @@ */ import { BaseData } from "./BaseData"; import proto from "db://assets/Scripts/proto/proto.pb.js"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; // 数据结构 export interface AiCharacters { @@ -69,7 +70,7 @@ export class AiCharacterData extends BaseData { try { parsed = JSON.parse(data.data); } catch (e) { - console.warn("AiCharacterData JSON 解析失败", e); + logger.warn("AiCharacterData JSON 解析失败", e); return; } // 解析数据 diff --git a/assets/Scripts/chat18x/data/ChatModel.ts b/assets/Scripts/chat18x/data/ChatModel.ts index f30408ce..af5587f4 100644 --- a/assets/Scripts/chat18x/data/ChatModel.ts +++ b/assets/Scripts/chat18x/data/ChatModel.ts @@ -108,7 +108,7 @@ export class ChatModel { //const roleDetail = ConfigManager.tables.TbGirlsDetail.get(roleId); if (!girlData) { - console.error(`ChatModel: Role data not found for roleId ${girlId}`); + logger.error(`ChatModel: Role data not found for roleId ${girlId}`); return null; } @@ -124,7 +124,7 @@ export class ChatModel { return newRoleData; } catch (error) { - console.error( + logger.error( `ChatModel: Failed to create role data for ${girlId}:`, error ); @@ -208,18 +208,18 @@ export class ChatModel { public addDialog(isPlayer: boolean, content: string, roleId?: number): void { const targetRoleId = roleId || this.currentGirlId; if (!targetRoleId) { - console.warn("ChatModel: Cannot add dialog - no active role"); + logger.warn("ChatModel: Cannot add dialog - no active role"); return; } if (!content || content.trim() === "") { - console.warn("ChatModel: Cannot add empty dialog content"); + logger.warn("ChatModel: Cannot add empty dialog content"); return; } const roleData = this.rolesData.get(targetRoleId); if (!roleData) { - console.warn(`ChatModel: Role data not found for roleId ${targetRoleId}`); + logger.warn(`ChatModel: Role data not found for roleId ${targetRoleId}`); return; } diff --git a/assets/Scripts/chat18x/data/DataManager.ts b/assets/Scripts/chat18x/data/DataManager.ts index 795ca843..54bc07e4 100644 --- a/assets/Scripts/chat18x/data/DataManager.ts +++ b/assets/Scripts/chat18x/data/DataManager.ts @@ -92,7 +92,7 @@ export class DataManager { */ private register(dataId: string, ctor: DataCtor): void { if (this._config.has(dataId)) { - console.warn(`[DataManager] 重复注册数据ID: ${dataId},将覆盖旧构造器`); + logger.warn(`[DataManager] 重复注册数据ID: ${dataId},将覆盖旧构造器`); } this._config.set(dataId, ctor); } @@ -108,7 +108,7 @@ export class DataManager { // 缓存没有→ 查找构造器 const Ctor = this._config.get(dataId) as DataCtor | undefined; if (!Ctor) { - console.warn(`[DataManager] 未找到 dataId 的构造器配置: ${dataId}`); + logger.warn(`[DataManager] 未找到 dataId 的构造器配置: ${dataId}`); return null; } diff --git a/assets/Scripts/chat18x/manager/ConfigManager.ts b/assets/Scripts/chat18x/manager/ConfigManager.ts index 5de28496..7119789c 100644 --- a/assets/Scripts/chat18x/manager/ConfigManager.ts +++ b/assets/Scripts/chat18x/manager/ConfigManager.ts @@ -127,7 +127,7 @@ export class ConfigManager { ctor: DataCtor ): void { if (this._config.has(configId)) { - console.warn( + logger.warn( `[ConfigManager] 重复注册数据ID: ${configId},将覆盖旧构造器` ); } @@ -147,7 +147,7 @@ export class ConfigManager { // 缓存没有→ 查找构造器 const Ctor = this._config.get(configId) as DataCtor | undefined; if (!Ctor) { - console.warn(`[ConfigManager] 未找到 configId 的构造器配置: ${configId}`); + logger.warn(`[ConfigManager] 未找到 configId 的构造器配置: ${configId}`); return null; } diff --git a/assets/Scripts/chat18x/manager/NavigationManager.ts b/assets/Scripts/chat18x/manager/NavigationManager.ts index 56cafd3f..191bba16 100644 --- a/assets/Scripts/chat18x/manager/NavigationManager.ts +++ b/assets/Scripts/chat18x/manager/NavigationManager.ts @@ -316,12 +316,12 @@ export class NavigationManager { animationConfig?: SubPanelAnimationConfig ) { if (!panelName) { - console.error("[NavigationManager] openSubPanel: panelName is empty"); + logger.error("[NavigationManager] openSubPanel: panelName is empty"); return; } if (!basePanel || !basePanel.isValid) { - console.error("[NavigationManager] openSubPanel: basePanel is invalid"); + logger.error("[NavigationManager] openSubPanel: basePanel is invalid"); return; } @@ -335,7 +335,7 @@ export class NavigationManager { const callback = (n: Node) => { if (!n || !n.isValid) { - console.error( + logger.error( "[NavigationManager] openSubPanel: created panel is invalid" ); return; @@ -352,7 +352,7 @@ export class NavigationManager { if (basePanelType) { this.subPanelMapping.set(n, basePanelType); } else { - console.warn( + logger.warn( `[NavigationManager] 无法确定basePanel类型: ${basePanel.name}` ); } @@ -646,7 +646,7 @@ export class NavigationManager { } if (!panelNode || !panelNode.isValid) { - console.warn("[NavigationManager] closeSubPanel: panelNode is invalid"); + logger.warn("[NavigationManager] closeSubPanel: panelNode is invalid"); return; } @@ -676,7 +676,7 @@ export class NavigationManager { panel.close(); } } catch (error) { - console.error("[NavigationManager] closeSubPanel error:", error); + logger.error("[NavigationManager] closeSubPanel error:", error); } }); } @@ -700,7 +700,7 @@ export class NavigationManager { this.subPanelDic.delete(baseNode); } } else { - console.warn( + logger.warn( `[NavigationManager] ${panelNode.name} 不在子页面列表中` ); } @@ -734,7 +734,7 @@ export class NavigationManager { } private getPanelType(node: Node): PanelType { if (!node || !node.isValid) { - console.warn("[NavigationManager] getPanelType: node is invalid"); + logger.warn("[NavigationManager] getPanelType: node is invalid"); return null; } @@ -748,7 +748,7 @@ export class NavigationManager { case "PersonalPanel": return PanelType.PERSONAL; default: - console.warn( + logger.warn( `[NavigationManager] Unknown panel type for node: ${node.name}` ); return null; diff --git a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts index 3ec3317a..f59996e9 100644 --- a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts @@ -308,7 +308,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { private switchVideoByEmotion(emotion: VideoEmotion): void { if (!this.videoLayer) { - console.warn("Cannot switch video: missing video player"); + logger.warn("Cannot switch video: missing video player"); return; } // Get video data from ChatModel through ChatController @@ -472,7 +472,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback { * @param error 错误信息 */ public onError(error: Error): void { - console.error("Chat error:", error); + logger.error("Chat error:", error); // 出错时加载动画会被自动移除,可以在这里显示错误提示给用户 } diff --git a/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts b/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts index f29f4e05..980bdadc 100644 --- a/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/GirlDetailPanel.ts @@ -133,7 +133,7 @@ export class GirlDetailPanel extends li_BaseView { } // 如果没有 videoArea,使用默认尺寸 - console.warn("GirlDetailPanel: videoArea 未设置,使用默认尺寸"); + logger.warn("GirlDetailPanel: videoArea 未设置,使用默认尺寸"); return new Size(600, 800); } diff --git a/assets/Scripts/chat18x/ui/uiTool/ParentResize.ts b/assets/Scripts/chat18x/ui/uiTool/ParentResize.ts index 4b620846..956b7f5a 100644 --- a/assets/Scripts/chat18x/ui/uiTool/ParentResize.ts +++ b/assets/Scripts/chat18x/ui/uiTool/ParentResize.ts @@ -7,6 +7,7 @@ import { isValid, Node, } from "cc"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass } = _decorator; @@ -28,12 +29,12 @@ export class ParentResize extends Component { this.uiTransform = this.getComponent(UITransform); if (!this.sprite) { - console.warn("ParentResize: 未找到 Sprite 组件"); + logger.warn("ParentResize: 未找到 Sprite 组件"); return; } if (!this.uiTransform) { - console.warn("ParentResize: 未找到 UITransform 组件"); + logger.warn("ParentResize: 未找到 UITransform 组件"); return; } @@ -41,11 +42,11 @@ export class ParentResize extends Component { if (this.node.parent) { this.parentTransform = this.node.parent.getComponent(UITransform); if (!this.parentTransform) { - console.warn("ParentResize: 父物体未找到 UITransform 组件"); + logger.warn("ParentResize: 父物体未找到 UITransform 组件"); return; } } else { - console.warn("ParentResize: 未找到父物体"); + logger.warn("ParentResize: 未找到父物体"); return; } } @@ -119,7 +120,7 @@ export class ParentResize extends Component { this.lastParentSize.set(0, 0); // 重置上次记录的尺寸 this.adjustToParent(); } else { - console.warn("ParentResize: 新父物体未找到 UITransform 组件"); + logger.warn("ParentResize: 新父物体未找到 UITransform 组件"); } } } diff --git a/assets/Scripts/chat18x/ui/uiTool/SpriteResize.ts b/assets/Scripts/chat18x/ui/uiTool/SpriteResize.ts index bc3b1e5f..dac3d9de 100644 --- a/assets/Scripts/chat18x/ui/uiTool/SpriteResize.ts +++ b/assets/Scripts/chat18x/ui/uiTool/SpriteResize.ts @@ -7,6 +7,7 @@ import { Size, isValid, } from "cc"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass } = _decorator; @@ -27,12 +28,12 @@ export class SpriteResize extends Component { this.uiTransform = this.getComponent(UITransform); if (!this.sprite) { - console.warn("SpriteResize: 未找到 Sprite 组件"); + logger.warn("SpriteResize: 未找到 Sprite 组件"); return; } if (!this.uiTransform) { - console.warn("SpriteResize: 未找到 UITransform 组件"); + logger.warn("SpriteResize: 未找到 UITransform 组件"); return; } } diff --git a/assets/Scripts/chat18x/utils/UITransitionHelper.ts b/assets/Scripts/chat18x/utils/UITransitionHelper.ts index 690af136..5bbcd431 100644 --- a/assets/Scripts/chat18x/utils/UITransitionHelper.ts +++ b/assets/Scripts/chat18x/utils/UITransitionHelper.ts @@ -7,6 +7,7 @@ import { view, UIOpacity, } from "cc"; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; const { ccclass, property } = _decorator; @@ -33,7 +34,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideInFromRight"); + logger.warn("UITransitionHelper: Invalid node for slideInFromRight"); return; } @@ -73,7 +74,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideOutToLeft"); + logger.warn("UITransitionHelper: Invalid node for slideOutToLeft"); return; } @@ -115,7 +116,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideInFromLeft"); + logger.warn("UITransitionHelper: Invalid node for slideInFromLeft"); return; } @@ -155,7 +156,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideOutToRight"); + logger.warn("UITransitionHelper: Invalid node for slideOutToRight"); return; } @@ -197,7 +198,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideInFromTop"); + logger.warn("UITransitionHelper: Invalid node for slideInFromTop"); return; } @@ -237,7 +238,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideOutToTop"); + logger.warn("UITransitionHelper: Invalid node for slideOutToTop"); return; } @@ -279,7 +280,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideInFromBottom"); + logger.warn("UITransitionHelper: Invalid node for slideInFromBottom"); return; } @@ -319,7 +320,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for slideOutToBottom"); + logger.warn("UITransitionHelper: Invalid node for slideOutToBottom"); return; } @@ -361,7 +362,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for fadeIn"); + logger.warn("UITransitionHelper: Invalid node for fadeIn"); return; } @@ -402,7 +403,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for fadeOut"); + logger.warn("UITransitionHelper: Invalid node for fadeOut"); return; } @@ -440,7 +441,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for scaleIn"); + logger.warn("UITransitionHelper: Invalid node for scaleIn"); return; } @@ -471,7 +472,7 @@ export class UITransitionHelper { callback?: Function ): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for scaleOut"); + logger.warn("UITransitionHelper: Invalid node for scaleOut"); return; } @@ -493,7 +494,7 @@ export class UITransitionHelper { */ public static stopAllTweens(node: Node): void { if (!node || !node.isValid) { - console.warn("UITransitionHelper: Invalid node for stopAllTweens"); + logger.warn("UITransitionHelper: Invalid node for stopAllTweens"); return; } diff --git a/assets/utils/qrcodeGenerator.ts b/assets/utils/qrcodeGenerator.ts index 302af4d7..120ef17a 100644 --- a/assets/utils/qrcodeGenerator.ts +++ b/assets/utils/qrcodeGenerator.ts @@ -1,5 +1,6 @@ import { Sprite, SpriteFrame, Texture2D, ImageAsset, Node } from 'cc'; import qrcode from 'qrcode-generator'; +import { logger } from "db://assets/Scripts/Main/Common/Logger"; /** * 二维码生成工具类 @@ -17,7 +18,7 @@ export class QRCodeGenerator { public static generateQRCodeSprite(text: string, size: number = 256, margin: number = 4, callback?: (sprite: Sprite | null) => void): void { try { if (!text || text.trim().length === 0) { - console.error('QRCodeGenerator: 文本内容不能为空'); + logger.error('QRCodeGenerator: 文本内容不能为空'); callback && callback(null); return; } @@ -36,12 +37,12 @@ export class QRCodeGenerator { callback && callback(sprite); } catch (error) { - console.error('QRCodeGenerator: 创建Sprite组件失败', error); + logger.error('QRCodeGenerator: 创建Sprite组件失败', error); callback && callback(null); } }); } catch (error) { - console.error('QRCodeGenerator: 生成二维码Sprite失败', error); + logger.error('QRCodeGenerator: 生成二维码Sprite失败', error); callback && callback(null); } } @@ -56,13 +57,13 @@ export class QRCodeGenerator { public static generateQRCodeSpriteFrame(text: string, size: number = 256, margin: number = 4, callback?: (spriteFrame: SpriteFrame | null) => void): void { try { if (!text || text.trim().length === 0) { - console.error('QRCodeGenerator: 文本内容不能为空'); + logger.error('QRCodeGenerator: 文本内容不能为空'); callback && callback(null); return; } if (size <= 0 || size > 2048) { - console.error('QRCodeGenerator: 尺寸必须在1-2048之间'); + logger.error('QRCodeGenerator: 尺寸必须在1-2048之间'); callback && callback(null); return; } @@ -83,7 +84,7 @@ export class QRCodeGenerator { const ctx = canvas.getContext('2d'); if (!ctx) { - console.error('QRCodeGenerator: 无法获取Canvas上下文'); + logger.error('QRCodeGenerator: 无法获取Canvas上下文'); callback && callback(null); return; } @@ -124,13 +125,13 @@ export class QRCodeGenerator { callback && callback(spriteFrame); } catch (error) { - console.error('QRCodeGenerator: 创建纹理失败', error); + logger.error('QRCodeGenerator: 创建纹理失败', error); callback && callback(null); } }; img.onerror = () => { - console.error('QRCodeGenerator: 图片加载失败'); + logger.error('QRCodeGenerator: 图片加载失败'); callback && callback(null); }; @@ -138,7 +139,7 @@ export class QRCodeGenerator { img.src = canvas.toDataURL('image/png'); } catch (error) { - console.error('QRCodeGenerator: 生成二维码SpriteFrame失败', error); + logger.error('QRCodeGenerator: 生成二维码SpriteFrame失败', error); callback && callback(null); } } @@ -153,7 +154,7 @@ export class QRCodeGenerator { public static generateQRCodeBase64(text: string, size: number = 256, margin: number = 4): string { try { if (!text || text.trim().length === 0) { - console.error('QRCodeGenerator: 文本内容不能为空'); + logger.error('QRCodeGenerator: 文本内容不能为空'); return ''; } @@ -173,7 +174,7 @@ export class QRCodeGenerator { const ctx = canvas.getContext('2d'); if (!ctx) { - console.error('QRCodeGenerator: 无法获取Canvas上下文'); + logger.error('QRCodeGenerator: 无法获取Canvas上下文'); return ''; } @@ -199,7 +200,7 @@ export class QRCodeGenerator { // 返回Base64字符串 return canvas.toDataURL('image/png'); } catch (error) { - console.error('QRCodeGenerator: 生成二维码Base64失败', error); + logger.error('QRCodeGenerator: 生成二维码Base64失败', error); return ''; } }