Răsfoiți Sursa

重构代码

宋悦 8 ani în urmă
părinte
comite
08d007d454
53 a modificat fișierele cu 488 adăugiri și 591 ștergeri
  1. 1 1
      cqb-base/pom.xml
  2. 9 4
      cqb-comm-utils/pom.xml
  3. 1 1
      cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java
  4. 44 0
      cqb-comm-utils/src/main/java/com/qmth/cqb/utils/GridFSUtil.java
  5. 2 30
      cqb-comm-utils/src/test/java/com/qmth/cqb/AppTest.java
  6. 2 8
      cqb-gen-paper/pom.xml
  7. 2 1
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperRule.java
  8. 8 2
      cqb-paper/pom.xml
  9. 15 3
      cqb-paper/src/main/java/com/qmth/cqb/paper/model/ExamPaper.java
  10. 2 1
      cqb-paper/src/main/java/com/qmth/cqb/paper/model/ExtractConfig.java
  11. 61 60
      cqb-paper/src/main/java/com/qmth/cqb/paper/model/ImportPaperSearchCondition.java
  12. 19 8
      cqb-paper/src/main/java/com/qmth/cqb/paper/model/PaperDetailUnit.java
  13. 5 3
      cqb-paper/src/main/java/com/qmth/cqb/paper/service/ImportPaperService.java
  14. 10 12
      cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperDetailUnitService.java
  15. 7 4
      cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java
  16. 2 1
      cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractController.java
  17. 2 2
      cqb-paper/src/main/java/com/qmth/cqb/paper/web/ImportPaperController.java
  18. 11 11
      cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperDetailUnitController.java
  19. 3 3
      cqb-question-resource/pom.xml
  20. 9 9
      cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuesOptionRepo.java
  21. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java
  22. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuestionTypeRepo.java
  23. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuesOption.java
  24. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuesResource.java
  25. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/model/Question.java
  26. 60 60
      cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionSearchCondition.java
  27. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionType.java
  28. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesService.java
  29. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesStructTypeService.java
  30. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/web/QuesController.java
  31. 0 0
      cqb-question-resource/src/main/java/com/qmth/cqb/question/web/QuestionTypeController.java
  32. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/dao/QuesOptionRepo.class
  33. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/dao/QuesRepo.class
  34. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/dao/QuestionTypeRepo.class
  35. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuesOption.class
  36. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuesResource.class
  37. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/model/Question.class
  38. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuestionSearchCondition.class
  39. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuestionType.class
  40. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/service/QuesService.class
  41. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/service/QuesStructTypeService.class
  42. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/web/QuesController.class
  43. BIN
      cqb-question-resource/target/classes/com/qmth/cqb/question/web/QuestionTypeController.class
  44. 5 0
      cqb-question-resource/target/maven-archiver/pom.properties
  45. 0 11
      cqb-question/src/main/java/com/qmth/cqb/question/dao/ImportPaperRepo.java
  46. 0 118
      cqb-question/src/main/java/com/qmth/cqb/question/model/ImportPaper.java
  47. 0 102
      cqb-question/src/main/java/com/qmth/cqb/question/service/ImportPaperService.java
  48. 0 104
      cqb-question/src/main/java/com/qmth/cqb/question/web/ImportPaperController.java
  49. 0 1
      cqb-starter/.gitignore
  50. 11 13
      cqb-starter/pom.xml
  51. 7 2
      cqb-starter/src/main/java/com/qmth/cqb/App.java
  52. 151 0
      cqb-starter/src/test/java/com/qmth/cqb/AppTest.java
  53. 39 16
      pom.xml

+ 1 - 1
cqb-base/pom.xml

@@ -17,7 +17,7 @@
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-comm-utils</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 9 - 4
cqb-comm-utils/pom.xml

@@ -33,22 +33,27 @@
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
         </dependency>
 
-     <dependency>
+        <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger2</artifactId>
-            <version>2.6.1</version>
+            <version>${swagger-version}</version>
         </dependency>
         <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger-ui</artifactId>
-            <version>2.6.1</version>
+            <version>${swagger-version}</version>
         </dependency>
 
 
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>3.8.1</version>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-test</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>

+ 1 - 1
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -3,6 +3,6 @@ package com.qmth.cqb.utils;
 /**
  * Created by songyue on 16/12/27.
  */
-public class CommonUtils {
+public final class CommonUtils {
 
 }

+ 44 - 0
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/GridFSUtil.java

@@ -0,0 +1,44 @@
+package com.qmth.cqb.utils;
+
+import com.mongodb.BasicDBObject;
+import com.mongodb.DBObject;
+import com.mongodb.gridfs.GridFSDBFile;
+import com.mongodb.gridfs.GridFSFile;
+import org.bson.types.ObjectId;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.gridfs.GridFsOperations;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+import java.io.InputStream;
+
+/**
+ * Created by songyue on 17/2/27.
+ */
+@Service
+public final class GridFSUtil {
+
+    @Autowired
+    private GridFsOperations gridOperation;
+
+    public String save(InputStream inputStream, String fileName) {
+        DBObject metaData = new BasicDBObject();
+        metaData.put("fileName", fileName);
+        GridFSFile file = gridOperation.store(inputStream, fileName, metaData);
+        return file.getId().toString();
+    }
+
+    public GridFSDBFile get(String id) {
+        return gridOperation.findOne(new Query(Criteria.where("_id").is(new ObjectId(id))));
+    }
+
+    public List listFiles() {
+        return gridOperation.find(null);
+    }
+
+    public GridFSDBFile getByFileName(String fileName) {
+        return gridOperation.findOne(new Query(Criteria.where("filename").is(fileName)));
+    }
+}

+ 2 - 30
cqb-comm-utils/src/test/java/com/qmth/cqb/AppTest.java

@@ -1,38 +1,10 @@
 package com.qmth.cqb;
 
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+
 
 /**
  * Unit test for simple App.
  */
-public class AppTest 
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public AppTest( String testName )
-    {
-        super( testName );
-    }
-
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( AppTest.class );
-    }
+public class AppTest {
 
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
-    }
 }

+ 2 - 8
cqb-gen-paper/pom.xml

@@ -18,14 +18,8 @@
     <dependencies>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
-            <artifactId>cqb-question</artifactId>
-            <version>0.1.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.qmth.cqb</groupId>
-            <artifactId>cqb-base</artifactId>
-            <version>0.1.0</version>
+            <artifactId>cqb-paper</artifactId>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 2 - 1
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperRule.java

@@ -1,9 +1,10 @@
 package com.qmth.cqb.genpaper.model;
 
+
 import com.qmth.cqb.question.model.Question;
+import java.util.List;
 
 import java.io.Serializable;
-import java.util.List;
 import java.util.Map;
 
 /**

+ 8 - 2
cqb-paper/pom.xml

@@ -19,8 +19,14 @@
     <dependencies>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
-            <artifactId>cqb-gen-paper</artifactId>
-            <version>0.1.0</version>
+            <artifactId>cqb-question-resource</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-base</artifactId>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 15 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/model/ExamPaper.java

@@ -1,9 +1,17 @@
 package com.qmth.cqb.paper.model;
 
-public class ExamPaper {
-	
+import org.springframework.data.annotation.Id;
+
+import java.io.Serializable;
+
+public class ExamPaper implements Serializable {
+
+
+	private static final long serialVersionUID = 5708319465238504997L;
+
+	@Id
 	private Long examId;
-	
+
 	private String courseCode;
 	
 	private String groupCode;
@@ -14,6 +22,10 @@ public class ExamPaper {
 	
 	private double weight;//抽取权重比例
 
+	public static long getSerialVersionUID() {
+		return serialVersionUID;
+	}
+
 	public Long getExamId() {
 		return examId;
 	}

+ 2 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/model/ExtractConfig.java

@@ -4,12 +4,13 @@ import java.io.Serializable;
 import java.util.Map;
 
 import com.qmth.cqb.utils.enumeration.ExtractPolicy;
+import org.springframework.data.annotation.Id;
 
 public class ExtractConfig implements Serializable{
-	
 
 	private static final long serialVersionUID = -5234564748332601375L;
 
+	@Id
 	private Long examId;
 	
 	private String courseCode;

+ 61 - 60
cqb-question/src/main/java/com/qmth/cqb/question/model/ImportPaperSearchCondition.java → cqb-paper/src/main/java/com/qmth/cqb/paper/model/ImportPaperSearchCondition.java

@@ -1,60 +1,61 @@
-package com.qmth.cqb.question.model;
-
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.index.Indexed;
-
-public class ImportPaperSearchCondition {
-	
-    private String id;
-    
-    private String paperName;//试卷名称
-
-    private String createTime;//创建时间
-
-    private String updateTime;//更新时间
-    
-    private String creatorId;//创建人id
-    
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getPaperName() {
-		return paperName;
-	}
-
-	public void setPaperName(String paperName) {
-		this.paperName = paperName;
-	}
-
-	public String getCreateTime() {
-		return createTime;
-	}
-
-	public void setCreateTime(String createTime) {
-		this.createTime = createTime;
-	}
-
-	public String getUpdateTime() {
-		return updateTime;
-	}
-
-	public void setUpdateTime(String updateTime) {
-		this.updateTime = updateTime;
-	}
-
-	public String getCreatorId() {
-		return creatorId;
-	}
-
-	public void setCreatorId(String creatorId) {
-		this.creatorId = creatorId;
-	}
-    
-    
-
-}
+package com.qmth.cqb.paper.model;
+
+import java.io.Serializable;
+
+public class ImportPaperSearchCondition implements Serializable{
+
+	private static final long serialVersionUID = 8273918442524569201L;
+
+	private String id;
+
+    private String paperName;//试卷名称
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private String creatorId;//创建人id
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getPaperName() {
+		return paperName;
+	}
+
+	public void setPaperName(String paperName) {
+		this.paperName = paperName;
+	}
+
+	public String getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(String createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(String updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public String getCreatorId() {
+		return creatorId;
+	}
+
+	public void setCreatorId(String creatorId) {
+		this.creatorId = creatorId;
+	}
+
+
+
+}

+ 19 - 8
cqb-paper/src/main/java/com/qmth/cqb/paper/model/PaperDetailUnit.java

@@ -2,11 +2,10 @@ package com.qmth.cqb.paper.model;
 
 import java.io.Serializable;
 
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.mapping.DBRef;
-
 import com.qmth.cqb.question.model.Question;
 import com.qmth.cqb.question.model.QuestionType;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.DBRef;
 
 public class PaperDetailUnit implements Serializable{
 
@@ -23,7 +22,7 @@ public class PaperDetailUnit implements Serializable{
 	private double score;//小题分数
 	
 	@DBRef
-	private PaperDetail paperDeation;//关联的大题
+	private PaperDetail paperDetail;//关联的大题
 	
 	@DBRef
 	private QuestionType questionType;//小题类型
@@ -63,12 +62,24 @@ public class PaperDetailUnit implements Serializable{
 		this.score = score;
 	}
 
-	public PaperDetail getPaperDeation() {
-		return paperDeation;
+	public static long getSerialVersionUID() {
+		return serialVersionUID;
+	}
+
+	public PaperDetail getPaperDetail() {
+		return paperDetail;
+	}
+
+	public void setPaperDetail(PaperDetail paperDetail) {
+		this.paperDetail = paperDetail;
 	}
 
-	public void setPaperDeation(PaperDetail paperDeation) {
-		this.paperDeation = paperDeation;
+	public QuestionType getQuestionType() {
+		return questionType;
+	}
+
+	public void setQuestionType(QuestionType questionType) {
+		this.questionType = questionType;
 	}
 
 	public QuestionType getQuesStructType() {

+ 5 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ImportPaperService.java

@@ -2,21 +2,23 @@ package com.qmth.cqb.paper.service;
 
 import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
 
+import com.qmth.cqb.paper.dao.PaperRepo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Example;
 import org.springframework.data.domain.ExampleMatcher;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
+import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.stereotype.Service;
 
 import com.qmth.cqb.paper.model.Paper;
-import com.qmth.cqb.question.model.ImportPaperSearchCondition;
+import com.qmth.cqb.paper.model.ImportPaperSearchCondition;
 import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
 
 @Service
 public class ImportPaperService {
-	
+
 
     /**
      * 一般返回类型统一为NormalResponse对象
@@ -27,7 +29,7 @@ public class ImportPaperService {
      */
 
     @Autowired
-    com.qmth.cqb.paper.dao.PaperRepo paperRepo;
+    PaperRepo paperRepo;
 
 
     /**

+ 10 - 12
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperDetailUnitService.java

@@ -1,28 +1,26 @@
 package com.qmth.cqb.paper.service;
 
-import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
 
 import java.util.List;
 
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.question.service.QuesService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Example;
-import org.springframework.data.domain.ExampleMatcher;
 import org.springframework.stereotype.Service;
 
 import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
 import com.qmth.cqb.paper.model.PaperDetail;
 import com.qmth.cqb.paper.model.PaperDetailUnit;
-import com.qmth.cqb.question.model.Question;
-import com.qmth.cqb.question.service.QuesService;
 
 @Service
 public class PaperDetailUnitService {
 	@Autowired
 	PaperDetailUnitRepo paperDetailUnitRepo;
-	
+
 	@Autowired
 	QuesService quesService;
-	
+
 	/**
 	 * 根据Id获得对应的试题对象
 	 * @param id
@@ -31,9 +29,9 @@ public class PaperDetailUnitService {
 	public Question getQuestionByPaperDetailUnitId(String id){
 		PaperDetailUnit pdu = paperDetailUnitRepo.findOne(id);
 		Question ques = quesService.findById(pdu.getId());
-		return ques;		
+		return ques;
 	}
-	
+
     /**
      * 按ID查询小题
      * @param id
@@ -45,7 +43,7 @@ public class PaperDetailUnitService {
 
     /**
      * 保存小题
-     * @param PaperDetailUnit
+     * @param pdu
      * @return
      */
     public PaperDetailUnit savePaperDetailUnit(PaperDetailUnit pdu){
@@ -61,7 +59,7 @@ public class PaperDetailUnitService {
     public void deletePaperDetailUnit(String id){
         paperDetailUnitRepo.delete(id);
     }
-    
+
     /**
      * 根据大题查小题
      * @param paperDetail
@@ -69,9 +67,9 @@ public class PaperDetailUnitService {
      */
     public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail){
     	PaperDetailUnit pdu = new PaperDetailUnit();
-    	pdu.setPaperDeation(paperDetail);  	
+    	pdu.setPaperDetail(paperDetail);
     	List<PaperDetailUnit> units = paperDetailUnitRepo.findAll(Example.of(pdu));
     	return units;
     }
 }
-	
+

+ 7 - 4
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -40,17 +40,20 @@ public class PaperService {
 	
 	/**
 	 * 查询考试试卷
-	 * @param examId
+	 * @param id
 	 * @param courseCode
 	 * @param groupCode
 	 * @return
 	 */
-    public List<Paper> listExamPapers(long examId,String courseCode,String groupCode){
+    public List<Paper> listExamPapers(long id,String courseCode,String groupCode){
     	List<Paper> papers = new ArrayList<Paper>();
      	ExamPaper examPaper = new ExamPaper();
-    	examPaper.setExamId(examId);
+    	examPaper.setExamId(id);
     	examPaper.setCourseCode(courseCode);
     	examPaper.setGroupCode(groupCode);
+//		List<ExamPaper> examPapers = new ArrayList<ExamPaper>();
+//		examPapers.add(examPaperRepo.findOne(Example.of(examPaper)));
+
     	List<ExamPaper> examPapers = examPaperRepo.findAll(Example.of(examPaper));
     	for(ExamPaper ePaper:examPapers){
     		Paper paper = paperRepo.findOne(ePaper.getPaperId());
@@ -141,7 +144,7 @@ public class PaperService {
 
     /**
      * 保存试卷
-     * @param Paper
+     * @param pd
      * @return
      */
     public Paper savePaper(Paper pd){

+ 2 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractController.java

@@ -5,6 +5,7 @@ import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.service.ExtractService;
 import com.qmth.cqb.paper.service.PaperService;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +35,7 @@ public class ExtractController {
     	if("RANDOM_PAPER".equals(config.getPolicy().getKey())){
     		List<Paper> papers = paperService.listExamPapers(config.getExamId(), config.getCourseCode(), group_code);
     	    paper = extractService.randomPaper(papers);
-    	}     	
+    	}
 		return paper;
     }
     

+ 2 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ImportPaperController.java

@@ -1,5 +1,6 @@
 package com.qmth.cqb.paper.web;
 
+import com.qmth.cqb.paper.model.ImportPaperSearchCondition;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -14,7 +15,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.service.ImportPaperService;
-import com.qmth.cqb.question.model.ImportPaperSearchCondition;
 import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
 
 /**
@@ -84,7 +84,7 @@ public class ImportPaperController {
 
     /**
      * 删除导入试卷
-     * @param paper_id
+     * @param importPaper_id
      * @return
      */
     @DeleteMapping(value = "/importPaper/{importPaper_id}")

+ 11 - 11
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperDetailUnitController.java

@@ -27,7 +27,7 @@ import io.swagger.annotations.ApiOperation;
 public class PaperDetailUnitController {
 		 @Autowired
 		 PaperDetailUnitService  unitService;
-		 
+
 		 /**
 		  * 获取单个小题对应的试题
 		  * @param unit_id
@@ -37,10 +37,10 @@ public class PaperDetailUnitController {
 		 public Question getQuestionByUnitId(String unit_id){
 			 return unitService.getQuestionByPaperDetailUnitId(unit_id);
 		 }
-		 
+
 	    /**
 	     * 获取小题
-	     * @param id
+	     * @param unit_id
 	     * @return
 	     */
 	    @ApiOperation(value="获取单个小题",notes="获取单个小题")
@@ -48,11 +48,11 @@ public class PaperDetailUnitController {
 	    public PaperDetailUnit getPaperDetailUnitId(@PathVariable String unit_id){
 	        return unitService.findById(unit_id);
 	    }
-	
-	
+
+
 	    /**
 	     * 更新小题信息
-	     * @param PaperDetailUnit
+	     * @param pdu
 	     * @return
 	     */
 	    @PutMapping(value = "/paperDetailUnit")
@@ -60,12 +60,12 @@ public class PaperDetailUnitController {
 	        PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu);
 	        ResponseEntity rse = new ResponseEntity(pdUnit,HttpStatus.OK);
 	        return rse;
-	    	
+
 	    }
-	
+
 	    /**
 	     * 新增小题
-	     * @param PaperDetailUnit
+	     * @param pdu
 	     * @return
 	     */
 	    @PostMapping(value = "/paperDetailUnit")
@@ -74,10 +74,10 @@ public class PaperDetailUnitController {
 	      ResponseEntity rse2 = new ResponseEntity(pdUnit,HttpStatus.OK);
 	      return rse2;
 	    }
-	
+
 	    /**
 	     * 删除小题
-	     * @param id
+	     * @param unit_id
 	     * @return
 	     */
 	    @DeleteMapping(value = "/paperDetailUnit/{unit_id}")

+ 3 - 3
cqb-question/pom.xml → cqb-question-resource/pom.xml

@@ -7,9 +7,9 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>cqb-question</artifactId>
+    <artifactId>cqb-question-resource</artifactId>
 
-    <name>cqb-question</name>
+    <name>cqb-question-resource</name>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -19,7 +19,7 @@
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-comm-utils</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 9 - 9
cqb-question/src/main/java/com/qmth/cqb/question/dao/QuesOptionRepo.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuesOptionRepo.java

@@ -1,9 +1,9 @@
-package com.qmth.cqb.question.dao;
-
-import org.springframework.data.mongodb.repository.MongoRepository;
-import org.springframework.data.repository.query.QueryByExampleExecutor;
-
-import com.qmth.cqb.question.model.QuesOption;
-
-public interface QuesOptionRepo extends MongoRepository<QuesOption,String>,QueryByExampleExecutor<QuesOption>{
-}
+package com.qmth.cqb.question.dao;
+
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+import com.qmth.cqb.question.model.QuesOption;
+
+public interface QuesOptionRepo extends MongoRepository<QuesOption,String>,QueryByExampleExecutor<QuesOption>{
+}

+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/dao/QuestionTypeRepo.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuestionTypeRepo.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/QuesOption.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuesOption.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/QuesResource.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuesResource.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/Question.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/model/Question.java


+ 60 - 60
cqb-question/src/main/java/com/qmth/cqb/question/model/QuestionSearchCondition.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionSearchCondition.java

@@ -1,60 +1,60 @@
-package com.qmth.cqb.question.model;
-
-import java.util.Map;
-
-public class QuestionSearchCondition {
-
-	private String id;
-
-	private String quesTypeName;// 试题类型名称
-
-	private String createTime;// 创建时间
-
-	private String updateTime;// 更新时间
-
-	private Map<String, String> quesParams;// 试题其他属性
-
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getQuesTypeName() {
-		return quesTypeName;
-	}
-
-	public void setQuesTypeName(String quesTypeName) {
-		this.quesTypeName = quesTypeName;
-	}
-
-	public String getCreateTime() {
-		return createTime;
-	}
-
-	public void setCreateTime(String createTime) {
-		this.createTime = createTime;
-	}
-
-	public String getUpdateTime() {
-		return updateTime;
-	}
-
-	public void setUpdateTime(String updateTime) {
-		this.updateTime = updateTime;
-	}
-
-	public Map<String, String> getQuesParams() {
-		return quesParams;
-	}
-
-	public void setQuesParams(Map<String, String> quesParams) {
-		this.quesParams = quesParams;
-	}
-	  
-	  
-
-
-}
+package com.qmth.cqb.question.model;
+
+import java.util.Map;
+
+public class QuestionSearchCondition {
+
+	private String id;
+
+	private String quesTypeName;// 试题类型名称
+
+	private String createTime;// 创建时间
+
+	private String updateTime;// 更新时间
+
+	private Map<String, String> quesParams;// 试题其他属性
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getQuesTypeName() {
+		return quesTypeName;
+	}
+
+	public void setQuesTypeName(String quesTypeName) {
+		this.quesTypeName = quesTypeName;
+	}
+
+	public String getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(String createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(String updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public Map<String, String> getQuesParams() {
+		return quesParams;
+	}
+
+	public void setQuesParams(Map<String, String> quesParams) {
+		this.quesParams = quesParams;
+	}
+	  
+	  
+
+
+}

+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/QuestionType.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionType.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/service/QuesService.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesService.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/service/QuesStructTypeService.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesStructTypeService.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/web/QuesController.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/web/QuesController.java


+ 0 - 0
cqb-question/src/main/java/com/qmth/cqb/question/web/QuestionTypeController.java → cqb-question-resource/src/main/java/com/qmth/cqb/question/web/QuestionTypeController.java


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/dao/QuesOptionRepo.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/dao/QuesRepo.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/dao/QuestionTypeRepo.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuesOption.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuesResource.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/model/Question.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuestionSearchCondition.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/model/QuestionType.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/service/QuesService.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/service/QuesStructTypeService.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/web/QuesController.class


BIN
cqb-question-resource/target/classes/com/qmth/cqb/question/web/QuestionTypeController.class


+ 5 - 0
cqb-question-resource/target/maven-archiver/pom.properties

@@ -0,0 +1,5 @@
+#Generated by Apache Maven
+#Mon Feb 27 14:53:21 CST 2017
+version=0.1.0
+groupId=com.qmth.cqb
+artifactId=cqb-question-resource

+ 0 - 11
cqb-question/src/main/java/com/qmth/cqb/question/dao/ImportPaperRepo.java

@@ -1,11 +0,0 @@
-package com.qmth.cqb.question.dao;
-
-import com.qmth.cqb.question.model.ImportPaper;
-import org.springframework.data.mongodb.repository.MongoRepository;
-import org.springframework.data.repository.query.QueryByExampleExecutor;
-
-/**
- * Created by songyue on 16/12/28.
- */
-public interface ImportPaperRepo extends MongoRepository<ImportPaper,String>,QueryByExampleExecutor<ImportPaper>{
-}

+ 0 - 118
cqb-question/src/main/java/com/qmth/cqb/question/model/ImportPaper.java

@@ -1,118 +0,0 @@
-package com.qmth.cqb.question.model;
-
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.index.Indexed;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 试卷实体类
- * Created by songyue on 16/12/28.
- */
-public class ImportPaper implements Serializable{
-    private static final long serialVersionUID = -323432549247192327L;
-
-    @Id
-    private String id;
-
-    @Indexed(unique = true)
-    private String paperName;//试卷名称
-    
-    private String title;//试卷标题
-    
-    private double totalScore;//试卷总分
-
-    private String createTime;//创建时间
-
-    private String updateTime;//更新时间
-
-    private String word;//原始试卷word
-
-    private String html;//原始试卷html
-
-    //private List<Question> questionList;//试卷中的所有试题,按顺序排列
-
-    private Map<String,String> params;//导入试卷属性
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getPaperName() {
-        return paperName;
-    }
-
-    public void setPaperName(String paperName) {
-        this.paperName = paperName;
-    }
-    
-    public String getTitle() {
-		return title;
-	}
-
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-    
-    public double getTotalScore() {
-		return totalScore;
-	}
-
-	public void setTotalScore(double totalScore) {
-		this.totalScore = totalScore;
-	}
-
-	public String getWord() {
-		return word;
-	}
-
-	public void setWord(String word) {
-		this.word = word;
-	}
-
-	public String getHtml() {
-		return html;
-	}
-
-	public void setHtml(String html) {
-		this.html = html;
-	}
-
-	public String getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(String createTime) {
-        this.createTime = createTime;
-    }
-
-    public String getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(String updateTime) {
-        this.updateTime = updateTime;
-    }
-    
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
-    }
-
-	public Map<String, String> getParams() {
-		return params;
-	}
-
-	public void setParams(Map<String, String> params) {
-		this.params = params;
-	}
-
-	public ImportPaper() {
-    }
-}

+ 0 - 102
cqb-question/src/main/java/com/qmth/cqb/question/service/ImportPaperService.java

@@ -1,102 +0,0 @@
-package com.qmth.cqb.question.service;
-
-import com.qmth.cqb.question.dao.ImportPaperRepo;
-import com.qmth.cqb.question.model.ImportPaper;
-import com.qmth.cqb.question.model.ImportPaperSearchCondition;
-import com.qmth.cqb.utils.modal.NormalResponse;
-import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
-
-import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
-
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Example;
-import org.springframework.data.domain.ExampleMatcher;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Service;
-
-/**
- * 导入试卷服务类
- * Created by songyue on 16/12/28.
- */
-@Service
-public class ImportPaperService {
-
-    /**
-     * 一般返回类型统一为NormalResponse对象
-     * NormalResponse(String httpStatus, String Message)
-     * 分页集合返回类型为PagingAndSortingResponse
-     * PagingAndSortingResponse(int curPage, int pageSize, int totalPages, long totalElements, List dataList)
-     * 一般集合返回类型为List
-     */
-
-    @Autowired
-    ImportPaperRepo importPaperRepo;
-
-    /**
-     * 导入试卷
-     * @param importPaper
-     * @return
-     */
-    public NormalResponse importPaper(ImportPaper importPaper){
-        ImportPaper tempPaper = importPaperRepo.save(importPaper);
-        if(tempPaper != null){
-            return new NormalResponse(HttpStatus.OK.toString(),"success");
-        }else{
-            return new NormalResponse(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"导入失败");
-        }
-    }
-
-    /**
-     * 查询所有已导入试卷
-     * @param searchCondition
-     * @param curPage
-     * @param pageSize
-     * @return
-     */
-    public PagingAndSortingResponse<ImportPaper> findAll(ImportPaperSearchCondition searchCondition,int curPage,int pageSize){
-    	ImportPaper importPaper = new ImportPaper();
-    	BeanUtils.copyProperties(searchCondition,importPaper);
-    	ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("paperName", startsWith());
-        Page<ImportPaper> importPaperList = importPaperRepo.findAll(Example.of(importPaper,matcher),new PageRequest(curPage-1,pageSize));
-        return new PagingAndSortingResponse<ImportPaper>(importPaperList.getNumber(),importPaperList.getSize(),
-                importPaperList.getTotalPages(),importPaperList.getTotalElements(),importPaperList.getContent());
-    }
-
-    /**
-     * 按ID查询导入试卷
-     * @param paperId
-     * @return
-     */
-    public ImportPaper findById(String paperId){
-        return importPaperRepo.findOne(paperId);
-    }
-
-    /**
-     * 保存试卷
-     * @param importPaper
-     * @return
-     */
-    public ImportPaper saveImportPaper(ImportPaper importPaper){
-        ImportPaper tempPaper = importPaperRepo.save(importPaper);
-        return tempPaper;
-//        if(tempPaper != null){
-//            return new NormalResponse(HttpStatus.OK.toString(),"success");
-//        }else{
-//            return new NormalResponse(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"保存失败");
-//        }
-    }
-
-    /**
-     * 删除导入试卷
-     * @param paperId
-     * @return
-     */
-    public NormalResponse deleteImportPaper(String paperId){
-        importPaperRepo.delete(paperId);
-        return new NormalResponse(HttpStatus.OK.toString(),"success");
-    }
-
-}

+ 0 - 104
cqb-question/src/main/java/com/qmth/cqb/question/web/ImportPaperController.java

@@ -1,104 +0,0 @@
-//package com.qmth.cqb.question.web;
-//
-//import java.util.List;
-//
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.http.HttpStatus;
-//import org.springframework.http.ResponseEntity;
-//import org.springframework.stereotype.Controller;
-//import org.springframework.web.bind.annotation.DeleteMapping;
-//import org.springframework.web.bind.annotation.GetMapping;
-//import org.springframework.web.bind.annotation.ModelAttribute;
-//import org.springframework.web.bind.annotation.PathVariable;
-//import org.springframework.web.bind.annotation.PostMapping;
-//import org.springframework.web.bind.annotation.PutMapping;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import com.google.gson.Gson;
-//import com.qmth.cqb.question.model.ImportPaper;
-//import com.qmth.cqb.question.model.ImportPaperSearchCondition;
-//import com.qmth.cqb.question.model.Question;
-//import com.qmth.cqb.question.service.ImportPaperService;
-//import com.qmth.cqb.utils.modal.NormalResponse;
-//import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
-//
-///**
-// * Created by songyue on 16/12/29.
-// */
-//@RestController
-//@RequestMapping("${api_cqb}/")
-//public class ImportPaperController {
-//    @Autowired
-//    ImportPaperService importPaperService;
-//      
-//    @Autowired
-//    Gson gson;
-//
-//
-//    /**
-//     * 获取导入试卷
-//     * @param importPaper_id
-//     * @return
-//     */
-//    @GetMapping(value = "/importPaper/{importPaper_id}")
-//    public ImportPaper getImportPaperById(@PathVariable String importPaper_id){
-//        return importPaperService.findById(importPaper_id);
-//    }
-//    
-//    /**
-//     * 获取导入试卷的所有试题
-//     * @param importPaper_id
-//     * @return
-//     */
-////    @GetMapping(value = "/importPaper/question/{importPaper_id}")
-////    public List<Question> getQuesImportPaperById(@PathVariable String importPaper_id){
-////    	return importPaperService.findById(importPaper_id).getQuestionList();
-////    }
-//
-//
-//    /**
-//     * 获取全部导入试卷
-//     * @return
-//     */
-//    @GetMapping(value = "/importPaper/all/{curPage}/{paseSize}")
-//    public PagingAndSortingResponse<ImportPaper> getAllImportPaper(@ModelAttribute ImportPaperSearchCondition searchCondition, @PathVariable int curPage, @PathVariable int pageSize){
-//      PagingAndSortingResponse<ImportPaper> psr = importPaperService.findAll(searchCondition, curPage, pageSize);
-//      return psr;
-//    }
-//
-//    /**
-//     * 更新导入试卷信息
-//     * @param 
-//     * @return
-//     */
-//    @PutMapping(value = "/importPaper")
-//    public ResponseEntity updateImportPaper(@ModelAttribute ImportPaper paper){
-//    	ImportPaper paper2 = importPaperService.saveImportPaper(paper);
-//    	ResponseEntity rse = new ResponseEntity(paper2,HttpStatus.OK);
-//    	return rse;
-//    	
-//    }
-//
-//    /**
-//     * 新增导入试卷
-//     * @param paper
-//     * @return
-//     */
-//    @PostMapping(value = "/importPaper")
-//    public ResponseEntity addImportPaper(@ModelAttribute ImportPaper paper){
-//    	ImportPaper paper2 = importPaperService.saveImportPaper(paper);
-//    	ResponseEntity rse = new ResponseEntity(paper2,HttpStatus.OK);
-//    	return rse;
-//    }
-//
-//    /**
-//     * 删除导入试卷
-//     * @param paper_id
-//     * @return
-//     */
-//    @DeleteMapping(value = "/importPaper/{importPaper_id}")
-//    public NormalResponse removeImportPaper(@PathVariable String importPaper_id){
-//    	return importPaperService.deleteImportPaper(importPaper_id);
-//    }
-//}

+ 0 - 1
cqb-starter/.gitignore

@@ -1 +0,0 @@
-/target/

+ 11 - 13
cqb-starter/pom.xml

@@ -20,42 +20,42 @@
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-base</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-comm-utils</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-flow-core</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-flow-college</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-flow-zk</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
-            <artifactId>cqb-question</artifactId>
-            <version>0.1.0</version>
+            <artifactId>cqb-question-resource</artifactId>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-gen-paper</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.qmth.cqb</groupId>
             <artifactId>cqb-paper</artifactId>
-            <version>0.1.0</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -75,19 +75,17 @@
         <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger2</artifactId>
-            <version>2.6.1</version>
+            <version>${swagger-version}</version>
         </dependency>
         <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger-ui</artifactId>
-            <version>2.6.1</version>
+            <version>${swagger-version}</version>
         </dependency>
         
 
     </dependencies>
     <build>
-        <!-- 为jar包取名 -->
-        <finalName>comm-ques-bank</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>

+ 7 - 2
cqb-starter/src/main/java/com/qmth/cqb/App.java

@@ -1,5 +1,7 @@
 package com.qmth.cqb;
 
+import com.qmth.cqb.utils.GridFSUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -8,8 +10,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  *
  */
 @SpringBootApplication
-public class App 
-{
+public class App {
+
+    @Autowired
+    GridFSUtil gridFSUtil;
+
     public static void main(String[] args){
         SpringApplication.run(App.class, args);
     }

+ 151 - 0
cqb-starter/src/test/java/com/qmth/cqb/AppTest.java

@@ -3,6 +3,20 @@ package com.qmth.cqb;
 import com.qmth.cqb.base.dao.UserRepo;
 import com.qmth.cqb.base.model.User;
 import com.qmth.cqb.base.service.UserService;
+import com.qmth.cqb.paper.dao.*;
+import com.qmth.cqb.paper.model.*;
+import com.qmth.cqb.question.dao.QuesRepo;
+import com.qmth.cqb.question.model.QuesOption;
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.question.model.QuestionType;
+import com.qmth.cqb.utils.GridFSUtil;
+import com.qmth.cqb.utils.enumeration.ExtractPolicy;
+import com.qmth.cqb.utils.enumeration.QuesStructType;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.List;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -11,6 +25,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.util.ArrayList;
+
 /**
  * Unit test for simple App.
  */
@@ -22,6 +38,37 @@ public class AppTest {
 
     @Autowired
     UserService userService;
+
+    @Autowired
+    QuesRepo quesRepo;
+
+    @Autowired
+    PaperRepo paperRepo;
+
+    @Autowired
+    PaperDetailRepo paperDetailRepo;
+
+    @Autowired
+    PaperDetailUnitRepo paperDetailUnitRepo;
+
+    @Autowired
+    GridFSUtil gridFSUtil;
+
+    @Autowired
+    ExamPaperRepo examPaperRepo;
+
+    @Autowired
+    ExtractConfigRepo extractConfigRepo;
+
+    @Test
+    public void testGridFs() throws FileNotFoundException {
+        String fileName = "testXml";
+        String filePath = "/Users/songyue/Desktop/"+fileName+".xml";
+        FileInputStream fileInputStream = new FileInputStream(new File(filePath));
+        gridFSUtil.save(fileInputStream,fileName);
+        gridFSUtil.getByFileName(fileName);
+    }
+
     @Test
     public void testUser(){
         userRepo.deleteAll();
@@ -62,4 +109,108 @@ public class AppTest {
             System.out.println(o.getLoginName());
         });
     }
+
+    @Test
+    public void testQuestion(){
+        Question question = new Question();
+        question.setQuesBody("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><style>.wordTd_disabled{border:solid windowtext 1pt;padding:0cm 5.4pt 0cm 5.4pt;} p{white-space:sWrap;word-wrap:break-word;} span{white-space:sWrap;word-wrap:break-word;}</style></head><body><p style=\"text-align:both;\"><span style=\"color:#000000;font-size:10pt;font-family:Times New Roman;\"><span style=\"font-style:normal;\"><span style=\"font-weight:normal;\">\n" +
+                "材料在外力作用下发生形变(套题题干)。\n" +
+                "</span></span></span></p></body></html>");
+        QuestionType questionType = new QuestionType();
+        questionType.setId(1);
+        questionType.setName("阅读理解");
+        questionType.setQuesType(QuesStructType.NESTED_ANSWER_QUESTION);
+        question.setQuesStructType(questionType);
+        List<Question> subquestionList = new ArrayList<Question>();
+
+
+        for(int i=0;i < 10;i++){
+            Question subquestion = new Question();
+            subquestion.setQuesBody("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><style>.wordTd_disabled{border:solid windowtext 1pt;padding:0cm 5.4pt 0cm 5.4pt;} p{white-space:sWrap;word-wrap:break-word;} span{white-space:sWrap;word-wrap:break-word;}</style></head><body><p style=\"text-align:both;\"><span style=\"color:#000000;font-size:10pt;font-family:Times New Roman;\"><span style=\"font-style:normal;\"><span style=\"font-weight:normal;\">\n" +
+                    "材料在外力作用下发生形变,当外力撤消后能恢复原来大小和形状的性质称为(小题题干"+i+")。\n" +
+                    "</span></span></span></p></body></html>");
+            subquestion.setQuesAnswer("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><style>.wordTd_disabled{border:solid windowtext 1pt;padding:0cm 5.4pt 0cm 5.4pt;} p{white-space:sWrap;word-wrap:break-word;} span{white-space:sWrap;word-wrap:break-word;}</style></head><body><p style=\"text-align:both;\"><span style=\"color:#000000;font-size:10pt;font-family:Times New Roman;\"><span style=\"font-style:normal;\"><span style=\"font-weight:normal;\">\n" +
+                    "B\n" +
+                    "</span></span></span></p><p style=\"text-align:both;\"><br/></p></body></html>");
+            QuesOption quesOption1 = new QuesOption();
+            quesOption1.setOptionBody("A.12312312313");
+            QuesOption quesOption2 = new QuesOption();
+            quesOption2.setOptionBody("B.34534534545");
+            List<QuesOption> quesOptionList = new ArrayList<QuesOption>();
+            quesOptionList.add(quesOption1);
+            quesOptionList.add(quesOption2);
+            subquestion.setQuesOptions(quesOptionList);
+            QuestionType questionType1 = new QuestionType();
+            questionType1.setId(1);
+            questionType1.setName("单项选择题");
+            questionType1.setQuesType(QuesStructType.SINGLE_ANSWER_QUESTION);
+            subquestion.setQuesStructType(questionType1);
+            subquestionList.add(subquestion);
+        }
+        question.setSubQuestion(subquestionList);
+        quesRepo.save(question);
+    }
+
+    @Test
+    public void testPaper(){
+        paperRepo.deleteAll();
+        paperDetailRepo.deleteAll();
+        paperDetailUnitRepo.deleteAll();
+
+        Paper paper =  new Paper();
+        paper.setName("测试试卷");
+        paper.setPaperDetailCount(1);
+        paper.setTitle("测试试卷");
+        PaperDetail paperDetail = new PaperDetail();
+        paperDetail.setName("选择题");
+        paperDetail.setScore(20);
+        paperDetail.setNumber(1);
+        paperDetail.setPaper(paper);
+        QuestionType questionType1 = new QuestionType();
+        questionType1.setId(1);
+        questionType1.setName("单项选择题");
+        questionType1.setQuesType(QuesStructType.SINGLE_ANSWER_QUESTION);
+        paperDetail.setQuesStructType(questionType1);
+        paperDetail.setUnitCount(3);
+
+        paperRepo.save(paper);
+        paperDetailRepo.save(paperDetail);
+
+
+        List<Question> questionList = quesRepo.findAll();
+        int i = 0;
+        for(Question ques:questionList){
+            PaperDetailUnit paperDetailUnit = new PaperDetailUnit();
+            paperDetailUnit.setQuesStructType(ques.getQuesStructType());
+            paperDetailUnit.setNumber(i);
+            paperDetailUnit.setPaper(paper);
+            paperDetailUnit.setPaperDetail(paperDetail);
+            paperDetailUnit.setScore(10);
+            paperDetailUnit.setQuestion(ques);
+            i++;
+            paperDetailUnitRepo.save(paperDetailUnit);
+        }
+    }
+
+        @Test
+        public void testExtract(){
+            extractConfigRepo.deleteAll();
+            examPaperRepo.deleteAll();
+            ExamPaper examPaper = new ExamPaper();
+            examPaper.setExamId((long)1);
+            examPaper.setCourseCode("1");
+            examPaper.setExtractCount(1);
+            examPaper.setGroupCode("1");
+            examPaper.setPaperId("58b3e0b06def240e05b0c0e1");
+            examPaperRepo.save(examPaper);
+
+            ExtractConfig extractConfig = new ExtractConfig();
+            extractConfig.setExamId((long)1);
+            extractConfig.setCourseCode("1");
+            extractConfig.setPolicy(ExtractPolicy.ExtractPolicy);
+            extractConfigRepo.save(extractConfig);
+        }
+
+
+
 }

+ 39 - 16
pom.xml

@@ -8,11 +8,11 @@
   <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
-    <version>1.4.3.RELEASE</version>
+    <version>1.5.1.RELEASE</version>
   </parent>
   <modules>
     <module>cqb-starter</module>
-    <module>cqb-question</module>
+    <module>cqb-question-resource</module>
     <module>cqb-base</module>
     <module>cqb-gen-paper</module>
     <module>cqb-flow-core</module>
@@ -29,6 +29,9 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <spring.boot.version>1.4.3.RELEASE</spring.boot.version>
     <project.version>0.1.0</project.version>
+    <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
+    <maven-compiler-plugin.version>3.3</maven-compiler-plugin.version>
+    <swagger-version>2.6.1</swagger-version>
   </properties>
 
   <dependencies>
@@ -37,21 +40,41 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-maven-plugin</artifactId>
-        <version>${spring.boot.version}</version>
-        <configuration><!-- 指定该Main Class为全局的唯一入口 -->
-          <mainClass>com.qmth.cqb.cqb-starter.App</mainClass>
-          <layout>ZIP</layout>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
-            </goals>
-          </execution>
-        </executions>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+      </plugin>
+
     </plugins>
+
+    <pluginManagement>
+      <plugins>
+
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${maven-surefire-plugin.version}</version>
+          <configuration>
+            <testFailureIgnore>true</testFailureIgnore>
+          </configuration>
+        </plugin>
+
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${maven-compiler-plugin.version}</version>
+          <configuration>
+            <source>1.8</source>
+            <target>1.8</target>
+            <compilerArgument>-proc:none</compilerArgument>
+          </configuration>
+        </plugin>
+
+      </plugins>
+    </pluginManagement>
   </build>
 </project>