Merge branch 'refs/heads/zcwy0622-yang' into dev0525

This commit is contained in:
yang
2024-07-08 14:50:27 +08:00
2 changed files with 33 additions and 33 deletions

View File

@@ -27,10 +27,10 @@ public class SaveExamScoreDto {
*/ */
private String testId; private String testId;
/** // /**
* 考试名称 // * 考试名称
*/ // */
private String testName; // private String testName;
// /** // /**
// * 考试时长 分钟 // * 考试时长 分钟
@@ -77,10 +77,10 @@ public class SaveExamScoreDto {
*/ */
private Float realScore; private Float realScore;
/** // /**
* 用时秒 // * 用时秒
*/ // */
private Integer useMinute; // private Integer useMinute;
/** /**
@@ -106,17 +106,17 @@ public class SaveExamScoreDto {
*/ */
private Integer status; private Integer status;
/** // /**
* 考试次数 // * 考试次数
*/ // */
private Integer times; // private Integer times;
/** // /**
* 记录最后的操作时间 // * 记录最后的操作时间
*/ // */
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") // @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime lastTime; // private LocalDateTime lastTime;
} }

View File

@@ -93,10 +93,13 @@ public class AloneExamServiceImpl implements IAloneExamService{
//更新状态,状态是未完成的,这里会有问题 //更新状态,状态是未完成的,这里会有问题
if(scoreType!=null && scoreType==2) { if(scoreType!=null && scoreType==2) {
AloneExam ae=aeDao.findOne(FieldFilters.eq("aid", aea.getAid()),FieldFilters.eq("testId", aea.getTestId()));
long currentTimes = ae.getTimes() != null ? ae.getTimes() : 0;
//最后一次的分数为准 //最后一次的分数为准
aeDao.update(UpdateBuilder.from(AloneExam.class) aeDao.update(UpdateBuilder.from(AloneExam.class)
.addUpdateField("status", aea.getStatus()) .addUpdateField("status", aea.getStatus())
.addUpdateField("score", aea.getScore()) .addUpdateField("score", aea.getScore())
.addUpdateField("times", currentTimes+1)
.addFilter(FieldFilters.eq("aid", aea.getAid())) .addFilter(FieldFilters.eq("aid", aea.getAid()))
.addFilter(FieldFilters.eq("testId", aea.getTestId())) .addFilter(FieldFilters.eq("testId", aea.getTestId()))
.builder()); .builder());
@@ -111,6 +114,8 @@ public class AloneExamServiceImpl implements IAloneExamService{
}else { }else {
aeDao.updateMultiFieldById(ae.getId(), UpdateBuilder.create("status", aea.getStatus()),UpdateBuilder.create("score", aea.getScore())); aeDao.updateMultiFieldById(ae.getId(), UpdateBuilder.create("status", aea.getStatus()),UpdateBuilder.create("score", aea.getScore()));
} }
long currentTimes = ae.getTimes() != null ? ae.getTimes() : 0;
aeDao.updateFieldById(ae.getId(), "times", currentTimes+1);
} }
// else { // else {
// //这种情况汶是不存在的 // //这种情况汶是不存在的
@@ -501,7 +506,7 @@ public class AloneExamServiceImpl implements IAloneExamService{
aloneExamAnswer.setAid(userId); aloneExamAnswer.setAid(userId);
aloneExamAnswer.setName(examScoreDto.getUserName()); aloneExamAnswer.setName(examScoreDto.getUserName());
aloneExamAnswer.setUcode(examScoreDto.getWorkNum()); aloneExamAnswer.setUcode(examScoreDto.getWorkNum());
aloneExamAnswer.setUseSecond(examScoreDto.getUseMinute()*60); // aloneExamAnswer.setUseSecond(examScoreDto.getUseMinute()*60);
ExamTest examTest = examTestDao.get(examScoreDto.getTestId()); ExamTest examTest = examTestDao.get(examScoreDto.getTestId());
aloneExamAnswer.setPassLine(examTest.getPassLine()); aloneExamAnswer.setPassLine(examTest.getPassLine());
@@ -509,34 +514,29 @@ public class AloneExamServiceImpl implements IAloneExamService{
aloneExamAnswer.setTestDuration(examTest.getTestDuration()); aloneExamAnswer.setTestDuration(examTest.getTestDuration());
// 获取考试任务ID // 获取考试任务ID
String aloneExamId = (String) aeDao.findField("id", AloneExam aloneExam=aeDao.findOne(FieldFilters.eq("aid", userId),FieldFilters.eq("testId", examScoreDto.getTestId()));
FieldFilters.eq("aid", userId), aloneExamAnswer.setAloneId(aloneExam.getId());
FieldFilters.eq("testId", examScoreDto.getTestId())
);
aloneExamAnswer.setAloneId(aloneExamId);
// 添加答卷 // 添加答卷
dao.save(aloneExamAnswer); dao.save(aloneExamAnswer);
// 更新状态,状态是未完成的,这里会有问题 // 更新状态,状态是未完成的,这里会有问题
long currentTimes = aloneExam.getTimes() != null ? aloneExam.getTimes() : 0;
if(examTest.getScoringType()!=null && examTest.getScoringType()==2) { if(examTest.getScoringType()!=null && examTest.getScoringType()==2) {
//最后一次的分数为准 //最后一次的分数为准
aeDao.update(UpdateBuilder.from(AloneExam.class) aeDao.update(UpdateBuilder.from(AloneExam.class)
.addUpdateField("status", examScoreDto.getStatus()) .addUpdateField("status", examScoreDto.getStatus())
.addUpdateField("score", examScoreDto.getScore()) .addUpdateField("score", examScoreDto.getScore())
.addUpdateField("times", currentTimes+1)
.addFilter(FieldFilters.eq("aid", userId)) .addFilter(FieldFilters.eq("aid", userId))
.addFilter(FieldFilters.eq("testId", examScoreDto.getTestId())) .addFilter(FieldFilters.eq("testId", examScoreDto.getTestId()))
.builder()); .builder());
}else { } else {
//更新状态 if (aloneExam.getStatus() == AloneExam.STATUS_FINISH) {
AloneExam ae=aeDao.findOne(FieldFilters.eq("aid", userId),FieldFilters.eq("testId", examScoreDto.getTestId())); if (aloneExam.getScore() < examScoreDto.getScore()) {
if(ae!=null) { aeDao.updateMultiFieldById(aloneExam.getId(), UpdateBuilder.create("score", examScoreDto.getScore()), UpdateBuilder.create("times", currentTimes+1));
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()));
} }
} else {
aeDao.updateMultiFieldById(aloneExam.getId(), UpdateBuilder.create("status", examScoreDto.getStatus()), UpdateBuilder.create("score", examScoreDto.getScore()), UpdateBuilder.create("times", currentTimes+1));
} }
} }