From 9cebe447165279a8d637317e447a2effb39cff5d Mon Sep 17 00:00:00 2001 From: chen wei bo <1025839511@qq.com> Date: Thu, 9 Oct 2025 16:46:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E5=A2=9E=E5=8A=A0=EF=BC=8C?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E8=A7=92=E8=89=B2=EF=BC=8C=E6=94=B6=E8=97=8F?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scripts/chat18x/data/GirlData.ts | 30 +++++++++++++++++-- .../chat18x/uiitems/DetailImageItem.ts | 17 +++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/assets/Scripts/chat18x/data/GirlData.ts b/assets/Scripts/chat18x/data/GirlData.ts index 7cd0aa27..bf974460 100644 --- a/assets/Scripts/chat18x/data/GirlData.ts +++ b/assets/Scripts/chat18x/data/GirlData.ts @@ -103,7 +103,6 @@ export class GirlData extends BaseData { this.setGirlUnlock(categoryId, data.girls); this.setGirlFavorability(categoryId, data.girls); this.setGirlOther(categoryId, data.girls); - const bucket = this.ensureBucket(categoryId); logger.log("保存类别 ", categoryId, " 的技师列表: ", bucket); } @@ -119,7 +118,6 @@ export class GirlData extends BaseData { this.setGirlChat(categoryId, details); this.setGirlFavorability(categoryId, details); this.setGirlOther(categoryId, details); - const bucket = this.ensureBucket(categoryId); logger.log("保存类别 ", categoryId, " 的详细数据: ", bucket); } @@ -141,6 +139,25 @@ export class GirlData extends BaseData { logger.log("保存可聊天的技师数据: ", cats); } + /** 保存收藏列表 */ + public setBookmarkGirlList(data: proto.cs.ICSGetBookmarkRes): void { + if (!data) return; + let arrayData = data.girls; + // 遍历 + for (const oneData of arrayData) { + let briefData = oneData.girl; + let categoryId = briefData.category; + this.mergeOneBrief(categoryId.toString(), briefData); + let theArray = []; + theArray.push(oneData); + this.setGirlUnlock(categoryId.toString(), theArray); + this.setGirlFavorability(categoryId.toString(), theArray); + this.setGirlOther(categoryId.toString(), theArray); + } + const cats = this.ensureCategories(); + logger.log("保存收藏列表后,大分类的数据: ", cats); + } + /** --------------------------------------------------------- 每日推荐 --------------------------------------------------------- */ /** 保存每日推荐:放入特殊分类 DAILY_BUCKET,并维护 id 索引 */ @@ -1345,12 +1362,19 @@ export class GirlData extends BaseData { return oneData.getBookmarkTime(); } + /** 保存 收藏时间,时间戳,秒 */ + public setBookmarkTime(categoryId: string, girlId: number, value: number): void { + let oneData = this.getGirlFavorability(categoryId, girlId); + if (!oneData) return; + oneData.setBookmarkTime(value); + } + /** 是否已经收藏 */ public isBookmarkGirl(categoryId: string, girlId: number): boolean { let oneData = this.getGirlFavorability(categoryId, girlId); if (!oneData) return false; return oneData.isBookmarkGirl(); - } + } /** 获取所有已经收藏技师的 id */ public getAllBookmarkGirlIds(): number[] { diff --git a/assets/Scripts/chat18x/uiitems/DetailImageItem.ts b/assets/Scripts/chat18x/uiitems/DetailImageItem.ts index d49583e0..440ead0d 100644 --- a/assets/Scripts/chat18x/uiitems/DetailImageItem.ts +++ b/assets/Scripts/chat18x/uiitems/DetailImageItem.ts @@ -17,6 +17,7 @@ import { DataManager, DataId } from "../data/DataManager"; import { GirlData } from "../data/GirlData"; import { EnvData } from "../data/EnvData"; import { NavigationManager } from "../manager/NavigationManager"; +import { GirlService } from "db://assets/Scripts/chat18x/network/services/GirlService"; const { ccclass, property } = _decorator; @@ -68,6 +69,8 @@ export class DetailImageItem extends Component { if (this.url) { NavigationManager.Instance.openPopupPanel("ShowPanel", data); this.base.setVideEnable(false); + // 查看图片或者视频上报,用于排行榜 + this.reqViewGirl(this.girlId); } } else { NavigationManager.Instance.openPopupPanel("PopupGirlDetailPanel", { @@ -96,6 +99,20 @@ export class DetailImageItem extends Component { // } } + /** + * 查看图片或者视频上报,用于排行榜 + * @param girlId 角色Id + */ + private async reqViewGirl(girlId: number) { + const reqData = { + girlId + }; + let res = await GirlService.I.reqViewGirl(reqData); + if (res && res.code === proto.cs.EnmRetCode.SUCCESS) { + const resData = res.data; + } + } + scaleToFillItem() { if (!this.img || !this.img.spriteFrame) return;