Merge remote-tracking branch 'origin/dev0525' into dev0525

This commit is contained in:
xiaozhequ
2024-07-03 09:59:08 +08:00

View File

@@ -487,16 +487,32 @@ public class AloneExamServiceImpl implements IAloneExamService{
FieldFilters.eq("testId", examScoreDto.getTestId())
);
aloneExamAnswer.setAloneId(aloneExamId);
// 添加答卷
dao.save(aloneExamAnswer);
// 最后一次的分数为准
aeDao.update(UpdateBuilder.from(AloneExam.class)
.addUpdateField("status", examScoreDto.getStatus())
.addUpdateField("score", examScoreDto.getScore())
.addFilter(FieldFilters.eq("aid", userId))
.addFilter(FieldFilters.eq("testId", examScoreDto.getTestId()))
.builder());
// 更新状态,状态是未完成的,这里会有问题
if(examTest.getScoringType()!=null && examTest.getScoringType()==2) {
//最后一次的分数为准
aeDao.update(UpdateBuilder.from(AloneExam.class)
.addUpdateField("status", examScoreDto.getStatus())
.addUpdateField("score", examScoreDto.getScore())
.addFilter(FieldFilters.eq("aid", userId))
.addFilter(FieldFilters.eq("testId", examScoreDto.getTestId()))
.builder());
}else {
//更新状态
AloneExam ae=aeDao.findOne(FieldFilters.eq("aid", userId),FieldFilters.eq("testId", examScoreDto.getTestId()));
if(ae!=null) {
if(ae.getStatus()==AloneExam.STATUS_FINISH) {
if(ae.getScore()<examScoreDto.getScore()) {
aeDao.updateFieldById(ae.getId(), "score", examScoreDto.getScore());
}
}else {
aeDao.updateMultiFieldById(ae.getId(), UpdateBuilder.create("status", examScoreDto.getStatus()),UpdateBuilder.create("score", examScoreDto.getScore()));
}
}
}
// 提交事务
transactionManager.commit(status);
} catch (Exception e) {