ソースを参照

Merge branch 'chayi-branch' into bug-branch

chen 5 年 前
コミット
c056d67bc6

+ 6 - 1
ssj-kmt-exercise-service/src/main/java/com/ssj/service/kmt/dto/ExerciseBookDto.java

@@ -2,6 +2,7 @@ package com.ssj.service.kmt.dto;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.ssj.framework.core.util.StringUtil;
+import com.ssj.service.kmt.dto.exercise.ExerciseBookPartDto;
 import com.ssj.service.kmt.dto.exercise.ExerciseBookTypeDto;
 import com.ssj.service.kmt.dto.exercise.ExerciseBookYearDto;
 
@@ -156,12 +157,16 @@ public class ExerciseBookDto extends ExerciseBookBaseDto implements Serializable
         return bookYearList;
     }
 
-    public void addBookYear (int bookYear, int bookType, String exerciseBookId){
+    public void addBookYear (int bookYear, int bookType, String exerciseBookId, int type){
         ExerciseBookYearDto dto = new ExerciseBookYearDto(bookYear);
         dto.addBookType(bookType, exerciseBookId);
+        if (type == 3){
+            dto.addBookPartType(bookType);
+        }
         this.bookYearList.add(dto);
     }
 
+
     public void addUnit(String unitId, String unitName, String courseId, String courseName){
         boolean isExist = false;
 

+ 27 - 0
ssj-kmt-exercise-service/src/main/java/com/ssj/service/kmt/dto/exercise/ExerciseBookPartDto.java

@@ -0,0 +1,27 @@
+package com.ssj.service.kmt.dto.exercise;
+
+import java.io.Serializable;
+
+public class ExerciseBookPartDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private int bookPartType;
+
+    private String bookPartName;
+
+    public int getBookPartType() {
+        return bookPartType;
+    }
+
+    public void setBookPartType(int bookPartType) {
+        this.bookPartType = bookPartType;
+    }
+
+    public String getBookPartName() {
+        return bookPartName;
+    }
+
+    public void setBookPartName(String bookPartName) {
+        this.bookPartName = bookPartName;
+    }
+}

+ 26 - 0
ssj-kmt-exercise-service/src/main/java/com/ssj/service/kmt/dto/exercise/ExerciseBookYearDto.java

@@ -24,6 +24,9 @@ public class ExerciseBookYearDto implements Serializable {
 
     private List<ExerciseBookTypeDto> bookTypeList = new ArrayList<>();
 
+    private List<ExerciseBookPartDto> bookPartList = new ArrayList<>();
+
+
 
     public int getBookYear() {
         return bookYear;
@@ -52,4 +55,27 @@ public class ExerciseBookYearDto implements Serializable {
     public void addBookType (int bookType, String exerciseBookId){
         this.bookTypeList.add(new ExerciseBookTypeDto(bookType, exerciseBookId));
     }
+
+    public List<ExerciseBookPartDto> getBookPartList() {
+        return bookPartList;
+    }
+
+    public void setBookPartList(List<ExerciseBookPartDto> bookPartList) {
+        this.bookPartList = bookPartList;
+    }
+
+    public void addBookPartType (int bookType){
+        List<ExerciseBookPartDto> list = new ArrayList<>();
+        ExerciseBookPartDto temp = new ExerciseBookPartDto();
+        temp.setBookPartType(1);
+        temp.setBookPartName("全部");
+        list.add(temp);
+        if (bookType == 3){
+            temp = new ExerciseBookPartDto();
+            temp.setBookPartType(2);
+            temp.setBookPartName("不同");
+            list.add(temp);
+        }
+        this.setBookPartList(list);
+    }
 }

+ 11 - 0
ssj-kmt-exercise-service/src/main/java/com/ssj/service/kmt/request/ExerciseBookIdDealTypeRequest.java

@@ -25,6 +25,9 @@ public class ExerciseBookIdDealTypeRequest extends BaseRequest {
     @ApiModelProperty(name = "bookType", value = "练习册类型", required = true)
     private int bookType;
 
+    @ApiModelProperty(name = "bookPartType", value = "练习册题目类型, 1全部,2不同", required = true)
+    private int bookPartType;
+
     @ApiModelProperty(name = "exerciseBookId", value = "练习册exerciseBookId", required = true)
     private String exerciseBookId;
 
@@ -79,4 +82,12 @@ public class ExerciseBookIdDealTypeRequest extends BaseRequest {
     public void setQuestionId(String questionId) {
         this.questionId = questionId;
     }
+
+    public int getBookPartType() {
+        return bookPartType;
+    }
+
+    public void setBookPartType(int bookPartType) {
+        this.bookPartType = bookPartType;
+    }
 }

+ 11 - 0
ssj-kmt-exercise-service/src/main/java/com/ssj/service/kmt/request/ExerciseQuestionsRequest.java

@@ -52,6 +52,9 @@ public class ExerciseQuestionsRequest extends BaseRequest {
     @ApiModelProperty(name = "questionId", value = "questionId", required = false)
     private String questionId;
 
+    @ApiModelProperty(name = "bookPartType", value = "练习册类型,1全部, 2不同", required = false)
+    private int  bookPartType;
+
     public String getSubject() {
         return subject;
     }
@@ -172,4 +175,12 @@ public class ExerciseQuestionsRequest extends BaseRequest {
     public void setQuestionId(String questionId) {
         this.questionId = questionId;
     }
+
+    public int getBookPartType() {
+        return bookPartType;
+    }
+
+    public void setBookPartType(int bookPartType) {
+        this.bookPartType = bookPartType;
+    }
 }

+ 23 - 3
ssj-mybatis-service-impl/src/main/java/com/ssj/service/kmt/exercise/KmtExerciseMapperServiceImpl.java

@@ -1027,29 +1027,41 @@ public class KmtExerciseMapperServiceImpl implements KmtExerciseMapperService {
 
     @Override
     public List<ExerciseBookDto> findExerciseBooks(ExerciseConditionRequest request, String userId) {
-        List<ExerciseBookDto> list = null, result = new ArrayList<>();
+        List<ExerciseBookDto> list = null;
 
         if (StringUtils.isNotBlank(request.getQuestionId())){
             list = kmtExerciseMapper.findExerciseBookByQuestionId(request.getQuestionId().trim());
+            return getStaticFormatResult(list, request.getDealType());
         } else if (request.getDealType() == 1){
             list = kmtExerciseMapper.findUnHandleBooks(userId, request.getSearchType(), request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         } else if (request.getDealType() == 2){
             list = kmtExerciseMapper.findUnAuditingBooks(userId, request.getSearchType(), request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         } else if (request.getDealType() == 4) {
             //解析加工练习册列表
             list = kmtExerciseMapper.findUnAnalysisHandleBooks(userId, request.getSearchType(), request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         } else if (request.getDealType() == 5) {
             //解析审核练习册列表
             list = kmtExerciseMapper.findUnAnalysisAuditingBooks(userId, request.getSearchType(), request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         } else if (request.getDealType() == 6){
             //未校对练习册列表
             list = kmtExerciseMapper.findUnCorrectAnswerBooks(userId, request.getSearchType(), request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         } else if (request.getDealType() == 7) {
             list = kmtExerciseMapper.findCorrectedAnswerBooks(userId, request.getSearchType(), request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         } else {
             list = kmtExerciseMapper.findAllExerciseBooks(request.getSubject(), request.getSemester(),
                     request.getVersionType(),  request.getGrade(), request.getSearchType(),  request.getBookName());
+            return getStaticFormatResult(list, request.getDealType());
         }
+    }
+
+    private List<ExerciseBookDto> getStaticFormatResult (List<ExerciseBookDto> list, int type){
+        List<ExerciseBookDto> result = new ArrayList<>();
         if (list != null) {
             for (ExerciseBookDto bookDto : list) {
                 ExerciseBookDto resultBookDto = result.stream().filter(x ->
@@ -1067,6 +1079,9 @@ public class KmtExerciseMapperServiceImpl implements KmtExerciseMapperService {
 
                     ExerciseBookYearDto dto = new ExerciseBookYearDto(bookDto.getBookYear());
                     dto.addBookType(bookDto.getBookType(), bookDto.getExerciseBookId());
+                    if (type == 3){
+                        dto.addBookPartType(bookDto.getBookType());
+                    }
                     bookDto.getBookYearList().add(dto);
                     result.add(bookDto);
                 } else {
@@ -1074,7 +1089,7 @@ public class KmtExerciseMapperServiceImpl implements KmtExerciseMapperService {
                             x.getBookYear() == bookDto.getBookYear()).findAny().orElse(null);
                     if (resultBookYearDto == null){
                         //是新年份, 增加年份
-                        resultBookDto.addBookYear(bookDto.getBookYear(), bookDto.getBookType(), bookDto.getExerciseBookId());
+                        resultBookDto.addBookYear(bookDto.getBookYear(), bookDto.getBookType(), bookDto.getExerciseBookId(), type);
                     } else {
                         resultBookYearDto.addBookType(bookDto.getBookType(), bookDto.getExerciseBookId());
                     }
@@ -1100,9 +1115,14 @@ public class KmtExerciseMapperServiceImpl implements KmtExerciseMapperService {
             } else {
                 KmtExerciseBook book = kmtExerciseBookService.getById(request.getExerciseBookId());
                 if (book.getBookType() == 1 || book.getBookType() == 2){
+                    //上半或下半
                     list = kmtExerciseMapper.findAllExerciseBookCourseByExerciseBookId(book.getId());
                 } else {
-                    list = kmtExerciseMapper.findAllExerciseBookCourse(book.getBookId(), book.getId());
+                    if (request.getBookPartType() == 2){
+                        list = kmtExerciseMapper.findPartExerciseBookCourse(book.getId());
+                    } else {
+                        list = kmtExerciseMapper.findAllExerciseBookCourse(book.getBookId(), book.getId());
+                    }
                 }
             }
         }

+ 17 - 0
ssj-mybatis-service-impl/src/main/java/com/ssj/service/mapper/KmtExerciseMapper.java

@@ -74,6 +74,16 @@ public interface KmtExerciseMapper {
                                                                  @Param("exerciseBookId") String exerciseBookId,
                                                                  Page page);
 
+
+    /**
+     * 查询待加工审核的题目
+     * @param bookCourseId 课时
+     * @return
+     */
+    List<ExerciseQuetionDto> findPartQuestionByBookCourseId(@Param("bookCourseId") String bookCourseId,
+                                                            @Param("exerciseBookId") String exerciseBookId,
+                                                            Page page);
+
     /**
      * 查询课时下的所有题目
      * @param bookCourseId
@@ -301,6 +311,13 @@ public interface KmtExerciseMapper {
                                                                    @Param("questionId") String questionId,
                                                                    @Param("userId") String userId);
 
+    /**
+     * 查询不同的单元课时
+     * @param exerciseBookId
+     * @return
+     */
+    List<ExerciseUnitBookcourseDto> findPartExerciseBookCourse(@Param("exerciseBookId") String exerciseBookId);
+
 
     /**
      * 查询解析未加工未审核的单元课时  kmt_exercise_book_course, kmt_exercise_questions, kmt_exercise_book_unit

+ 21 - 0
ssj-mybatis-service-impl/src/main/resources/mybatis/mapper/KmtExerciseMapper.xml

@@ -149,6 +149,18 @@
         order by eq.num, eq.create_time
     </select>
 
+    <!-- 查询不同的题目 -->
+    <select id="findPartQuestionByBookCourseId" resultType="com.ssj.service.kmt.dto.ExerciseQuetionDto">
+        select eq.id question_id, eq.course_name, eb.handle_user_id, eb.auditing_user_id, eb.analysis_user_id, eb.analysis_auditer_id, eq.book_course_id course_id,
+        eq.big_question_index, eq.small_question_name small_question_index,
+        eq.deal_status question_status, eq.create_time, eq.remark reason, eq.from_user_id, eq.to_user_id,
+        eq.question_type question_types, eq.difficulty_level difficulty_levels, eq.real_exam_type real_exam_types,
+        eq.training_skill training_skills, eq.parent_id, eq.proofread_status, eq.question_path, eq.num, eq.create_time
+        from kmt_exercise_questions eq  left join kmt_exercise_book eb on eq.exercise_book_id=eb.id
+        where eq.book_course_id = #{bookCourseId} and eq.exercise_book_id=#{exerciseBookId}
+        order by eq.num, eq.create_time
+    </select>
+
     <!-- 查询待加工审核的题目 -->
     <select id="findQuestionByBookCourseId" resultType="com.ssj.service.kmt.dto.ExerciseQuetionDto">
         select eq.id question_id, eq.course_name, eb.handle_user_id, eb.auditing_user_id, eb.analysis_user_id, eb.analysis_auditer_id, eq.book_course_id course_id,
@@ -735,6 +747,15 @@
 
     </select>
 
+    <!--查询不同的练习册单元 -->
+    <select id="findPartExerciseBookCourse" resultType="com.ssj.service.kmt.dto.exercise.ExerciseUnitBookcourseDto">
+        select ebc.unit_id id, ebc.unit name, ebc.id book_course_id, ebc.period book_course, ebc.period_sort from kmt_exercise_book_course ebc
+        left join kmt_exercise_questions eq on ebc.id=eq.book_course_id
+        where eq.exercise_book_id=#{exerciseBookId}
+        group by ebc.id
+        order by ebc.period_sort
+    </select>
+
     <!--查询待解析加工审核的练习册单元-->
     <select id="findAnalysisUnHandleExerciseBookCourse" resultType="com.ssj.service.kmt.dto.exercise.ExerciseUnitBookcourseDto">
         select ebu.id, ebu.unit name, ebc.id book_course_id, ebc.period book_course from kmt_exercise_book_unit ebu

+ 5 - 1
ssj-sys/src/main/java/com/ssj/service/kmt/kmt/service/impl/KmtExerciseQuestionServiceImpl.java

@@ -145,8 +145,12 @@ public class KmtExerciseQuestionServiceImpl extends BaseServiceImpl<KmtExerciseQ
         if (StringUtils.isNotBlank(request.getPeriodId())){
             List<ExerciseQuetionDto> questions = null;
             if (StringUtil.isNotBlank(request.getQuestionId())){
+                //搜索单题
                 questions = kmtExerciseMapper.findExerciseQuestionByQuestionId(request.getQuestionId().trim(), page);
-            } else {
+            } else if(request.getBookPartType() == 2) {
+                //查询不同的题目
+                questions = kmtExerciseMapper.findPartQuestionByBookCourseId(request.getPeriodId(), request.getExerciseBookId(), page);
+            } else  {
                 questions = kmtExerciseMapperService.findQuestionByBookCourseIdAndUserId(request, page,  userId);
             }
             kmtExerciseService.appendQuestionDtoDataFromJSONFile(questions);