From c227e3938798eb7d529575ba1f3ea1c56ae63cfe Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期一, 01 七月 2024 13:16:34 +0800 Subject: [PATCH] refactor:恢复成绩接口 --- src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java | 2 src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java | 9 + src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java | 4 src/main/resources/mapper/ExamPaperScoreMapper.xml | 75 +++++++++--------- src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java | 59 +++++--------- src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java | 1 src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java | 2 src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java | 34 +------- src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | 2 src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java | 2 src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java | 9 - 11 files changed, 85 insertions(+), 114 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java index 1f3c735..fe52355 100644 --- a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java +++ b/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); } diff --git a/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java index c1893b6..9df49bf 100644 --- a/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java +++ b/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) diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java index 8e884dc..738eb93 100644 --- a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java +++ b/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; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java index d150342..f440fb6 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java +++ b/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; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java index d60564e..a12009c 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java +++ b/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("姝g‘棰樻暟") private Integer questionCorrect; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java index f973851..eb8437e 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java +++ b/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; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java index ee73a16..d33c46d 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java +++ b/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; diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java index 366faeb..2e75e96 100644 --- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java +++ b/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(); diff --git a/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java b/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java index 989250a..5a24a31 100644 --- a/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java +++ b/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); /** * 璁$畻璇曞嵎鎻愪氦缁撴灉(涓嶅叆搴�) diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java index 4c8ac51..0956744 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java +++ b/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)); } diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml index 0c4926f..aa4d216 100644 --- a/src/main/resources/mapper/ExamPaperScoreMapper.xml +++ b/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> -- Gitblit v1.8.0