1313import io .wisoft .prepair .prepair_api .interview .question .entity .InterviewQuestion ;
1414import io .wisoft .prepair .prepair_api .interview .question .repository .QuestionRepository ;
1515import io .wisoft .prepair .prepair_api .interview .session .entity .InterviewSession ;
16- import io .wisoft .prepair .prepair_api .interview .session .repository . SessionRepository ;
16+ import io .wisoft .prepair .prepair_api .interview .session .service . SessionPersistenceService ;
1717import io .wisoft .prepair .prepair_api .common .support .SseEmitterManager ;
1818import lombok .RequiredArgsConstructor ;
1919import lombok .extern .slf4j .Slf4j ;
2020import org .springframework .context .event .EventListener ;
2121import org .springframework .scheduling .annotation .Async ;
2222import org .springframework .stereotype .Component ;
23- import org .springframework .transaction .annotation .Transactional ;
2423
2524import java .io .IOException ;
2625import java .nio .file .Files ;
@@ -42,12 +41,11 @@ public class AllAnalysisCompletedHandler {
4241 private final AnswerPersistenceService answerPersistenceService ;
4342 private final AnswerRepository answerRepository ;
4443 private final QuestionRepository questionRepository ;
45- private final SessionRepository sessionRepository ;
44+ private final SessionPersistenceService sessionPersistenceService ;
4645 private final SseEmitterManager sseEmitterManager ;
4746
4847 @ Async ("videoTaskExecutor" )
4948 @ EventListener
50- @ Transactional
5149 public void handle (AllAnalysisCompletedEvent event ) {
5250 UUID answerId = event .answerId ();
5351 deleteTempFile (event .videoPath ());
@@ -201,8 +199,7 @@ private FinalFeedbackData buildFinalData(
201199 private void completeSession (InterviewSession session , FinalFeedbackData data , FinalFeedbackResult finalResult ) {
202200 UUID sessionId = session .getId ();
203201
204- session .complete (data .finalScore (), finalResult .finalFeedback ());
205- sessionRepository .save (session );
202+ sessionPersistenceService .saveCompletedSession (session , data .finalScore (), finalResult .finalFeedback ());
206203
207204 FinalFeedbackResponse response = new FinalFeedbackResponse (
208205 sessionId ,
@@ -222,8 +219,7 @@ private void failSession(UUID answerId, String message) {
222219 if (answer == null || answer .getInterviewQuestion ().getInterviewSession () == null ) return ;
223220
224221 InterviewSession session = answer .getInterviewQuestion ().getInterviewSession ();
225- session .fail ();
226- sessionRepository .save (session );
222+ sessionPersistenceService .saveFailedSession (session );
227223
228224 sseEmitterManager .send (session .getId (), "analysis-failed" , Map .of ("message" , message ));
229225 sseEmitterManager .complete (session .getId ());
0 commit comments