|
package org.springblade.modules.exam.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.AllArgsConstructor;
|
import org.springblade.modules.exam.entity.ExamExaminationSubject;
|
import org.springblade.modules.exam.entity.ExamPaper;
|
import org.springblade.modules.exam.entity.ExamScore;
|
import org.springblade.modules.exam.mapper.ExamScoreMapper;
|
import org.springblade.modules.exam.service.ExamPaperService;
|
import org.springblade.modules.exam.service.ExamScoreService;
|
import org.springblade.modules.exam.vo.ExamPaperSubjectVO;
|
import org.springblade.modules.exam.vo.ExamResultVO;
|
import org.springblade.modules.exam.vo.ExamScoreVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 考试成绩服务实现类
|
* @author zhongrj
|
*/
|
@Service
|
@AllArgsConstructor
|
public class ExamScoreServiceImpl extends ServiceImpl<ExamScoreMapper, ExamScore> implements ExamScoreService {
|
|
private final ExamPaperService examPaperService;
|
|
/**
|
* 自定义分页数据
|
* @param page 分页条件
|
* @param examScore 考试成绩对象
|
* @return
|
*/
|
@Override
|
public IPage<ExamScoreVO> selectExamScorePage(IPage<ExamScoreVO> page, ExamScoreVO examScore) {
|
return page.setRecords(baseMapper.selectExamScorePage(page, examScore));
|
}
|
|
/**
|
* 详情
|
* @param examScore 考试成绩信息对象
|
*/
|
@Override
|
public ExamScoreVO selectExamScoreInfo(ExamScore examScore) {
|
return baseMapper.selectExamScoreInfo(examScore);
|
}
|
|
/**
|
* 保存考试成绩
|
* @param examScore 考试成绩信息对象
|
* @return
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean saveExamScore(ExamScoreVO examScore) {
|
//取出考试结果
|
if (examScore.getExamResultVOS().size()>0){
|
List<ExamResultVO> examResultVOS = examScore.getExamResultVOS();
|
//获取试卷的内容(题号,答案)
|
ExamPaper examPaper = new ExamPaper();
|
examPaper.setId(examScore.getPapersId());
|
List<ExamExaminationSubject> examExaminationSubjects
|
= examPaperService.queryPagerSubject(examPaper).getExamExaminationSubjects();
|
//比对考试结果
|
//声明理论得分
|
int theoryGrade = 0;
|
for (int i = 0; i < examResultVOS.size(); i++) {
|
if (examResultVOS.get(i).getValue().equals(examExaminationSubjects.get(i).getExamSubjectChoices().getAnswer())){
|
theoryGrade += examResultVOS.get(i).getGrade();
|
}
|
}
|
//设置理论得分
|
examScore.setTheoryGrade(theoryGrade);
|
//计算总成绩
|
examScore.setAllGrade(theoryGrade + examScore.getLearnGrade());
|
//保存成绩数据
|
int i = baseMapper.insert(examScore);
|
if (i>0){
|
//返回结果
|
return true;
|
}
|
}
|
//返回结果
|
return false;
|
}
|
}
|