From a3f8c7e4fbd6c375de06b0bdb69969d05a0d0e97 Mon Sep 17 00:00:00 2001 From: flower Date: Mon, 14 Jan 2019 22:42:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E5=8D=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ApiExaminationController.java | 92 +++++++++- .../domain/ExamUserExaminationQuestion.java | 163 ++++++++++++++++++ .../ExamUserExaminationQuestionMapper.java | 24 +++ .../service/IExamExaminationUserService.java | 3 +- .../IExamUserExaminationQuestionService.java | 31 ++++ .../service/IExamUserExaminationService.java | 4 + .../impl/ExamExaminationUserServiceImpl.java | 6 + ...xamUserExaminationQuestionServiceImpl.java | 54 ++++++ .../impl/ExamUserExaminationServiceImpl.java | 10 ++ .../ExamUserExaminationQuestionMapper.xml | 41 +++++ 10 files changed, 424 insertions(+), 4 deletions(-) create mode 100755 ruoyi-exam/src/main/java/com/ruoyi/exam/domain/ExamUserExaminationQuestion.java create mode 100755 ruoyi-exam/src/main/java/com/ruoyi/exam/mapper/ExamUserExaminationQuestionMapper.java create mode 100755 ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationQuestionService.java create mode 100755 ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamUserExaminationQuestionServiceImpl.java create mode 100755 ruoyi-exam/src/main/resources/mapper/exam/ExamUserExaminationQuestionMapper.xml diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/controller/ApiExaminationController.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/controller/ApiExaminationController.java index e008fe2a8..c648d9c88 100644 --- a/ruoyi-exam/src/main/java/com/ruoyi/exam/controller/ApiExaminationController.java +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/controller/ApiExaminationController.java @@ -37,6 +37,15 @@ public class ApiExaminationController extends BaseController { @Autowired private IExamExaminationUserService examExaminationUserService; + @Autowired + private IExamUserExaminationQuestionService examUserExaminationQuestionService; + + @Autowired + private IExamQuestionService examQuestionService; + + @Autowired + private IExamPaperQuestionService examPaperQuestionService; + /** * 获取考试列表 @@ -76,7 +85,10 @@ public class ApiExaminationController extends BaseController { Integer examNumber = examExamination.getExamNumber(); //考试时长 Integer timeLength = examExamination.getTimeLength(); + //考试记录ID + Integer examUserExaminationId = -1; + //正式考试 if(type.equals("2")){ ExamUserExamination examUserExamination = new ExamUserExamination(); examUserExamination.setVipUserId(userId); @@ -114,8 +126,10 @@ public class ApiExaminationController extends BaseController { insert.setExamPaperId(examPaperId); insert.setDelFlag("0"); insert.setScore(0); - examUserExaminationService.insert(insert); - + examUserExaminationService.insertOne(insert); + examUserExaminationId = insert.getId(); + }else{ + examUserExaminationId = userExamination.get(0).getId(); } } @@ -127,6 +141,7 @@ public class ApiExaminationController extends BaseController { } AjaxResult success = success("查询成功"); success.put("data", list); + success.put("examUserExaminationId",examUserExaminationId); return success; } @@ -170,13 +185,84 @@ public class ApiExaminationController extends BaseController { examExaminationUser.setCreateDate(new Date()); examExaminationUser.setCreateBy(user.getLoginName()); examExaminationUser.setExamExaminationId(Integer.parseInt(inationId)); - examExaminationUserService.insert(examExaminationUser); + examExaminationUserService.insertOne(examExaminationUser); AjaxResult success = success("报名成功"); return success; } + @PostMapping("/v1/examination/finish/{examUserExaminationId}/{examinationId}/{paperId}") + public AjaxResult finish(@RequestBody List examUserExaminationQuestion, + @PathVariable Integer examUserExaminationId ,@PathVariable Integer examinationId,@PathVariable Integer paperId) { + + + SysUser user = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() ); + Long userId = user.getUserId(); + //交卷后返回的数据 + ArrayList> data = new ArrayList<>(); + + + //如果是模拟考试,考试记录新增数据 + if(examUserExaminationId == -1){ + ExamUserExamination insert = new ExamUserExamination(); + insert.setExamExaminationId(examinationId); + insert.setVipUserId(Integer.parseInt(userId.toString())); + insert.setCreateDate(new Date()); + insert.setExamPaperId(paperId); + insert.setDelFlag("0"); + insert.setScore(0); + examUserExaminationService.insertOne(insert); + examUserExaminationId = insert.getId(); + } + + Integer score = 0; + for (ExamUserExaminationQuestion item : examUserExaminationQuestion) { + HashMap returnItem = new HashMap<>(); + String userAnswer = item.getUserAnswer(); + //存入用户回答 + returnItem.put("userAnswer",userAnswer); + Integer examQuestionId = item.getExamQuestionId(); + ExamQuestion examQuestion = examQuestionService.selectById(examQuestionId); + //存入正确答案 + returnItem.put("answer",examQuestion.getAnswer()); + returnItem.put("title",examQuestion.getTitle()); + returnItem.put("rightWrong","错误"); + if(examQuestion.getAnswer().equals(userAnswer)){ + ExamPaperQuestion examPaperQuestion = new ExamPaperQuestion(); + examPaperQuestion.setExamPaperId(paperId); + examPaperQuestion.setExamQuestionId(examQuestionId); + score+=examPaperQuestionService.selectExamPaperQuestionList(examPaperQuestion).get(0).getScore(); + returnItem.put("rightWrong","正确"); + } + item.setExamUserExaminationId(examUserExaminationId); + item.setCreateDate(new Date()); + item.setCreateBy(user.getLoginName()); + item.setDelFlag("0"); + examUserExaminationQuestionService.insertOne(item); + data.add(returnItem); + } + ExamUserExamination examUserExamination = examUserExaminationService.selectById(examUserExaminationId); + examUserExamination.setScore(score); + examUserExamination.setUpdateDate(new Date()); + examUserExamination.setCreateBy(user.getLoginName()); + examUserExaminationService.updateOneSelectiveById(examUserExamination); + + ExamExamination examExamination = examExaminationService.selectById(examinationId); + String finishedPaper = examExamination.getFinishedPaper(); + + + AjaxResult success = success("考试完成"); + //考试完成后参数 + success.put("finishedPaper",finishedPaper); + success.put("score",score); + if(!finishedPaper.equals("0")){ + success.put("data", data); + } + return success; + } + + diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/domain/ExamUserExaminationQuestion.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/domain/ExamUserExaminationQuestion.java new file mode 100755 index 000000000..8b5531dce --- /dev/null +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/domain/ExamUserExaminationQuestion.java @@ -0,0 +1,163 @@ +package com.ruoyi.exam.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.base.BaseEntity; + import javax.persistence.Id; + import java.util.Date; + +/** + * 我参与过的考试试题表 exam_user_examination_question + * + * @author zhujj + * @date 2019-01-13 + */ +public class ExamUserExaminationQuestion +{ +private static final long serialVersionUID = 1L; + + /** 练习对象 */ + @Id + private Integer id; + /** 考试记录编码 */ + private Integer examUserExaminationId; + /** 试题编码 */ + private Integer examQuestionId; + /** 回答答案 */ + private String userAnswer; + /** 创建者 */ + private String createBy; + /** 创建时间 */ + private Date createDate; + /** 更新者 */ + private String updateBy; + /** 更新时间 */ + private Date updateDate; + /** 备注信息 */ + private String remarks; + /** 删除标记 */ + private String delFlag; + + + public String getUserAnswer() { + return userAnswer; + } + + public void setUserAnswer(String userAnswer) { + this.userAnswer = userAnswer; + } + + /** 设置练习对象 */ + public void setId(Integer id) + { + this.id = id; + } + + /** 获取练习对象 */ + public Integer getId() + { + return id; + } + /** 设置考试记录编码 */ + public void setExamUserExaminationId(Integer examUserExaminationId) + { + this.examUserExaminationId = examUserExaminationId; + } + + /** 获取考试记录编码 */ + public Integer getExamUserExaminationId() + { + return examUserExaminationId; + } + /** 设置试题编码 */ + public void setExamQuestionId(Integer examQuestionId) + { + this.examQuestionId = examQuestionId; + } + + /** 获取试题编码 */ + public Integer getExamQuestionId() + { + return examQuestionId; + } + /** 设置创建者 */ + public void setCreateBy(String createBy) + { + this.createBy = createBy; + } + + /** 获取创建者 */ + public String getCreateBy() + { + return createBy; + } + /** 设置创建时间 */ + public void setCreateDate(Date createDate) + { + this.createDate = createDate; + } + + /** 获取创建时间 */ + public Date getCreateDate() + { + return createDate; + } + /** 设置更新者 */ + public void setUpdateBy(String updateBy) + { + this.updateBy = updateBy; + } + + /** 获取更新者 */ + public String getUpdateBy() + { + return updateBy; + } + /** 设置更新时间 */ + public void setUpdateDate(Date updateDate) + { + this.updateDate = updateDate; + } + + /** 获取更新时间 */ + public Date getUpdateDate() + { + return updateDate; + } + /** 设置备注信息 */ + public void setRemarks(String remarks) + { + this.remarks = remarks; + } + + /** 获取备注信息 */ + public String getRemarks() + { + return remarks; + } + /** 设置删除标记 */ + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + /** 获取删除标记 */ + public String getDelFlag() + { + return delFlag; + } + +public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("examUserExaminationId", getExamUserExaminationId()) + .append("examQuestionId", getExamQuestionId()) + .append("createBy", getCreateBy()) + .append("createDate", getCreateDate()) + .append("updateBy", getUpdateBy()) + .append("updateDate", getUpdateDate()) + .append("remarks", getRemarks()) + .append("delFlag", getDelFlag()) + .toString(); + } + } diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/mapper/ExamUserExaminationQuestionMapper.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/mapper/ExamUserExaminationQuestionMapper.java new file mode 100755 index 000000000..2a1b12562 --- /dev/null +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/mapper/ExamUserExaminationQuestionMapper.java @@ -0,0 +1,24 @@ +package com.ruoyi.exam.mapper; + +import com.ruoyi.exam.domain.ExamUserExaminationQuestion; +import java.util.List; +import com.ruoyi.framework.web.base.MyMapper; + +/** + * 我参与过的考试试题 数据层 + * + * @author zhujj + * @date 2019-01-13 + */ +public interface ExamUserExaminationQuestionMapper extends MyMapper +{ + + /** + * 查询我参与过的考试试题列表 + * + * @param examUserExaminationQuestion 我参与过的考试试题信息 + * @return 我参与过的考试试题集合 + */ + public List selectExamUserExaminationQuestionList(ExamUserExaminationQuestion examUserExaminationQuestion); + +} \ No newline at end of file diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamExaminationUserService.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamExaminationUserService.java index ccf5392d5..0eaf2aecd 100644 --- a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamExaminationUserService.java +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamExaminationUserService.java @@ -26,5 +26,6 @@ public interface IExamExaminationUserService extends AbstractBaseService selectExamExaminationUserList(ExamExaminationUser examExaminationUser); - + + int insertOne(ExamExaminationUser examExaminationUser); } diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationQuestionService.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationQuestionService.java new file mode 100755 index 000000000..3f3911ccb --- /dev/null +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationQuestionService.java @@ -0,0 +1,31 @@ +package com.ruoyi.exam.service; + +import com.ruoyi.exam.domain.ExamUserExaminationQuestion; +import java.util.List; +import com.ruoyi.framework.web.base.AbstractBaseService; +/** + * 我参与过的考试试题 服务层 + * + * @author zhujj + * @date 2019-01-13 + */ +public interface IExamUserExaminationQuestionService extends AbstractBaseService +{ + /** + * 查询我参与过的考试试题分页列表 + * + * @param examUserExaminationQuestion 我参与过的考试试题信息 + * @return 我参与过的考试试题集合 + */ + public List selectExamUserExaminationQuestionPage(ExamUserExaminationQuestion examUserExaminationQuestion); + /** + * 查询我参与过的考试试题列表 + * + * @param examUserExaminationQuestion 我参与过的考试试题信息 + * @return 我参与过的考试试题集合 + */ + public List selectExamUserExaminationQuestionList(ExamUserExaminationQuestion examUserExaminationQuestion); + + + int insertOne(ExamUserExaminationQuestion item); +} diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationService.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationService.java index 839786c4b..66a4b180b 100644 --- a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationService.java +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/IExamUserExaminationService.java @@ -32,4 +32,8 @@ public interface IExamUserExaminationService extends AbstractBaseService selectLastOne(ExamUserExamination examUserExamination); + + void insertOne(ExamUserExamination insert); + + int updateOneSelectiveById(ExamUserExamination examUserExamination); } diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamExaminationUserServiceImpl.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamExaminationUserServiceImpl.java index 6432e333b..d8558e6b2 100644 --- a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamExaminationUserServiceImpl.java +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamExaminationUserServiceImpl.java @@ -32,6 +32,12 @@ public class ExamExaminationUserServiceImpl extends AbstractBaseServiceImpl implements IExamUserExaminationQuestionService +{ + @Autowired + private ExamUserExaminationQuestionMapper examUserExaminationQuestionMapper; + + + /** + * 查询我参与过的考试试题列表 + * + * @param examUserExaminationQuestion 我参与过的考试试题信息 + * @return 我参与过的考试试题集合 + */ + @Override + public List selectExamUserExaminationQuestionList(ExamUserExaminationQuestion examUserExaminationQuestion) + { + return examUserExaminationQuestionMapper.selectExamUserExaminationQuestionList(examUserExaminationQuestion); + } + + @Override + public int insertOne(ExamUserExaminationQuestion item) { + return examUserExaminationQuestionMapper.insert(item); + } + + /** + * 查询我参与过的考试试题分页列表 + * + * @param examUserExaminationQuestion 我参与过的考试试题信息 + * @return 我参与过的考试试题集合 + */ + @Override + public List selectExamUserExaminationQuestionPage(ExamUserExaminationQuestion examUserExaminationQuestion) + { + startPage(); + return examUserExaminationQuestionMapper.selectExamUserExaminationQuestionList(examUserExaminationQuestion); + } + +} diff --git a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamUserExaminationServiceImpl.java b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamUserExaminationServiceImpl.java index cd8a5cf16..aeb445034 100644 --- a/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamUserExaminationServiceImpl.java +++ b/ruoyi-exam/src/main/java/com/ruoyi/exam/service/impl/ExamUserExaminationServiceImpl.java @@ -38,6 +38,16 @@ public class ExamUserExaminationServiceImpl extends AbstractBaseServiceImpl + + + + + + + + + + + + + + + + + + id, exam_user_examination_id, exam_question_id,user_answer, create_by, create_date, update_by, update_date, remarks, del_flag + + + + + \ No newline at end of file