@@ -73,7 +73,7 @@ export class ReviewService {
7373 order : i ,
7474 } ) ;
7575
76- items . push ( { itemId, sessionId, memoId : memo . memoId , question, order : i } ) ;
76+ items . push ( { itemId, sessionId, memoId : memo . memoId , memoContent : memo . content , question, order : i } ) ;
7777 }
7878
7979 return { sessionId, uid, scope : dto . scope , scopeValue : dto . scopeValue , status : 'active' , items, createdAt : new Date ( ) . toISOString ( ) } ;
@@ -89,7 +89,7 @@ export class ReviewService {
8989 . where ( eq ( reviewItems . sessionId , sessionId ) )
9090 . orderBy ( reviewItems . order ) ;
9191
92- return this . toSessionDto ( session , items ) ;
92+ return await this . toSessionDto ( session , items ) ;
9393 }
9494
9595 async submitAnswer ( uid : string , sessionId : string , dto : SubmitAnswerDto ) : Promise < SubmitAnswerResponseDto > {
@@ -121,12 +121,24 @@ export class ReviewService {
121121 . set ( { status : 'completed' , score, completedAt : new Date ( ) } )
122122 . where ( eq ( reviewSessions . sessionId , sessionId ) ) ;
123123
124- const itemDtos = items . map ( ( i ) => ( {
125- itemId : i . itemId , sessionId : i . sessionId , memoId : i . memoId ,
126- question : i . question , userAnswer : i . userAnswer ?? undefined ,
127- aiFeedback : i . aiFeedback ?? undefined , mastery : i . mastery ?? undefined ,
128- order : i . order ,
129- } ) ) ;
124+ // Fetch memo content for each item
125+ const itemDtos = await Promise . all (
126+ items . map ( async ( i ) => {
127+ const [ memo ] = await db . select ( { content : memos . content } )
128+ . from ( memos ) . where ( eq ( memos . memoId , i . memoId ) ) ;
129+ return {
130+ itemId : i . itemId ,
131+ sessionId : i . sessionId ,
132+ memoId : i . memoId ,
133+ memoContent : memo ?. content ,
134+ question : i . question ,
135+ userAnswer : i . userAnswer ?? undefined ,
136+ aiFeedback : i . aiFeedback ?? undefined ,
137+ mastery : i . mastery ?? undefined ,
138+ order : i . order ,
139+ } ;
140+ } )
141+ ) ;
130142
131143 return { sessionId, score, items : itemDtos } ;
132144 }
@@ -204,17 +216,34 @@ export class ReviewService {
204216 return `笔记内容:${ content } ` ;
205217 }
206218
207- private toSessionDto ( session : any , items : any [ ] ) : ReviewSessionDto {
219+ private async toSessionDto ( session : any , items : any [ ] ) : Promise < ReviewSessionDto > {
220+ const db = getDatabase ( ) ;
221+ // Fetch memo content for each item
222+ const itemsWithContent = await Promise . all (
223+ items . map ( async ( i ) => {
224+ const [ memo ] = await db . select ( { content : memos . content } )
225+ . from ( memos ) . where ( eq ( memos . memoId , i . memoId ) ) ;
226+ return {
227+ itemId : i . itemId ,
228+ sessionId : i . sessionId ,
229+ memoId : i . memoId ,
230+ memoContent : memo ?. content ,
231+ question : i . question ,
232+ userAnswer : i . userAnswer ?? undefined ,
233+ aiFeedback : i . aiFeedback ?? undefined ,
234+ mastery : i . mastery ?? undefined ,
235+ order : i . order ,
236+ } ;
237+ } )
238+ ) ;
208239 return {
209- sessionId : session . sessionId , uid : session . uid , scope : session . scope ,
210- scopeValue : session . scopeValue ?? undefined , status : session . status ,
240+ sessionId : session . sessionId ,
241+ uid : session . uid ,
242+ scope : session . scope ,
243+ scopeValue : session . scopeValue ?? undefined ,
244+ status : session . status ,
211245 score : session . score ?? undefined ,
212- items : items . map ( ( i ) => ( {
213- itemId : i . itemId , sessionId : i . sessionId , memoId : i . memoId ,
214- question : i . question , userAnswer : i . userAnswer ?? undefined ,
215- aiFeedback : i . aiFeedback ?? undefined , mastery : i . mastery ?? undefined ,
216- order : i . order ,
217- } ) ) ,
246+ items : itemsWithContent ,
218247 createdAt : session . createdAt . toISOString ( ) ,
219248 completedAt : session . completedAt ?. toISOString ( ) ,
220249 } ;
0 commit comments