feat: 临时改造讲解页方案 B 链路

接入展厅列表、展厅讲解点分组生成临时业务单元,并迁移讲解详情播放正文到新接口链路。
This commit is contained in:
lyf
2026-07-02 00:51:27 +08:00
parent e0aeafe062
commit 9efcef5190
14 changed files with 1429 additions and 288 deletions

View File

@@ -1,4 +1,6 @@
import type {
ExplainBusinessUnit,
ExplainGuideStop,
ExplainTrack,
MuseumExhibit,
MuseumHall,
@@ -23,6 +25,8 @@ export interface ExplainRepository {
getExhibitById(id: string): Promise<MuseumExhibit | null>
listHalls(): Promise<MuseumHall[]>
getHallById(id: string): Promise<MuseumHall | null>
listGuideStopsByHall(hallId: string): Promise<ExplainGuideStop[]>
listTemporaryBusinessUnitsByHall(hallId: string): Promise<ExplainBusinessUnit[]>
listTracks(): Promise<ExplainTrack[]>
getTrackByExhibitId(exhibitId: string): Promise<ExplainTrack | null>
searchExplain(keyword?: string): Promise<SearchIndexItem[]>
@@ -57,6 +61,18 @@ export class DefaultExplainRepository implements ExplainRepository {
return this.content.getHallById(id)
}
async listGuideStopsByHall(hallId: string) {
return this.explainContent.listGuideStopsByHall?.(hallId) || []
}
async listTemporaryBusinessUnitsByHall(hallId: string) {
if (this.explainContent.listTemporaryBusinessUnitsByHall) {
return this.explainContent.listTemporaryBusinessUnitsByHall(hallId)
}
return []
}
async listTracks() {
const tracks = await this.explainContent.listTracks()
if (tracks.length) return tracks