feat: 结束会话时返回有效时间不足的提示信息

- StudySessionsServiceImpl: 检测 effectiveTime 被清零时返回提示消息
- StudySessionController: 将提示消息通过 CommonResult.success(message) 传给前端
This commit is contained in:
2026-05-30 17:36:56 +08:00
parent 591dc89e53
commit a64daacc71
2 changed files with 8 additions and 3 deletions
@@ -67,8 +67,8 @@ public class StudySessionController {
@PostMapping("/{sessionNum}/study-sessions/ended") @PostMapping("/{sessionNum}/study-sessions/ended")
public CommonResult<Void> endedStudySession(@PathVariable("sessionNum") String sessionNum, public CommonResult<Void> endedStudySession(@PathVariable("sessionNum") String sessionNum,
@Valid @RequestBody EndedStudySessionRequest request) throws ErrorParameterException { @Valid @RequestBody EndedStudySessionRequest request) throws ErrorParameterException {
studySessionsServiceImpl.endedStudySession(sessionNum, request.getContent()); String message = studySessionsServiceImpl.endedStudySession(sessionNum, request.getContent());
return CommonResult.success(); return message != null ? CommonResult.success(message) : CommonResult.success();
} }
/** /**
@@ -93,16 +93,21 @@ public class StudySessionsServiceImpl extends ServiceImpl<StudySessionsMapper, S
@Override @Override
public void endedStudySession(String sessionNum, String content) throws ErrorParameterException { public String endedStudySession(String sessionNum, String content) throws ErrorParameterException {
StudySessionsEntity studySessionsEntity = this.getOneOpt(Wrappers.lambdaQuery(StudySessionsEntity.class) StudySessionsEntity studySessionsEntity = this.getOneOpt(Wrappers.lambdaQuery(StudySessionsEntity.class)
.eq(StudySessionsEntity::getSessionNum, sessionNum)) .eq(StudySessionsEntity::getSessionNum, sessionNum))
.orElseThrow(() -> new ErrorParameterException("会话[" + sessionNum + "]不存在")); .orElseThrow(() -> new ErrorParameterException("会话[" + sessionNum + "]不存在"));
boolean wasOngoing = StudySessionStateEnum.ONGOING.name().equals(studySessionsEntity.getSessionState());
studySessionsEntity.endedStudySession(); studySessionsEntity.endedStudySession();
this.updateById(studySessionsEntity); this.updateById(studySessionsEntity);
StudyReportsEntity studyReportsEntity = new StudyReportsEntity(); StudyReportsEntity studyReportsEntity = new StudyReportsEntity();
studyReportsEntity.setSessionNum(sessionNum); studyReportsEntity.setSessionNum(sessionNum);
studyReportsEntity.setContent(content); studyReportsEntity.setContent(content);
studyReportsMapper.insert(studyReportsEntity); studyReportsMapper.insert(studyReportsEntity);
if (wasOngoing && studySessionsEntity.getEffectiveTime() == 0) {
return "本次有效学习时间不足10分钟,不计入总学习时间";
}
return null;
} }
@Override @Override