Files
18xchat/assets/Scripts/chat18x/network/services/GirlService.ts
T

52 lines
1.7 KiB
TypeScript
Raw Normal View History

2025-08-29 16:39:41 +08:00
import type { IGirlService } from "./IGirlService";
import { HttpGirlService } from "./HttpGirlService";
import { MockGirlService } from "./MockGirlService";
2025-08-27 17:33:51 +08:00
import type { ApiResponse } from "../client/types";
2025-08-29 16:39:41 +08:00
import proto from "db://assets/Scripts/proto/proto.pb.js";
2025-08-27 17:33:51 +08:00
2025-08-29 16:39:41 +08:00
// 模拟开关
2025-09-09 11:14:27 +08:00
const USE_MOCK = false;
2025-08-29 16:39:41 +08:00
export class GirlService implements IGirlService {
2025-08-27 17:33:51 +08:00
private static _I: GirlService | null = null;
public static get I(): GirlService {
if (!GirlService._I) GirlService._I = new GirlService();
return GirlService._I;
}
2025-08-29 16:39:41 +08:00
private impl: IGirlService;
private constructor() {
this.impl = USE_MOCK ? new MockGirlService() : new HttpGirlService();
}
/** 可运行期切换 */
public switch(useMock: boolean) {
this.impl = useMock ? new MockGirlService() : new HttpGirlService();
}
2025-08-27 17:33:51 +08:00
// 每日推荐
public async reqDailyRecommend(req: proto.cs.ICSDailyRecommendReq): Promise<ApiResponse<proto.cs.ICSDailyRecommendRes>> {
2025-08-29 16:39:41 +08:00
return this.impl.reqDailyRecommend(req);
2025-08-27 17:33:51 +08:00
}
// 获取技师列表
public async reqGetGirlList(req: proto.cs.ICSGetGirlListReq): Promise<ApiResponse<proto.cs.ICSGetGirlListRes>> {
2025-08-29 16:39:41 +08:00
return this.impl.reqGetGirlList(req);
}
2025-08-27 17:33:51 +08:00
// 获取技师详细信息
public async reqGetGirlDetail(req: proto.cs.ICSGetGirlDetailReq): Promise<ApiResponse<proto.cs.ICSGetGirlDetailRes>> {
2025-08-29 16:39:41 +08:00
return this.impl.reqGetGirlDetail(req);
}
2025-09-08 19:44:45 +08:00
// 解锁技师
public async reqUnlockGirl(req: proto.cs.ICSUnlockGirlReq): Promise<ApiResponse<proto.cs.ICSUnlockGirlRes>> {
return this.impl.reqUnlockGirl(req);
}
// 解锁资源
public async reqUnlockGirlRes(req: proto.cs.ICSUnlockResourceReq): Promise<ApiResponse<proto.cs.ICSUnlockResourceRes>> {
return this.impl.reqUnlockGirlRes(req);
}
2025-08-27 17:33:51 +08:00
}