log/xzs.20231129.log
File was deleted src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.math.BigDecimal; import java.util.List; import java.util.stream.Collectors; @@ -48,10 +49,10 @@ PageInfo<ExamPaperAnswerPageResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> { ExamPaperAnswerPageResponseVM vm = modelMapper.map(e, ExamPaperAnswerPageResponseVM.class); User user = userService.selectByIdName(e.getCreateUser(), model.getUserName()); if (user == null) { return null; } // User user = userService.selectByIdName(e.getCreateUser(), model.getUserName()); // if (user == null) { // return null; // } // Subject subject = subjectService.selectById(vm.getSubjectId()); ExamPaperAnswer examPaperAnswer = examPaperAnswerService.getById(vm.getId()); Integer[] ids = examPaperSubjectService.getByExamPaperId(examPaperAnswer.getExamPaperId()) @@ -68,11 +69,11 @@ vm.setSubjectName(name); vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); vm.setUserName(user.getRealName()); // vm.setUserName(user.getRealName()); return vm; }); page.setList(page.getList().stream().filter(e -> e != null).collect(Collectors.toList())); if (page.getSize() > 0) { // page.setList(page.getList().stream().filter(e -> e != null).collect(Collectors.toList())); if (page.getList().size() > 0) { Double avg = page.getList().stream().mapToInt(ExamPaperAnswerPageResponseVM -> Integer.parseInt(ExamPaperAnswerPageResponseVM.getUserScore())).average().getAsDouble(); page.getList().get(0).setAvgSource(avg); } @@ -102,8 +103,10 @@ Integer max = examPaperAnswers.stream().map(ExamPaperAnswer::getUserScore).max(Integer::compareTo).get(); Integer min = examPaperAnswers.stream().map(ExamPaperAnswer::getUserScore).min(Integer::compareTo).get(); Double avg = examPaperAnswers.stream().mapToDouble(ExamPaperAnswer::getUserScore).average().getAsDouble(); BigDecimal two = new BigDecimal(avg); Double three = two.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); object.setAdvanced(advanced); object.setAvg(avg); object.setAvg(three); object.setIntermediate(intermediate); object.setMax(max); object.setMin(min); src/main/java/com/mindskip/xzs/controller/admin/ExamPaperGradeController.java
@@ -111,7 +111,7 @@ PageInfo<User> info = PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "id desc").doSelectPageInfo(() -> userService.getUsers()); for (User user : info.getList()) { if(user.getRealName().equals("管理员")){ if("管理员".equals(user.getRealName())){ continue; } ExamPaperAnswer answer = new ExamPaperAnswer(); @@ -123,46 +123,6 @@ answer.setCounts(byCreatUser.size()); filteredList9.add(answer); } // PageInfo<ExamPaperAnswer> list = examPaperAnswerService.adminPageByGrade(grade); // for (ExamPaperAnswer e : list.getList()) { // User user = userService.selectByIdName(e.getCreateUser(), grade.getUserName()); // if (user==null){ // return null; // } // ExamPaperAnswer examPaperAnswer = examPaperAnswerService.getById(e.getId()); // Integer[] ids = examPaperSubjectService.getByExamPaperId(examPaperAnswer.getExamPaperId()).stream().map(ExamPaperSubject::getSubjectId).toArray(Integer[]::new); // String names = ""; // if (ids.length > 0) { // names = subjectService.selectByIds(ids) // .stream().map(Subject::getName).collect(Collectors.joining(",")); // } // Integer userId = examPaperUserService.getByPaperIdAndCreatUser(e.getExamPaperId(), e.getCreateUser()); // if(userId == null){ // return null; // } // e.setUserName(user.getRealName()); // } // List<ExamPaperAnswer> collect = list.getList().stream() // .filter(exam -> exam != null) // .collect(Collectors.toList()); // ArrayList<ExamPaperAnswer> list2 = new ArrayList<>(); // Map<String, Long> collect1 = collect.stream().collect(Collectors.groupingBy(ExamPaperAnswer::getPaperName, Collectors.counting())); // collect.forEach(t->t.setCounts(Math.toIntExact(collect1.getOrDefault(t.getPaperName(),0L)))); // Map<String, List<ExamPaperAnswer>> collect2 = collect.stream().collect(Collectors.groupingBy(ExamPaperAnswer::getUserName)); // List<ExamPaperAnswer> filteredList1 = new ArrayList<>(); // Set<String> uniqueUserNames = new HashSet<>(); // collect2.forEach((key, value) -> { // value.forEach(item -> { // item.setUserName(key); // item.setCounts(value.size()); // }); // list2.addAll(value); // }); // for (ExamPaperAnswer item : list2) { // if (uniqueUserNames.add(item.getUserName())) { // filteredList1.add(item); // } // } PageHelper.startPage(grade.getPageIndex(), grade.getPageSize()); PageInfo<ExamPaperAnswer> pageInfoPageInfo = new PageInfo<>(filteredList9); pageInfoPageInfo.setTotal(info.getTotal()); src/main/java/com/mindskip/xzs/controller/admin/ExamTemplatesController.java
@@ -38,7 +38,7 @@ @RequestMapping(value = "/list", method = RequestMethod.GET) public RestResponse<PageInfo<ExamTemplatesVO>> list(ExamTemplatesVO examTemplatesVO) throws Exception { PageInfo<ExamTemplates> pageInfo = examTemplatesService.gets(examTemplatesVO); PageInfo<ExamTemplates> pageInfo = examTemplatesService.getByadmins(examTemplatesVO); PageInfo<ExamTemplatesVO> info = PageInfoHelper.copyMap(pageInfo, e -> { ExamTemplatesVO vo = new ExamTemplatesVO(); vo.setName(e.getName()); src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
@@ -6,10 +6,7 @@ import com.mindskip.xzs.domain.enums.ExamPaperAnswerStatusEnum; import com.mindskip.xzs.event.CalculateExamPaperAnswerCompleteEvent; import com.mindskip.xzs.event.UserEvent; import com.mindskip.xzs.service.ExamPaperAnswerService; import com.mindskip.xzs.service.ExamPaperService; import com.mindskip.xzs.service.ExamPaperSubjectService; import com.mindskip.xzs.service.SubjectService; import com.mindskip.xzs.service.*; import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.PageInfoHelper; @@ -36,14 +33,16 @@ private final SubjectService subjectService; private final ApplicationEventPublisher eventPublisher; private final ExamPaperSubjectService examPaperSubjectService; private final ExamTemplatesUserCountService examTemplatesUserCountService; @Autowired public ExamPaperAnswerController(ExamPaperAnswerService examPaperAnswerService, ExamPaperService examPaperService, SubjectService subjectService, ApplicationEventPublisher eventPublisher, ExamPaperSubjectService examPaperSubjectService) { public ExamPaperAnswerController(ExamPaperAnswerService examPaperAnswerService, ExamPaperService examPaperService, SubjectService subjectService, ApplicationEventPublisher eventPublisher, ExamPaperSubjectService examPaperSubjectService, ExamTemplatesUserCountService examTemplatesUserCountService) { this.examPaperAnswerService = examPaperAnswerService; this.examPaperService = examPaperService; this.subjectService = subjectService; this.eventPublisher = eventPublisher; this.examPaperSubjectService = examPaperSubjectService; this.examTemplatesUserCountService = examTemplatesUserCountService; } @@ -90,7 +89,14 @@ userEventLog.setContent(content); eventPublisher.publishEvent(new CalculateExamPaperAnswerCompleteEvent(examPaperAnswerInfo)); eventPublisher.publishEvent(new UserEvent(userEventLog)); //首页随机试卷操作 if(examPaperSubmitVM.getTemplatesId() != null){ ExamTemplatesUserCount examTemplatesUserCount = new ExamTemplatesUserCount(); examTemplatesUserCount.setUserId(user.getId()); examTemplatesUserCount.setExamPaperId(examPaperSubmitVM.getId()); examTemplatesUserCount.setExamTemplatesId(examPaperSubmitVM.getTemplatesId()); examTemplatesUserCountService.add(examTemplatesUserCount); } return RestResponse.ok(scoreVm); } src/main/java/com/mindskip/xzs/domain/vo/AnswerResponesVo.java
New file @@ -0,0 +1,231 @@ package com.mindskip.xzs.domain.vo; import java.util.Date; public class AnswerResponesVo { private Integer id; private Integer examPaperId; /** * 试卷名称 */ private String paperName; /** * 试卷类型( 1固定试卷 4.时段试卷 6.任务试卷) */ private Integer paperType; /** * 学科 */ private Integer subjectId; /** * 系统判定得分 */ private Integer systemScore; /** * 最终得分(千分制) */ private Integer userScore; /** * 试卷总分 */ private Integer paperScore; /** * 做对题目数量 */ private Integer questionCorrect; /** * 题目总数量 */ private Integer questionCount; /** * 做题时间(秒) */ private Integer doTime; /** * 试卷状态(1待判分 2完成) */ private Integer status; /** * 学生 */ private Integer createUser; /** * 提交时间 */ private Date createTime; /** * 考试次数 */ private Integer counts; private Integer taskExamId; private String formattedTime; private String userName; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getExamPaperId() { return examPaperId; } public void setExamPaperId(Integer examPaperId) { this.examPaperId = examPaperId; } public String getPaperName() { return paperName; } public void setPaperName(String paperName) { this.paperName = paperName == null ? null : paperName.trim(); } public Integer getPaperType() { return paperType; } public void setPaperType(Integer paperType) { this.paperType = paperType; } public Integer getSubjectId() { return subjectId; } public void setSubjectId(Integer subjectId) { this.subjectId = subjectId; } public Integer getSystemScore() { return systemScore; } public void setSystemScore(Integer systemScore) { this.systemScore = systemScore; } public Integer getUserScore() { return userScore; } public void setUserScore(Integer userScore) { this.userScore = userScore; } public Integer getPaperScore() { return paperScore; } public void setPaperScore(Integer paperScore) { this.paperScore = paperScore; } public Integer getQuestionCorrect() { return questionCorrect; } public void setQuestionCorrect(Integer questionCorrect) { this.questionCorrect = questionCorrect; } public Integer getQuestionCount() { return questionCount; } public void setQuestionCount(Integer questionCount) { this.questionCount = questionCount; } public Integer getDoTime() { return doTime; } public void setDoTime(Integer doTime) { this.doTime = doTime; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getCreateUser() { return createUser; } public void setCreateUser(Integer createUser) { this.createUser = createUser; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Integer getTaskExamId() { return taskExamId; } public void setTaskExamId(Integer taskExamId) { this.taskExamId = taskExamId; } public Integer getCounts() { return counts; } public void setCounts(Integer counts) { this.counts = counts; } public String getFormattedTime() { return formattedTime; } public void setFormattedTime(String formattedTime) { this.formattedTime = formattedTime == null ? null : formattedTime.trim(); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } } src/main/java/com/mindskip/xzs/repository/ExamTemplatesMapper.java
@@ -31,6 +31,12 @@ */ List<ExamTemplates> gets(ExamTemplatesVO templatesVO); /** * * @return */ List<ExamTemplates> getByadmins(ExamTemplatesVO templatesVO); ExamTemplates getById(@Param("id") Integer id); ExamTemplates getByName(@Param("name") String name); src/main/java/com/mindskip/xzs/service/ExamTemplatesService.java
@@ -19,6 +19,8 @@ PageInfo<ExamTemplates> gets(ExamTemplatesVO templatesVO); PageInfo<ExamTemplates> getByadmins(ExamTemplatesVO templatesVO); ExamPaperEditRequestVM getById(Integer id); ExamTemplates getByName(String name); src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -492,7 +492,7 @@ Integer judgment = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getTrueFalse).sum(); if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(100)) { if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(10)) { throw new QuestionException(); } src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
@@ -121,6 +121,12 @@ } @Override public PageInfo<ExamTemplates> getByadmins(ExamTemplatesVO templatesVO) { return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() -> examTemplatesMapper.getByadmins(templatesVO)); } @Override public ExamPaperEditRequestVM getById(Integer id) { return restore(id); } src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperSubmitVM.java
@@ -20,6 +20,9 @@ @Valid private List<ExamPaperSubmitItemVM> answerItems; //模板id private Integer templatesId; public Integer getId() { return id; } @@ -51,4 +54,12 @@ public void setAnswerItems(List<ExamPaperSubmitItemVM> answerItems) { this.answerItems = answerItems; } public Integer getTemplatesId() { return templatesId; } public void setTemplatesId(Integer templatesId) { this.templatesId = templatesId; } } src/main/resources/logback-spring.xml
@@ -22,7 +22,7 @@ </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/${LOG_FILE}.%d{yyyyMMdd}.log</fileNamePattern> <maxHistory>30</maxHistory> <maxHistory>5</maxHistory> </rollingPolicy> </appender> src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -274,17 +274,25 @@ <select id="adminPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM"> SELECT <include refid="Base_Column_List"/> FROM t_exam_paper_answer a.id, a.exam_paper_id, a.paper_name, a.paper_type, a.subject_id, a.system_score, a.user_score, a.paper_score, a.question_correct, a.question_count, a.do_time, a.status, a.create_user, a.create_time, a.task_exam_id, u.real_name as userName FROM t_exam_paper_answer a left join t_user u on a.create_user = u.id <where> <if test="subjectId != null"> and subject_id = #{subjectId} and a.subject_id = #{subjectId} </if> <if test="paperName != null and paperName != ''"> and paper_name like concat('%',#{paperName},'%') and a.paper_name like concat('%',#{paperName},'%') </if> <if test="userName != null and userName != ''"> and u.real_name like concat('%',#{userName},'%') </if> </where> </select> <select id="getById" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> src/main/resources/mapper/ExamTemplatesMapper.xml
@@ -54,6 +54,28 @@ </where> </select> <select id="getByadmins" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ExamTemplatesVO"> select DISTINCT e.id , e.name, e.paper_type, e.suggest_time, e.title_name, e.ctime, e.status, e.menu_ids,e.start_time,e.end_time from t_exam_templates e left join t_exam_templates_user u on e.id = u.templates_id <where> <if test="status != null"> and e.status = 0 </if> <if test="status == null"> and e.status is null </if> <if test="userId != null"> and u.user_id = #{userId} </if> <if test="now !=null"> and #{now} between e.start_time and e.end_time </if> </where> </select> <select id="getById" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/>