ソースを参照

试卷代码提交

pans 6 ヶ月 前
コミット
aa21d452c4

+ 7 - 10
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/controller/student/ExamPaperAnswerController.java

@@ -2,13 +2,16 @@ package vip.xiaonuo.exam.controller.student;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.web.bind.annotation.*;
 import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.exam.base.BaseApiController;
-import vip.xiaonuo.exam.base.RestResponse;
-
-import vip.xiaonuo.exam.domain.*;
+import vip.xiaonuo.exam.domain.ExamPaperAnswer;
+import vip.xiaonuo.exam.domain.ExamPaperAnswerInfo;
+import vip.xiaonuo.exam.domain.Subject;
+import vip.xiaonuo.exam.domain.UserEventLog;
 import vip.xiaonuo.exam.domain.enums.ExamPaperAnswerStatusEnum;
 import vip.xiaonuo.exam.event.CalculateExamPaperAnswerCompleteEvent;
 import vip.xiaonuo.exam.event.UserEvent;
@@ -17,16 +20,10 @@ import vip.xiaonuo.exam.service.ExamPaperService;
 import vip.xiaonuo.exam.service.SubjectService;
 import vip.xiaonuo.exam.utility.DateTimeUtil;
 import vip.xiaonuo.exam.utility.ExamUtil;
-import vip.xiaonuo.exam.utility.PageInfoHelper;
 import vip.xiaonuo.exam.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import vip.xiaonuo.exam.viewmodel.student.exam.ExamPaperReadVM;
 import vip.xiaonuo.exam.viewmodel.student.exam.ExamPaperSubmitVM;
-import vip.xiaonuo.exam.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM;
 import vip.xiaonuo.exam.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
-import com.github.pagehelper.PageInfo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.Date;

+ 1 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/TExamMapper.java

@@ -35,5 +35,5 @@ public interface TExamMapper extends BaseMapper<TExam> {
 
     List<TExamPaperStastic> stasticByPaperId(String paperId);
 
-    Page<TExamVo> queryStudentList(Page<Object> objectPage, TExamPageParam tExamPageParam);
+    Page<TExamVo> queryStudentList(@Param("page") Page<Object> objectPage,@Param("tExamPageParam") TExamPageParam tExamPageParam);
 }

+ 5 - 5
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/TExamMapper.xml

@@ -65,17 +65,17 @@
         a.EXAM_TYPE examType,
         a.SEMESTER_ID semesterId,
         c.name semesterName,
-        a.course_id courseId
+        a.course_id courseId,
+        NVL(d.status, 0) AS status,
+        d.id answerId
         FROM
         ONLINEEDU.T_EXAM a
         LEFT JOIN  SEMESTER c ON a.SEMESTER_ID =c.ID
+        LEFT JOIN t_exam_paper_answer d ON d.exam_paper_id = a.PAPER_ID AND d.create_user = #{tExamPageParam.userId}
         <where>
             <if test="tExamPageParam.examName != null and tExamPageParam.examName != ''">
                 a.EXAM_NAME like '%'||#{tExamPageParam.examName}||'%'
             </if>
-            <if test="tExamPageParam.examStatus != null and tExamPageParam.examStatus != ''">
-                and a.EXAM_STATUS = #{tExamPageParam.examStatus}
-            </if>
             <if test="tExamPageParam.semesterId != null and tExamPageParam.semesterId != ''">
                 and a.SEMESTER_ID = #{tExamPageParam.semesterId}
             </if>
@@ -85,7 +85,7 @@
             <if test="tExamPageParam.createUser != null and tExamPageParam.createUser != ''">
                 and a.STUDENT_IDS like concat('%',#{tExamPageParam.createUser},'%')
             </if>
-            and  a.DELETED=0
+            and  a.DELETED=0  and  a.EXAM_STATUS=1
         </where>
         order by a.CREATE_TIME desc
     </select>

+ 5 - 9
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/ExamPaperAnswerServiceImpl.java

@@ -1,18 +1,20 @@
 package vip.xiaonuo.exam.service.impl;
 
-import cn.hutool.json.JSONString;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
 import vip.xiaonuo.exam.domain.*;
 import vip.xiaonuo.exam.domain.enums.ExamPaperAnswerStatusEnum;
 import vip.xiaonuo.exam.domain.enums.ExamPaperTypeEnum;
 import vip.xiaonuo.exam.domain.enums.QuestionTypeEnum;
 import vip.xiaonuo.exam.domain.exam.ExamPaperTitleItemObject;
-import vip.xiaonuo.exam.domain.other.KeyValue;
 import vip.xiaonuo.exam.domain.other.ExamPaperAnswerUpdate;
+import vip.xiaonuo.exam.domain.other.KeyValue;
 import vip.xiaonuo.exam.domain.task.TaskItemAnswerObject;
 import vip.xiaonuo.exam.mapper.ExamPaperAnswerMapper;
 import vip.xiaonuo.exam.mapper.ExamPaperMapper;
@@ -28,12 +30,6 @@ import vip.xiaonuo.exam.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM;
 import vip.xiaonuo.exam.viewmodel.student.exam.ExamPaperSubmitItemVM;
 import vip.xiaonuo.exam.viewmodel.student.exam.ExamPaperSubmitVM;
 import vip.xiaonuo.exam.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -193,7 +189,7 @@ public class ExamPaperAnswerServiceImpl extends BaseServiceImpl<ExamPaperAnswer>
         ExamPaperAnswer examPaperAnswer = examPaperAnswerMapper.selectByPrimaryKey(id);
         examPaperSubmitVM.setId(examPaperAnswer.getId());
         examPaperSubmitVM.setDoTime(examPaperAnswer.getDoTime());
-        examPaperSubmitVM.setScore(ExamUtil.scoreToVM(examPaperAnswer.getUserScore()));
+        examPaperSubmitVM.setScore(String.valueOf(examPaperAnswer.getUserScore()));
         List<ExamPaperQuestionCustomerAnswer> examPaperQuestionCustomerAnswers = examPaperQuestionCustomerAnswerService.selectListByPaperAnswerId(examPaperAnswer.getId());
         TextContent textContent = textContentService.selectById(examPaperQuestionCustomerAnswers.get(0).getTextContentId());
         List<ExamPaperSubmitItemVM> examPaperSubmitItemVMS = examPaperQuestionCustomerAnswers.stream()

+ 1 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/ExamPaperServiceImpl.java

@@ -149,7 +149,7 @@ public class ExamPaperServiceImpl extends BaseServiceImpl<ExamPaper> implements
             return tTitleVM;
         }).collect(Collectors.toList());
         vm.setTitleItems(examPaperTitleItemVMS);
-        vm.setScore(ExamUtil.scoreToVM(examPaper.getScore()));
+        vm.setScore(String.valueOf(examPaper.getScore()));
         if (ExamPaperTypeEnum.TimeLimit == ExamPaperTypeEnum.fromCode(examPaper.getPaperType())) {
             List<String> limitDateTime = Arrays.asList(DateTimeUtil.dateFormat(examPaper.getLimitStartTime()), DateTimeUtil.dateFormat(examPaper.getLimitEndTime()));
             vm.setLimitDateTime(limitDateTime);

+ 0 - 7
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/QuestionServiceImpl.java

@@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
 import vip.xiaonuo.dev.api.DevDictApi;
-import vip.xiaonuo.disk.domain.Major;
 import vip.xiaonuo.disk.domain.Semester;
 import vip.xiaonuo.disk.mapper.MajorMapper;
 import vip.xiaonuo.disk.mapper.SemesterMapper;
@@ -109,7 +108,6 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
         question.setBankType(model.getBankType());
         question.setCreateUser(userId);
         question.setDeleted(false);
-        question.setMajorId(model.getMajorId());
         question.setCourseId(model.getCourseId());
         question.setSemesterId(model.getSemesterId());
         questionMapper.insertSelective(question);
@@ -127,7 +125,6 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
         if(model.getBankType() != null){
             question.setBankType(model.getBankType());
         }
-        question.setMajorId(model.getMajorId());
         question.setCourseId(model.getCourseId());
         question.setSemesterId(model.getSemesterId());
         questionMapper.updateByPrimaryKeySelective(question);
@@ -188,10 +185,6 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
             return questionEditItemVM;
         }).collect(Collectors.toList());
         questionEditRequestVM.setItems(editItems);
-        if(ObjectUtil.isNotEmpty(question.getMajorId())){
-            Major major = majorMapper.selectById(question.getMajorId());
-            questionEditRequestVM.setMajorName(major.getMajorName());
-        }
         if(ObjectUtil.isNotEmpty(question.getSemesterId())){
             Semester semester = semesterMapper.selectById(question.getSemesterId());
             questionEditRequestVM.setSemesterName(semester.getName());

+ 1 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/TExamServiceImpl.java

@@ -98,6 +98,7 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
         if(!StpLoginUserUtil.getLoginUser().getAccount().equals("superAdmin")){
             tExamPageParam.setCreateUser(StpLoginUserUtil.getLoginUser().getAccount());
         }
+        tExamPageParam.setUserId(StpLoginUserUtil.getLoginUser().getId());
         Page<TExamVo> page = tExamMapper.queryStudentList(CommonPageRequest.defaultPage(), tExamPageParam);
         return page;
     }

+ 11 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/vo/TExamVo.java

@@ -89,4 +89,15 @@ public class TExamVo {
     @ApiModelProperty(value = "课程id", position = 15)
     private String courseId;
 
+    /**
+     * 试卷状态(0 未答题  1待判分 2已完成)
+     */
+    private Integer status;
+    /**
+     * 试卷答案id
+     */
+    private Integer answerId;
+
+
+
 }