智慧保安后台管理-外网
Administrator
2022-01-20 cb04ed62736efe70cf5babe534220b4ae4c1ca67
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
@@ -18,20 +18,20 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.utils.TimeSwitchUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.modules.apply.entity.Apply;
import org.springblade.modules.exam.entity.*;
import org.springblade.modules.exam.mapper.ExamPaperMapper;
import org.springblade.modules.exam.service.*;
import org.springblade.modules.exam.vo.ExamPaperSubjectVO;
import org.springblade.modules.exam.vo.ExamPaperVO;
import org.springblade.modules.exam.vo.ExamScoreVO;
import org.springblade.modules.exam.vo.ExamSubjectChoicesVO;
import org.springblade.modules.exam.vo.*;
import org.springblade.modules.training.entity.TrainingRegistration;
import org.springblade.modules.training.service.TrainingRegistrationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -80,6 +80,22 @@
         //模拟考试
         if (examPaperVO1.getExamType()==2) {
            examPaperVO1.setNum(baseMapper.getTrainNumber(examPaperVO1));
            examPaperVO1.setExamNum(baseMapper.getExamNumber(examPaperVO1));
            //计算截止时间
            long nowTime = System.currentTimeMillis();
            long examStartTime = examPaperVO1.getStartTime().getTime();
            long examEndTime = examPaperVO1.getEndTime().getTime();
            //判断时间
            if (nowTime-examEndTime>0){
               //剩余时间大于1天
               examPaperVO1.setDeadline("考试已结束");
            }else if(nowTime-examStartTime>=0 && nowTime-examEndTime<=0){
               //已到考试时间
               examPaperVO1.setDeadline("已到考试时间");
            }else {
               long time = examStartTime - nowTime;
               examPaperVO1.setDeadline(TimeSwitchUtil.secondToTime(time));
            }
         }
      });
      return examPaperVOIPage;
@@ -108,6 +124,8 @@
            //新增
//            examExaminationSubjectService.save(ksxtSginup);
            list.add(ksxtSginup);
            //将题目答案设置为空字符串,不让前端看到
            examSubjectChoicesVO.setAnswer("");
         });
         //批量新增
         baseMapper.insertBatch(list);
@@ -144,13 +162,13 @@
   /**
    * 查询考生考试信息
    * @param userId 用户id
    * @param examPaper 用户id
    * @return
    */
   @Override
   public List<ExamPaperVO> getExamDetail(String userId) {
   public List<ExamPaperVO> getExamDetail(ExamPaperVO examPaper) {
      //查询考试信息
      return baseMapper.getExamDetail(userId);
      return baseMapper.getExamDetail(examPaper);
   }
   /**
@@ -179,7 +197,7 @@
    * @return
    */
   @Override
   public ExamPaper getExamInfoByExamName(String examName) {
   public List<ExamPaper> getExamInfoByExamName(String examName) {
      return baseMapper.getExamInfoByExamName(examName);
   }
@@ -239,4 +257,39 @@
      }
      return null;
   }
   /**
    * 查询考试统计信息
    * @param examPaperVO
    * @param page
    * @return
    */
   @Override
   public IPage<ExamStatisticsVO> getExamStatistics(IPage<ExamStatisticsVO> page, ExamPaperVO examPaperVO) {
      return page.setRecords(baseMapper.getExamStatistics(page,examPaperVO));
   }
   /**
    * 根据考试id 统计查询考试信息
    * @param examPaperVO
    * @return
    */
   @Override
   public IPage<ExamStatisticsVO> getExamInfoByExamId(IPage<ExamStatisticsVO> page, ExamStatisticsVO examPaperVO) {
      List<ExamStatisticsVO> statisticsVOS = baseMapper.getExamInfoByExamId(page, examPaperVO);
      System.out.println("statisticsVOS = " + statisticsVOS);
      //遍历,计算占比
      if (statisticsVOS.size()>0){
         statisticsVOS.forEach(examStatisticsVO -> {
            //格式化小数
            DecimalFormat df = new DecimalFormat("0.00");
            //返回的是String类型
            examStatisticsVO.setAbsentProportion(df.format((float)examStatisticsVO.getQknum()/examStatisticsVO.getZnum()*100));
            DecimalFormat df1 = new DecimalFormat("0.00");
            examStatisticsVO.setQualifiedProportion(df1.format((float)examStatisticsVO.getYknum()/examStatisticsVO.getZnum()*100));
         });
      }
      return page.setRecords(statisticsVOS);
   }
}