qirong
2023-06-14 e1a6bbd46dc46d42e5e58382c132c704a3d8be3b
导入题目修改
13个文件已修改
1个文件已添加
19530 ■■■■■ 已修改文件
log/xzs.20230613.log 12398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log/xzs.20230614.log 6986 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/SubjectMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/SubjectService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/utility/convert/QuestionClassConvert.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/QuestionMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/SubjectMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log/xzs.20230613.log
Diff too large
log/xzs.20230614.log
New file
Diff too large
src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -4,6 +4,7 @@
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.base.SystemCode;
import com.mindskip.xzs.domain.Question;
import com.mindskip.xzs.domain.Subject;
import com.mindskip.xzs.domain.TextContent;
import com.mindskip.xzs.domain.enums.QuestionTypeEnum;
import com.mindskip.xzs.domain.question.QuestionObject;
@@ -125,7 +126,7 @@
        List<QuestionEditVO> questionEditVOS = ExcelUtils.readMultipartFile(file, QuestionEditVO.class)
                .stream().map(e -> {
                    e.setQuestionType(QuestionTypeEnum.get(e.getType()));
                    e.setSubjectId(subjectMapper.getName(e.getSubjectName()).getId());
//                    e.setSubjectId(subjectMapper.getName(e.getSbNames()).getId());
                    e.setGradeLevel(departmentMapper.getName(e.getDepartment()).getId());
                    return e;
                }).collect(Collectors.toList());
@@ -145,17 +146,28 @@
            questionEditItemVM.setPrefix("B");
            questionEditItemVM.setContent(vm.getB());
            questionEditItemVMS.add(questionEditItemVM);
            questionEditItemVM = new QuestionEditItemVM();
            questionEditItemVM.setPrefix("C");
            questionEditItemVM.setContent(vm.getC());
            questionEditItemVMS.add(questionEditItemVM);
            questionEditItemVM = new QuestionEditItemVM();
            questionEditItemVM.setPrefix("D");
            questionEditItemVM.setContent(vm.getD());
            questionEditItemVMS.add(questionEditItemVM);
            if(!"".equals(vm.getC()) && vm.getC()!=null){
                questionEditItemVM = new QuestionEditItemVM();
                questionEditItemVM.setPrefix("C");
                questionEditItemVM.setContent(vm.getC());
                questionEditItemVMS.add(questionEditItemVM);
            }
            if(!"".equals(vm.getD()) && vm.getD()!=null){
                questionEditItemVM = new QuestionEditItemVM();
                questionEditItemVM.setPrefix("D");
                questionEditItemVM.setContent(vm.getD());
                questionEditItemVMS.add(questionEditItemVM);
            }
            vm.setItems(questionEditItemVMS);
            List<String> str = Arrays.asList(vm.getCorrect().split(","));
            List<Subject> subjectList = subjectMapper.getNames(vm.getSbNames().split(","));
            Integer[] arr =subjectList.stream().filter(e->
                e.getLevelName().equals(subjectList.get(0).getLevelName()))
                    .map(Subject::getId).toArray(Integer[]::new);
            vm.setSubjectIds(arr);
            //多选
            if (str.size() > 1) {
                vm.setCorrectArray(str);
src/main/java/com/mindskip/xzs/repository/QuestionSubjectMapper.java
@@ -2,6 +2,7 @@
import com.mindskip.xzs.domain.QuestionSubject;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -13,7 +14,7 @@
     * @param ids
     * @return
     */
    Integer removes(Integer[] ids);
    Integer removes(@Param("ids") Integer[] ids);
    /**
     *
src/main/java/com/mindskip/xzs/repository/SubjectMapper.java
@@ -3,6 +3,7 @@
import com.mindskip.xzs.domain.Subject;
import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -16,4 +17,6 @@
    List<Subject> page(SubjectPageRequestVM requestVM);
    Subject getName(String name);
    List<Subject> getNames(@Param("names") String[] names);
}
src/main/java/com/mindskip/xzs/service/SubjectService.java
@@ -15,4 +15,6 @@
    Integer levelBySubjectId(Integer id);
    PageInfo<Subject> page(SubjectPageRequestVM requestVM);
    List<Subject> getNames(String[] names);
}
src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
@@ -9,6 +9,7 @@
import com.mindskip.xzs.domain.question.QuestionItemObject;
import com.mindskip.xzs.domain.question.QuestionObject;
import com.mindskip.xzs.repository.QuestionMapper;
import com.mindskip.xzs.repository.SubjectMapper;
import com.mindskip.xzs.service.QuestionService;
import com.mindskip.xzs.service.QuestionSubjectService;
import com.mindskip.xzs.service.SubjectService;
@@ -17,6 +18,7 @@
import com.mindskip.xzs.utility.JsonUtil;
import com.mindskip.xzs.utility.ModelMapperSingle;
import com.mindskip.xzs.utility.ExamUtil;
import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM;
import com.mindskip.xzs.viewmodel.admin.question.QuestionEditItemVM;
import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM;
import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
@@ -40,14 +42,16 @@
    private final TextContentService textContentService;
    private final SubjectService subjectService;
    private final QuestionSubjectService questionSubjectService;
    private final SubjectMapper subjectMapper;
    @Autowired
    public QuestionServiceImpl(QuestionMapper questionMapper, TextContentService textContentService, SubjectService subjectService, QuestionSubjectService questionSubjectService) {
    public QuestionServiceImpl(QuestionMapper questionMapper, TextContentService textContentService, SubjectService subjectService, QuestionSubjectService questionSubjectService, SubjectMapper subjectMapper) {
        super(questionMapper);
        this.textContentService = textContentService;
        this.questionMapper = questionMapper;
        this.subjectService = subjectService;
        this.questionSubjectService = questionSubjectService;
        this.subjectMapper = subjectMapper;
    }
    @Override
@@ -72,7 +76,7 @@
        Question question = new Question();
//        question.setSubjectId(model.getSubjectId());
//        question.setGradeLevel(gradeLevel);
        question.setGradeLevel(model.getGradeLevel());
        question.setCreateTime(now);
        question.setQuestionType(model.getQuestionType());
        question.setStatus(QuestionStatusEnum.OK.getCode());
@@ -99,10 +103,10 @@
    @Override
    @Transactional
    public Question updateFullQuestion(QuestionEditRequestVM model) {
        Integer gradeLevel = subjectService.levelBySubjectId(model.getSubjectId());
//        Integer gradeLevel = subjectService.levelBySubjectId(model.getSubjectId());
        Question question = questionMapper.selectByPrimaryKey(model.getId());
        question.setSubjectId(model.getSubjectId());
        question.setGradeLevel(gradeLevel);
        question.setGradeLevel(model.getGradeLevel());
        question.setScore(ExamUtil.scoreFromVM(model.getScore()));
        question.setDifficult(model.getDifficult());
        question.setCorrectFromVM(model.getCorrect(), model.getCorrectArray());
@@ -131,7 +135,15 @@
    public QuestionEditRequestVM getQuestionEditRequestVM(Integer questionId) {
        //题目映射
        Question question = questionMapper.selectByPrimaryKey(questionId);
        return getQuestionEditRequestVM(question);
        List<QuestionSubject> list = questionSubjectService.getQuestion(questionId).stream().map(e->{
            SubjectPageRequestVM subject = new SubjectPageRequestVM();
            subject.setId(e.getSubjectId());
            e.setSubName(subjectMapper.page(subject).get(0).getName());
            return e;
        }).collect(Collectors.toList());
        QuestionEditRequestVM questionEditRequestVM = getQuestionEditRequestVM(question);
        questionEditRequestVM.setQuestionSubjects(list);
        return questionEditRequestVM;
    }
    @Override
src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java
@@ -54,4 +54,9 @@
        );
    }
    @Override
    public List<Subject> getNames(String[] names) {
        return subjectMapper.getNames(names);
    }
}
src/main/java/com/mindskip/xzs/utility/convert/QuestionClassConvert.java
@@ -19,6 +19,8 @@
            @Mapping(source = "b",target = "b"),
            @Mapping(source = "c",target = "c"),
            @Mapping(source = "d",target = "d"),
            @Mapping(source = "sbNames",target = "sbNames"),
            @Mapping(source = "department",target = "department"),
    })
    List<QuestionEditRequestVM> QuestionEditVOListToQuestionEditRequestVMList(List<QuestionEditVO> questionEditVO);
src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditRequestVM.java
@@ -1,6 +1,7 @@
package com.mindskip.xzs.viewmodel.admin.question;
import com.mindskip.xzs.domain.QuestionSubject;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
@@ -20,6 +21,8 @@
    //题干
    @NotBlank
    private String title;
    private String sbNames;
    private Integer gradeLevel;
    //答案
@@ -42,12 +45,40 @@
    private Integer itemOrder;
    private String department;
    private String a;
    private String b;
    private String c;
    private String d;
    public String getDepartment() {
        return department;
    }
    public void setDepartment(String department) {
        this.department = department;
    }
    private List<QuestionSubject> questionSubjects;
    public List<QuestionSubject> getQuestionSubjects() {
        return questionSubjects;
    }
    public void setQuestionSubjects(List<QuestionSubject> questionSubjects) {
        this.questionSubjects = questionSubjects;
    }
    public String getSbNames() {
        return sbNames;
    }
    public void setSbNames(String sbNames) {
        this.sbNames = sbNames;
    }
    private Integer[] subjectIds;
    public Integer[] getSubjectIds() {
src/main/java/com/mindskip/xzs/viewmodel/admin/question/QuestionEditVO.java
@@ -17,6 +17,8 @@
    @NotNull
    private Integer questionType;
    @ExcelImport("课目")
    private String sbNames;
    private String subjectName;
    //    年级学科表
    @NotNull
@@ -65,6 +67,13 @@
    private String d;
    public String getSbNames() {
        return sbNames;
    }
    public void setSbNames(String sbNames) {
        this.sbNames = sbNames;
    }
    public String getType() {
        return type;
src/main/java/com/mindskip/xzs/viewmodel/student/dashboard/PaperFilter.java
@@ -9,6 +9,8 @@
    private Integer examPaperType;
    private Integer gradeLevel;
    private Integer subjectId;
    public Integer getUserId() {
        return userId;
    }
@@ -40,4 +42,12 @@
    public void setGradeLevel(Integer gradeLevel) {
        this.gradeLevel = gradeLevel;
    }
    public Integer getSubjectId() {
        return subjectId;
    }
    public void setSubjectId(Integer subjectId) {
        this.subjectId = subjectId;
    }
}
src/main/resources/mapper/QuestionMapper.xml
@@ -180,24 +180,25 @@
  <select id="page" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM">
    SELECT
    <include refid="Base_Column_List"/>
    FROM t_question
    q.*
    FROM t_question q
    LEFT JOIN t_question_subject qs on q.id = qs.question_id
    <where>
        and deleted=0
        and q.deleted=0 and qs.deleted = 0
      <if test="id != null ">
        and id= #{id}
        and q.id= #{id}
      </if>
      <if test="level != null ">
        and grade_level= #{level}
        and q.grade_level= #{level}
      </if>
      <if test="subjectId != null ">
        and subject_id= #{subjectId}
        and qs.subject_id= #{subjectId}
      </if>
      <if test="questionType != null ">
        and question_type= #{questionType}
        and q.question_type= #{questionType}
      </if>
      <if test="content != null">
        and info_text_content_id in (SELECT id FROM t_text_content WHERE content like concat('%',#{content},'%') )
        and q.info_text_content_id in (SELECT id FROM t_text_content WHERE content like concat('%',#{content},'%') )
      </if>
    </where>
  </select>
src/main/resources/mapper/SubjectMapper.xml
@@ -144,4 +144,16 @@
      where name = #{name}
  </select>
  <select id="getNames" resultMap="BaseResultMap">
    SELECT
    <include refid="Base_Column_List"/>
    FROM t_subject
    where name in
    <foreach item="name" collection="names" open="(" separator=","
             close=")">
      #{name}
    </foreach>
  </select>
</mapper>