Merge branch 'main' of 47.107.44.202:xionglijia/18xchat

This commit is contained in:
2025-10-11 14:59:09 +08:00
@@ -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<boolean> {
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<GirlData>(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] 预加载状态已重置");
}