This commit is contained in:
flower 2019-01-14 22:42:41 +08:00
parent 20a71a467f
commit a3f8c7e4fb
10 changed files with 424 additions and 4 deletions

View File

@ -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> examUserExaminationQuestion,
@PathVariable Integer examUserExaminationId ,@PathVariable Integer examinationId,@PathVariable Integer paperId) {
SysUser user = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() );
Long userId = user.getUserId();
//交卷后返回的数据
ArrayList<Map<String,String>> 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<String, String> 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;
}

View File

@ -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();
}
}

View File

@ -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<ExamUserExaminationQuestion>
{
/**
* 查询我参与过的考试试题列表
*
* @param examUserExaminationQuestion 我参与过的考试试题信息
* @return 我参与过的考试试题集合
*/
public List<ExamUserExaminationQuestion> selectExamUserExaminationQuestionList(ExamUserExaminationQuestion examUserExaminationQuestion);
}

View File

@ -26,5 +26,6 @@ public interface IExamExaminationUserService extends AbstractBaseService<ExamExa
*/
public List<ExamExaminationUser> selectExamExaminationUserList(ExamExaminationUser examExaminationUser);
int insertOne(ExamExaminationUser examExaminationUser);
}

View File

@ -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<ExamUserExaminationQuestion>
{
/**
* 查询我参与过的考试试题分页列表
*
* @param examUserExaminationQuestion 我参与过的考试试题信息
* @return 我参与过的考试试题集合
*/
public List<ExamUserExaminationQuestion> selectExamUserExaminationQuestionPage(ExamUserExaminationQuestion examUserExaminationQuestion);
/**
* 查询我参与过的考试试题列表
*
* @param examUserExaminationQuestion 我参与过的考试试题信息
* @return 我参与过的考试试题集合
*/
public List<ExamUserExaminationQuestion> selectExamUserExaminationQuestionList(ExamUserExaminationQuestion examUserExaminationQuestion);
int insertOne(ExamUserExaminationQuestion item);
}

View File

@ -32,4 +32,8 @@ public interface IExamUserExaminationService extends AbstractBaseService<ExamUse
* @return
*/
List<ExamUserExamination> selectLastOne(ExamUserExamination examUserExamination);
void insertOne(ExamUserExamination insert);
int updateOneSelectiveById(ExamUserExamination examUserExamination);
}

View File

@ -32,6 +32,12 @@ public class ExamExaminationUserServiceImpl extends AbstractBaseServiceImpl<Exam
{
return examExaminationUserMapper.selectExamExaminationUserList(examExaminationUser);
}
@Override
public int insertOne(ExamExaminationUser examExaminationUser) {
return examExaminationUserMapper.insert(examExaminationUser);
}
/**
* 查询考试对象分页列表
*

View File

@ -0,0 +1,54 @@
package com.ruoyi.exam.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.exam.mapper.ExamUserExaminationQuestionMapper;
import com.ruoyi.exam.domain.ExamUserExaminationQuestion;
import com.ruoyi.exam.service.IExamUserExaminationQuestionService;
import com.ruoyi.common.support.Convert;
import com.ruoyi.framework.web.base.AbstractBaseServiceImpl;
/**
* 我参与过的考试试题 服务层实现
*
* @author zhujj
* @date 2019-01-13
*/
@Service
public class ExamUserExaminationQuestionServiceImpl extends AbstractBaseServiceImpl<ExamUserExaminationQuestionMapper,ExamUserExaminationQuestion> implements IExamUserExaminationQuestionService
{
@Autowired
private ExamUserExaminationQuestionMapper examUserExaminationQuestionMapper;
/**
* 查询我参与过的考试试题列表
*
* @param examUserExaminationQuestion 我参与过的考试试题信息
* @return 我参与过的考试试题集合
*/
@Override
public List<ExamUserExaminationQuestion> selectExamUserExaminationQuestionList(ExamUserExaminationQuestion examUserExaminationQuestion)
{
return examUserExaminationQuestionMapper.selectExamUserExaminationQuestionList(examUserExaminationQuestion);
}
@Override
public int insertOne(ExamUserExaminationQuestion item) {
return examUserExaminationQuestionMapper.insert(item);
}
/**
* 查询我参与过的考试试题分页列表
*
* @param examUserExaminationQuestion 我参与过的考试试题信息
* @return 我参与过的考试试题集合
*/
@Override
public List<ExamUserExaminationQuestion> selectExamUserExaminationQuestionPage(ExamUserExaminationQuestion examUserExaminationQuestion)
{
startPage();
return examUserExaminationQuestionMapper.selectExamUserExaminationQuestionList(examUserExaminationQuestion);
}
}

View File

@ -38,6 +38,16 @@ public class ExamUserExaminationServiceImpl extends AbstractBaseServiceImpl<Exam
return examUserExaminationMapper.selectLastOne(examUserExamination);
}
@Override
public void insertOne(ExamUserExamination insert) {
examUserExaminationMapper.insert(insert);
}
@Override
public int updateOneSelectiveById(ExamUserExamination examUserExamination) {
return examUserExaminationMapper.updateByPrimaryKeySelective(examUserExamination);
}
/**
* 查询我的考试记录分页列表
*

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.exam.mapper.ExamUserExaminationQuestionMapper">
<resultMap type="ExamUserExaminationQuestion" id="ExamUserExaminationQuestionResult">
<result property="id" column="id" />
<result property="examUserExaminationId" column="exam_user_examination_id" />
<result property="userAnswer" column="user_answer" />
<result property="examQuestionId" column="exam_question_id" />
<result property="createBy" column="create_by" />
<result property="createDate" column="create_date" />
<result property="updateBy" column="update_by" />
<result property="updateDate" column="update_date" />
<result property="remarks" column="remarks" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectExamUserExaminationQuestionVo">
id, exam_user_examination_id, exam_question_id,user_answer, create_by, create_date, update_by, update_date, remarks, del_flag </sql>
<select id="selectExamUserExaminationQuestionList" parameterType="ExamUserExaminationQuestion" resultMap="ExamUserExaminationQuestionResult">
select
<include refid="selectExamUserExaminationQuestionVo"/>
from exam_user_examination_question
<where>
<if test="id != null "> and id = #{id}</if>
<if test="examUserExaminationId != null "> and exam_user_examination_id = #{examUserExaminationId}</if>
<if test="examQuestionId != null "> and exam_question_id = #{examQuestionId}</if>
<if test="createBy != null and createBy != '' "> and create_by = #{createBy}</if>
<if test="createDate != null "> and create_date = #{createDate}</if>
<if test="updateBy != null and updateBy != '' "> and update_by = #{updateBy}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="remarks != null and remarks != '' "> and remarks = #{remarks}</if>
<if test="delFlag != null and delFlag != '' "> and del_flag = #{delFlag}</if>
</where>
</select>
</mapper>