From 984ba537683fb30b66bea9246667f3e91c70557d Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Sat, 11 Oct 2025 10:52:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=8A=80=E5=B8=88=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/chat18x/core/MainController.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/assets/Scripts/chat18x/core/MainController.ts b/assets/Scripts/chat18x/core/MainController.ts index 5898f5c1..1198a947 100644 --- a/assets/Scripts/chat18x/core/MainController.ts +++ b/assets/Scripts/chat18x/core/MainController.ts @@ -26,6 +26,7 @@ export class MainController { // 数据预加载状态标记 private isThemeDataPreloaded: boolean = false; private isDailyRecommendPreloaded: boolean = false; + private isRecommendListPreloaded: boolean = false; private isShopListPreloaded: boolean = false; /** @@ -38,6 +39,7 @@ export class MainController { await Promise.all([ this.preloadThemeData(), this.preloadDailyRecommend(), + this.preloadRecommendList(true, 1, 10), this.preloadShopList(), ]); @@ -106,6 +108,47 @@ export class MainController { } } + /** + * 请求技师推荐列表 + * @param isFirstReq 是否首次请求(true 表示首次请求,将覆盖旧数据;false 表示分页加载,追加数据) + * @param page 当前页码,从 1 开始 + * @param limit 每页数据条数,最少10条 + */ + async preloadRecommendList(isFirstReq: boolean, page: number, limit: number): Promise { + if (this.isRecommendListPreloaded) { + logger.log("[MainController] 推荐列表已预加载"); + return true; + } + + try { + logger.log("[MainController] 开始预加载推荐列表"); + const reqData = { + page, + limit, + }; + const res = await GirlService.I.reqRecommendList(reqData); + if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { + const resData = res.data; + // 保存数据 + const girlData = DataManager.I.getDataById(DataId.Girl); + if (isFirstReq) { + girlData.setRecommendList(resData); + } else { + girlData.addRecommendList(resData); + } + this.isRecommendListPreloaded = true; + logger.log("[MainController] 推荐列表预加载成功"); + return true; + } else { + logger.warn("[MainController] 推荐列表预加载失败:", res); + return false; + } + } catch (error) { + logger.error("[MainController] 推荐列表预加载异常:", error); + return false; + } + } + /** * 预加载商品列表 */ @@ -144,6 +187,7 @@ export class MainController { return ( this.isThemeDataPreloaded && this.isDailyRecommendPreloaded && + this.isRecommendListPreloaded && this.isShopListPreloaded ); } @@ -155,6 +199,7 @@ export class MainController { return { themeData: this.isThemeDataPreloaded, dailyRecommend: this.isDailyRecommendPreloaded, + recommendList: this.isRecommendListPreloaded, shopList: this.isShopListPreloaded, allComplete: this.isDataPreloaded(), }; @@ -166,6 +211,7 @@ export class MainController { resetPreloadStatus(): void { this.isThemeDataPreloaded = false; this.isDailyRecommendPreloaded = false; + this.isRecommendListPreloaded = false; this.isShopListPreloaded = false; logger.log("[MainController] 预加载状态已重置"); }