diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java index 8938507b..adcf918e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java @@ -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()