src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
@@ -1,34 +1,24 @@ package com.ycl.jxkg.controller.student; import com.github.pagehelper.PageInfo; import com.ycl.jxkg.base.BaseApiController; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.*; import com.ycl.jxkg.domain.ExamPaperAnswerInfo; import com.ycl.jxkg.domain.entity.ExamPaperScore; import com.ycl.jxkg.domain.entity.Subject; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.entity.UserEventLog; import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum; import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent; import com.ycl.jxkg.event.UserEvent; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.SubjectService; import com.ycl.jxkg.utils.DateTimeUtil; import com.ycl.jxkg.utils.ExamUtil; import com.ycl.jxkg.utils.PageInfoHelper; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperReadVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; import com.github.pagehelper.PageInfo; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.SubjectService; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationEventPublisher; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Date; @RequiredArgsConstructor @RestController("StudentExamPaperAnswerController") @@ -44,19 +34,7 @@ @RequestMapping(value = "/pageList", method = RequestMethod.POST) public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@RequestBody @Valid ExamPaperAnswerPageVO model) { model.setCreateUser(getCurrentUser().getId()); PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model); PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> { ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO(); // BeanUtils.copyProperties(e, vo); // Subject subject = subjectService.getById(vo.getSubjectId()); // vo.setDoTime(ExamUtil.secondToVM(e.getDoTime())); // vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore())); // vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore())); // vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore())); // vo.setSubjectName(subject.getName()); // vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); return vo; }); PageInfo<ExamPaperAnswerPageResponseVO> page = examPaperScoreService.studentPage(model); return Result.ok(page); } src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java
@@ -2,35 +2,22 @@ import com.ycl.jxkg.base.Result; import com.ycl.jxkg.controller.wx.BaseWXApiController; import com.ycl.jxkg.domain.*; import com.ycl.jxkg.domain.entity.ExamPaperScore; import com.ycl.jxkg.domain.entity.Subject; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.entity.UserEventLog; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent; import com.ycl.jxkg.event.UserEvent; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.SubjectService; import com.ycl.jxkg.utils.DateTimeUtil; import com.ycl.jxkg.utils.ExamUtil; import com.ycl.jxkg.utils.PageInfoHelper; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; import com.github.pagehelper.PageInfo; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperReadVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.SubjectService; import com.ycl.jxkg.utils.ExamUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.*; import java.util.stream.Collectors; @@ -45,24 +32,24 @@ private final ApplicationEventPublisher eventPublisher; private final ExamPaperService examPaperService; @RequestMapping(value = "/pageList", method = RequestMethod.POST) public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@Valid ExamPaperAnswerPageVO model) { model.setCreateUser(getCurrentUser().getId()); PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model); PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> { ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO(); BeanUtils.copyProperties(e, vo); Subject subject = subjectService.getById(vo.getSubjectId()); vo.setDoTime(ExamUtil.secondToVM(e.getDoTime())); // vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore())); // vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore())); // vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore())); vo.setSubjectName(subject.getName()); // vo.setCreateTime(DateTimeUtil.dateFormat(e.get)); return vo; }); return Result.ok(page); } // @RequestMapping(value = "/pageList", method = RequestMethod.POST) // public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@Valid ExamPaperAnswerPageVO model) { // model.setCreateUser(getCurrentUser().getId()); // PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model); // PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> { // ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO(); // BeanUtils.copyProperties(e, vo); // Subject subject = subjectService.getById(vo.getSubjectId()); // vo.setDoTime(ExamUtil.secondToVM(e.getDoTime())); // // vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore())); // // vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore())); // // vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore())); // vo.setSubjectName(subject.getName()); // vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); // return vo; // }); // return Result.ok(page); // } @RequestMapping(value = "/answerSubmit", method = RequestMethod.POST) src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
@@ -6,7 +6,6 @@ import com.ycl.jxkg.domain.base.AbsEntity; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java
@@ -12,6 +12,8 @@ private Integer examPaperId; private Integer examId; private String name; private String userName; src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java
@@ -20,10 +20,10 @@ private String userName; @ExcelProperty("分数") private String userScore; private String score; @ExcelProperty("总分") private String paperScore; private String totalScore; @ExcelProperty("正确题数") private Integer questionCorrect; src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java
@@ -2,6 +2,9 @@ import lombok.Data; /** * @author gonghl */ @Data public class ExamPaperAnswerPageResponseVO { @@ -9,7 +12,9 @@ private String createTime; private String userScore; private String submitTime; private String score; private String subjectName; @@ -25,7 +30,7 @@ private Integer paperType; private String systemScore; private String totalScore; private Integer status; src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java
@@ -6,7 +6,7 @@ @Data public class ExamPaperAnswerPageVO extends BasePage { private Integer subjectId; private String examName; private Integer createUser; src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
@@ -15,7 +15,7 @@ @Mapper public interface ExamPaperScoreMapper extends BaseMapper<ExamPaperScore> { List<ExamPaperScore> studentPage(ExamPaperAnswerPageVO requestVM); List<ExamPaperAnswerPageResponseVO> studentPage(ExamPaperAnswerPageVO requestVM); Integer selectAllCount(); Integer selectAllQuestionCount(); src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java
@@ -20,7 +20,7 @@ * @param requestVM 过滤条件 * @return PageInfo<ExamPaperAnswer> */ PageInfo<ExamPaperScore> studentPage(ExamPaperAnswerPageVO requestVM); PageInfo<ExamPaperAnswerPageResponseVO> studentPage(ExamPaperAnswerPageVO requestVM); /** * 计算试卷提交结果(不入库) src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java
@@ -5,22 +5,20 @@ import com.github.pagehelper.PageInfo; import com.ycl.jxkg.domain.ExamPaperAnswerInfo; import com.ycl.jxkg.domain.entity.*; import com.ycl.jxkg.domain.other.ExamPaperAnswerUpdate; import com.ycl.jxkg.domain.other.KeyValue; import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum; import com.ycl.jxkg.enums.ExamPaperTypeEnum; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.mapper.ExamPaperScoreMapper; import com.ycl.jxkg.mapper.ExamPaperMapper; import com.ycl.jxkg.mapper.ExamPaperScoreMapper; import com.ycl.jxkg.mapper.QuestionMapper; import com.ycl.jxkg.mapper.TaskExamCustomerAnswerMapper; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.ExamPaperScoreDetailService; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.TextContentService; import com.ycl.jxkg.utils.DateTimeUtil; import com.ycl.jxkg.utils.ExamUtil; @@ -29,7 +27,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -47,7 +44,7 @@ @Override public PageInfo<ExamPaperScore> studentPage(ExamPaperAnswerPageVO requestVM) { public PageInfo<ExamPaperAnswerPageResponseVO> studentPage(ExamPaperAnswerPageVO requestVM) { return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> examPaperScoreMapper.studentPage(requestVM)); } src/main/resources/mapper/ExamPaperScoreMapper.xml
@@ -22,50 +22,55 @@ <result column="navbar" property="navbar"/> </resultMap> <sql id="Base_Column_List"> id , paper_id, paper_name, paper_type, score,total_score, question_correct, question_count, do_time, status, user_id, exam_id,exam_name, judge_user,submit_time,paper_content,judge_time,navbar id, exam_id, exam_name, paper_id, paper_type, score, total_score, question_correct, question_count, do_time, status, user_id, judge_user, submit_time, paper_content, navbar, judge_time, deleted </sql> <select id="studentPage" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO"> <select id="studentPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO"> SELECT <include refid="Base_Column_List"/> FROM t_exam_paper_answer FROM t_exam_paper_score <where> and user_id = #{createUser} <if test="examName != null and examName != ''"> and INSTR(exam_name, #{examName}) </if> </where> </select> <select id="getByExamIdUserId" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore"> SELECT <include refid="Base_Column_List"/> from t_exam_paper_score <where> and user_id = #{userId} and exam_id = #{examId} </where> </select> <select id="selectAllCount" resultType="java.lang.Integer"> SELECT count(*) from t_exam_paper_score </select> <select id="selectAllQuestionCount" resultType="java.lang.Integer"> SELECT sum(question_count) from t_exam_paper_score </select> <select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue"> SELECT submit_time as name, sum(question_count) as value from ( SELECT question_count ,DATE_FORMAT(submit_time, '%Y-%m-%d') as submit_time from t_exam_paper_score WHERE submit_time between #{startTime} and #{endTime} ) a GROUP BY submit_time SELECT create_time as name, COUNT(create_time) as value from (SELECT DATE_FORMAT(create_time, '%Y-%m-%d') as create_time from t_exam_paper_score WHERE create_time between #{startTime} and #{endTime}) a GROUP BY create_time </select> @@ -80,14 +85,12 @@ <select id="adminPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO"> SELECT a.id , exam_paper_id, paper_name, paper_type, system_score, user_score, paper_score, question_correct, question_count, do_time, a.status, create_user, a.create_time, b.real_name AS userName FROM t_exam_paper_answer a LEFT JOIN t_user b ON a.create_user = b.id a.*, b.real_name AS userName, c.name as paperName FROM t_exam_paper_score a INNER JOIN t_user b ON a.user_id = b.id AND b.deleted = 0 INNER JOIN t_exam_paper c ON a.paper_id = c.id AND c.deleted = 0 <where> <if test="examPaperId != null"> AND paper_id = #{examPaperId} </if> exam_id = #{examId} <if test="userName != null and userName != ''"> AND INSTR(b.real_name, #{userName}) </if> @@ -96,9 +99,9 @@ <select id="pageExamPaper" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO"> SELECT a.id, t.id, a.name AS paperName, a.score AS systemScore, a.score AS totalScore, a.num as questionCount, a.subject_id, a.paper_type, @@ -110,9 +113,9 @@ t.exam_name FROM t_exam_paper a INNER JOIN t_exam t ON a.id = t.exam_paper_id AND t.deleted = 0 LEFT JOIN t_subject b ON a.subject_id = b.id LEFT JOIN t_user c ON t.teacher_id = c.id LEFT JOIN t_exam_paper_answer d ON a.id = d.exam_paper_id LEFT JOIN t_subject b ON a.subject_id = b.id AND b.deleted = 0 LEFT JOIN t_user c ON t.teacher_id = c.id AND c.deleted = 0 LEFT JOIN t_exam_paper_score d ON t.id = d.exam_id LEFT JOIN t_exam_paper_classes e ON a.id = e.exam_paper_id LEFT JOIN t_classes_user f ON e.classes_id = f.classes_id <where>