Browse Source

Merge remote-tracking branch 'origin/master'

YuanPan 8 years ago
parent
commit
150fa4bd5e

+ 48 - 33
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperDetailUnitService.java

@@ -1,87 +1,102 @@
 package com.qmth.cqb.paper.service;
 
-
 import java.util.ArrayList;
 import java.util.List;
 
-import com.qmth.cqb.question.dao.QuesRepo;
-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.stereotype.Service;
 
 import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
+import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.model.PaperDetail;
 import com.qmth.cqb.paper.model.PaperDetailUnit;
+import com.qmth.cqb.question.dao.QuesRepo;
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.question.service.QuesService;
 
 @Service
 public class PaperDetailUnitService {
 
-	@Autowired
-	PaperDetailUnitRepo paperDetailUnitRepo;
+    @Autowired
+    PaperDetailUnitRepo paperDetailUnitRepo;
 
-	@Autowired
-	QuesService quesService;
+    @Autowired
+    QuesService quesService;
 
-	@Autowired
-	QuesRepo quesRepo;
+    @Autowired
+    QuesRepo quesRepo;
 
-	/**
-	 * 根据Id获得对应的试题对象
-	 * @param id
-	 * @return
-	 */
-	public Question getQuestionByPaperDetailUnitId(String id){
-		return paperDetailUnitRepo.findOne(id).getQuestion();
-	}
+    @Autowired
+    PaperService paperService;
+
+    /**
+     * 根据Id获得对应的试题对象
+     * 
+     * @param id
+     * @return
+     */
+    public Question getQuestionByPaperDetailUnitId(String id) {
+        return paperDetailUnitRepo.findOne(id).getQuestion();
+    }
 
     /**
      * 按ID查询小题
+     * 
      * @param id
      * @return
      */
-    public PaperDetailUnit findById(String id){
+    public PaperDetailUnit findById(String id) {
         return paperDetailUnitRepo.findOne(id);
     }
 
     /**
      * 保存小题
+     * 
      * @param pdu
      * @return
      */
-    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnit pdu){
-        return paperDetailUnitRepo.save(pdu);
+    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp) {
+        PaperDetailUnit oldPdu = paperDetailUnitRepo.findOne(pduExp.getId());
+        oldPdu.setScore(pduExp.getScore());
+        oldPdu.setQuestion(pduExp.getQuestion());
+        Question ques = pduExp.getQuestion();
+        quesRepo.save(ques);// 同时要跟新小题里面的Qustion对象
+        return paperDetailUnitRepo.save(oldPdu);
     }
 
     /**
      * 删除小题
+     * 
      * @param id
      * @return
      */
-    public void deletePaperDetailUnit(String id){
+    public void deletePaperDetailUnit(String id) {
+        Paper paper = paperDetailUnitRepo.findOne(id).getPaper();
         paperDetailUnitRepo.delete(id);
+        paperService.formatPaper(paper);
     }
 
     /**
      * 根据大题查小题
+     * 
      * @param paperDetail
      * @return
      */
-    public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail){
-    	return paperDetailUnitRepo.findByPaperDetail(paperDetail);
+    public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail) {
+        return paperDetailUnitRepo.findByPaperDetail(paperDetail);
     }
-    
+
     /**
      * 根据大题集合删除小题
+     * 
      * @param paperDetails
      */
-    public void deleteUnitsByPaperDetails (List<PaperDetail> paperDetails){
-    	List<PaperDetailUnit> units = new ArrayList<PaperDetailUnit>();
-    	for(PaperDetail pd:paperDetails){
-    		units.addAll(getUnitsByPaperDetail(pd));
-    	}
-    	paperDetailUnitRepo.delete(units);
+    public void deleteUnitsByPaperDetails(List<PaperDetail> paperDetails) {
+        List<PaperDetailUnit> units = new ArrayList<PaperDetailUnit>();
+        for (PaperDetail pd : paperDetails) {
+            units.addAll(getUnitsByPaperDetail(pd));
+        }
+        paperDetailUnitRepo.delete(units);
     }
 }
-

+ 14 - 11
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -260,7 +260,6 @@ public class PaperService {
 
         // 获取paper
         Paper paper = paperRepo.findOne(id);
-
         // 创建paperDto
         PaperExp paperExp = BeanCopierUtil.copyProperties(paper, PaperExp.class);
         // 获取大题
@@ -271,9 +270,14 @@ public class PaperService {
         // 封装小题
         for (int i = 0; i < paperDetailExps.size(); i++) {
             List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
-            List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
-                    PaperDetailUnitExp.class);
-            paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
+            if (paperDetailUnits != null && paperDetailUnits.size() > 0) {
+                List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
+                        PaperDetailUnitExp.class);
+                paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
+            } else {
+                paperDetailExps.get(i).setUnitCount(0);
+            }
+
         }
         // 初始化试卷内容
         initPaper(paperExp);
@@ -360,6 +364,7 @@ public class PaperService {
         // 计算各大题总分
         for (PaperDetail paperDetail : paperDetails) {
             List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetail);
+            Collections.sort(paperDetailUnits);
             if (paperDetailUnits.size() > 0) {
                 int count = 0;
                 double score = 0;
@@ -367,8 +372,8 @@ public class PaperService {
                 QuesStructType questionType = firstUnit.getQuestionType();
                 if (!questionType.equals(QuesStructType.NESTED_ANSWER_QUESTION)) {
                     for (PaperDetailUnit unit : paperDetailUnits) {
-                        if (unit.getQuestion().getScore() != null) {
-                            score += unit.getQuestion().getScore();
+                        if (unit.getScore() != null) {
+                            score += unit.getScore();
                         }
                     }
                     count = paperDetailUnits.size();
@@ -380,6 +385,8 @@ public class PaperService {
                 }
                 paperDetail.setScore(score);
                 paperDetail.setUnitCount(count);
+            } else {
+                paperDetail.setScore(0d);
             }
         }
         paper.setUnitCount(paperDetailUnitAll.size());
@@ -444,11 +451,7 @@ public class PaperService {
         pdus.add(pdu);
         Collections.sort(pdus);
         pdu.setNumber(pdus.indexOf(pdu) + 1);
-        if (question.getScore() == null || question.getScore() == 0d) {
-            pdu.setScore(0d);
-        } else {
-            pdu.setScore(question.getScore());
-        }
+        pdu.setScore(0d);
         paperDetailUnitRepo.save(pdu);
         formatPaper(paper);
         return paper;

+ 71 - 63
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -1,5 +1,29 @@
 package com.qmth.cqb.paper.web;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.google.gson.Gson;
 import com.qmth.cqb.paper.dao.PaperRepo;
 import com.qmth.cqb.paper.dto.PaperDetailExp;
@@ -9,28 +33,18 @@ import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.model.PaperSearchInfo;
 import com.qmth.cqb.paper.service.PaperService;
 import com.qmth.cqb.question.model.Question;
-
 import com.qmth.cqb.utils.StringSimilarityUtils;
+
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import io.swagger.annotations.ApiOperation;
 
-import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
 /**
  * Created by songyue on 16/12/28.
  */
 @RestController
 @RequestMapping("${api_cqb}/")
 public class PaperController {
+
     @Autowired
     PaperService paperService;
 
@@ -77,11 +91,9 @@ public class PaperController {
      */
     @ApiOperation(value = "查询所有导入试卷", notes = "查询所有导入试卷")
     @GetMapping(value = "/importPaper/{curPage}/{pageSize}")
-    public ResponseEntity getImportPapers(@ModelAttribute PaperSearchInfo paperSearchInfo,
-                                          @PathVariable int curPage,
-                                          @PathVariable int pageSize) {
-        return new ResponseEntity(paperService.getImportPapers(paperSearchInfo,
-                curPage, pageSize), HttpStatus.OK);
+    public ResponseEntity getImportPapers(@ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable int curPage,
+            @PathVariable int pageSize) {
+        return new ResponseEntity(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
 
     /**
@@ -94,11 +106,9 @@ public class PaperController {
      */
     @ApiOperation(value = "查询所有已组试卷", notes = "查询所有已组试卷")
     @GetMapping(value = "/genPaper/{curPage}/{pageSize}")
-    public ResponseEntity getGenPapers(@ModelAttribute PaperSearchInfo paperSearchInfo,
-                                       @PathVariable int curPage,
-                                       @PathVariable int pageSize) {
-        return new ResponseEntity(paperService.getGenPapers(paperSearchInfo,
-                curPage, pageSize), HttpStatus.OK);
+    public ResponseEntity getGenPapers(@ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable int curPage,
+            @PathVariable int pageSize) {
+        return new ResponseEntity(paperService.getGenPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
 
     /**
@@ -154,7 +164,6 @@ public class PaperController {
         return new ResponseEntity(HttpStatus.OK);
     }
 
-
     /**
      * 获取卷库考试试卷
      *
@@ -165,9 +174,8 @@ public class PaperController {
      */
     @ApiOperation(value = "获取卷库考试试卷", notes = "获取卷库考试试卷")
     @GetMapping(value = "/paper/list/{examId}/{courseCode}/{groupCode}")
-    public List<Paper> listPaperById(@PathVariable String examId,
-                                     @PathVariable String courseCode,
-                                     @PathVariable String groupCode) {
+    public List<Paper> listPaperById(@PathVariable String examId, @PathVariable String courseCode,
+            @PathVariable String groupCode) {
         return paperService.listExamPapers(Long.parseLong(examId), courseCode, groupCode);
     }
 
@@ -182,10 +190,8 @@ public class PaperController {
      */
     @ApiOperation(value = "新增考试试卷", notes = "新增考试试卷")
     @PostMapping(value = "/paper/join/{examId}/{courseCode}/{groupCode}/{paperId}")
-    public ResponseEntity joinExamPaper(@PathVariable String examId,
-                                        @PathVariable String courseCode,
-                                        @PathVariable String groupCode,
-                                        @PathVariable String paperId) {
+    public ResponseEntity joinExamPaper(@PathVariable String examId, @PathVariable String courseCode,
+            @PathVariable String groupCode, @PathVariable String paperId) {
         paperService.joinToExamPaper(Long.parseLong(examId), courseCode, groupCode, paperId);
         return new ResponseEntity(HttpStatus.OK);
     }
@@ -201,10 +207,8 @@ public class PaperController {
      */
     @ApiOperation(value = "删除考试试卷", notes = "删除考试试卷")
     @DeleteMapping(value = "/paper/release/{examId}/{courseCode}/{groupCode}/{paperId}")
-    public ResponseEntity releaseExamPaper(@PathVariable String examId,
-                                           @PathVariable String courseCode,
-                                           @PathVariable String groupCode,
-                                           @PathVariable String paperId) {
+    public ResponseEntity releaseExamPaper(@PathVariable String examId, @PathVariable String courseCode,
+            @PathVariable String groupCode, @PathVariable String paperId) {
 
         paperService.releaseExamPaper(Long.parseLong(examId), courseCode, groupCode, paperId);
         return new ResponseEntity(HttpStatus.OK);
@@ -219,12 +223,10 @@ public class PaperController {
      */
     @ApiOperation(value = "获取考试试卷类型集合", notes = "获取考试试卷类型集合")
     @GetMapping(value = "/paper/groupCode/{examId}/{courseCode}")
-    public Set<String> listGroup(@PathVariable String examId,
-                                 @PathVariable String courseCode) {
+    public Set<String> listGroup(@PathVariable String examId, @PathVariable String courseCode) {
         return paperService.listGroupCodes(Long.parseLong(examId), courseCode);
     }
 
-
     /**
      * 删除考试试卷类型
      *
@@ -235,9 +237,8 @@ public class PaperController {
      */
     @ApiOperation(value = "删除考试试卷类型", notes = "删除考试试卷类型")
     @DeleteMapping(value = "/paper/groupCode/{examId}/{courseCode}/{groupCode}")
-    public ResponseEntity deleteGroup(@PathVariable String examId,
-                                      @PathVariable String courseCode,
-                                      @PathVariable String groupCode) {
+    public ResponseEntity deleteGroup(@PathVariable String examId, @PathVariable String courseCode,
+            @PathVariable String groupCode) {
         paperService.deletGroupCode(Long.parseLong(examId), courseCode, groupCode);
         return new ResponseEntity(HttpStatus.OK);
     }
@@ -265,9 +266,8 @@ public class PaperController {
      */
     @ApiOperation(value = "向导入试卷中的新增试题", notes = "向导入试卷中的新增试题")
     @PostMapping(value = "/paper/addQuestion/{paperId}/{paperDetailId}")
-    public ResponseEntity insertQuestionToPaper(@PathVariable String paperId,
-                                                @PathVariable String paperDetailId,
-                                                @RequestBody Question question) {
+    public ResponseEntity insertQuestionToPaper(@PathVariable String paperId, @PathVariable String paperDetailId,
+            @RequestBody Question question) {
         return new ResponseEntity(paperService.insertQuestionToPaper(paperId, paperDetailId, question), HttpStatus.OK);
 
     }
@@ -277,13 +277,15 @@ public class PaperController {
     public ResponseEntity reduplicateQuestions(@PathVariable String paperId) {
 
         List<PaperDetailUnitExp> allPaperDetailUnitList = new ArrayList<>();
-//        List<String> reduplicateId = new ArrayList<>();
+        // List<String> reduplicateId = new ArrayList<>();
         List<Set<String>> reduplicateId = new ArrayList<>();
 
         PaperExp paperExp = paperService.getPaperDto(paperId);
         List<PaperDetailExp> paperDetailExpList = paperExp.getPaperDetails();
-        for (PaperDetailExp paperDetailExp : paperDetailExpList) {
-            allPaperDetailUnitList.addAll(paperDetailExp.getPaperDetailUnits());
+        if (paperDetailExpList != null && paperDetailExpList.size() > 0) {
+            for (PaperDetailExp paperDetailExp : paperDetailExpList) {
+                allPaperDetailUnitList.addAll(paperDetailExp.getPaperDetailUnits());
+            }
         }
 
         int length = allPaperDetailUnitList.size();
@@ -291,21 +293,26 @@ public class PaperController {
             for (int j = i + 1; j < length; j++) {
                 PaperDetailUnitExp paperDetailUnitExp1 = allPaperDetailUnitList.get(i);
                 PaperDetailUnitExp paperDetailUnitExp2 = allPaperDetailUnitList.get(j);
-                double similarity = StringSimilarityUtils.getSimilarityWithCosinesBySeg(paperDetailUnitExp1.getQuestion().getQuesBody(), paperDetailUnitExp2.getQuestion().getQuesBody());
+                double similarity = StringSimilarityUtils.getSimilarityWithCosinesBySeg(
+                        paperDetailUnitExp1.getQuestion().getQuesBody(),
+                        paperDetailUnitExp2.getQuestion().getQuesBody());
                 if (similarity > reduplicateSimilarity) {
                     boolean found = false;
                     for (int k = 0; k < reduplicateId.size(); k++) {
-                        if (reduplicateId.get(k).contains(paperDetailUnitExp1.getId()) && !reduplicateId.get(k).contains(paperDetailUnitExp2.getId())) {
+                        if (reduplicateId.get(k).contains(paperDetailUnitExp1.getId())
+                                && !reduplicateId.get(k).contains(paperDetailUnitExp2.getId())) {
                             found = true;
                             reduplicateId.get(k).add(paperDetailUnitExp2.getId());
                             break;
-                        } else if (!reduplicateId.get(k).contains(paperDetailUnitExp1.getId()) && reduplicateId.get(k).contains(paperDetailUnitExp2.getId())) {
+                        } else if (!reduplicateId.get(k).contains(paperDetailUnitExp1.getId())
+                                && reduplicateId.get(k).contains(paperDetailUnitExp2.getId())) {
                             found = true;
                             reduplicateId.get(k).add(paperDetailUnitExp1.getId());
                             break;
-                        } else if (reduplicateId.get(k).contains(paperDetailUnitExp1.getId()) && reduplicateId.get(k).contains(paperDetailUnitExp2.getId())) {
+                        } else if (reduplicateId.get(k).contains(paperDetailUnitExp1.getId())
+                                && reduplicateId.get(k).contains(paperDetailUnitExp2.getId())) {
                             found = true;
-                            //两个题都在分组里,就不加了
+                            // 两个题都在分组里,就不加了
                             break;
                         }
                     }
@@ -317,8 +324,8 @@ public class PaperController {
                         redupSet.add(paperDetailUnitExp2.getId());
                         reduplicateId.add(redupSet);
                     }
-//                    reduplicateId.add(paperDetailUnitExp1.getId());
-//                    reduplicateId.add(paperDetailUnitExp2.getId());
+                    // reduplicateId.add(paperDetailUnitExp1.getId());
+                    // reduplicateId.add(paperDetailUnitExp2.getId());
                 }
             }
         }
@@ -346,14 +353,15 @@ public class PaperController {
      */
     @ApiOperation(value = "查询用于选题的试题列表", notes = "查询用于选题的试题列表")
     @GetMapping(value = "/paper/listQuestion/{paperId}/{curPage}/{pageSize}")
-    public ResponseEntity listQuestionforSelect(@PathVariable String paperId,
-                                                @PathVariable int curPage,
-                                                @PathVariable int pageSize,
-                                                @RequestParam(name = "quesType") String quesType) {
+    public ResponseEntity listQuestionforSelect(@PathVariable String paperId, @PathVariable int curPage,
+            @PathVariable int pageSize, @RequestParam(name = "quesType") String quesType) {
         if (StringUtils.isNotEmpty(quesType)) {
-            return new ResponseEntity(paperService.listQuestionforSelect(paperId, curPage, pageSize, QuesStructType.valueOf(quesType)), HttpStatus.OK);
+            return new ResponseEntity(
+                    paperService.listQuestionforSelect(paperId, curPage, pageSize, QuesStructType.valueOf(quesType)),
+                    HttpStatus.OK);
         } else {
-            return new ResponseEntity(paperService.listQuestionforSelect(paperId, curPage, pageSize, null), HttpStatus.OK);
+            return new ResponseEntity(paperService.listQuestionforSelect(paperId, curPage, pageSize, null),
+                    HttpStatus.OK);
         }
 
     }
@@ -368,10 +376,10 @@ public class PaperController {
      */
     @ApiOperation(value = "向导入试卷中的新增试题", notes = "向导入试卷中的新增试题")
     @PostMapping(value = "/paper/selectQuestions/{paperId}/{paperDetailId}")
-    public ResponseEntity selectQuestionsToPaper(@PathVariable String paperId,
-                                                 @PathVariable String paperDetailId,
-                                                 @RequestBody List<Question> questions) {
-        return new ResponseEntity(paperService.selectQuestionsToPaper(paperId, paperDetailId, questions), HttpStatus.OK);
+    public ResponseEntity selectQuestionsToPaper(@PathVariable String paperId, @PathVariable String paperDetailId,
+            @RequestBody List<Question> questions) {
+        return new ResponseEntity(paperService.selectQuestionsToPaper(paperId, paperDetailId, questions),
+                HttpStatus.OK);
 
     }
 

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

@@ -1,6 +1,5 @@
 package com.qmth.cqb.paper.web;
 
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -10,9 +9,11 @@ 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.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
 import com.qmth.cqb.paper.model.PaperDetailUnit;
 import com.qmth.cqb.paper.service.PaperDetailUnitService;
 import com.qmth.cqb.question.model.Question;
@@ -25,67 +26,72 @@ import io.swagger.annotations.ApiOperation;
 @RestController
 @RequestMapping("${api_cqb}/")
 public class PaperDetailUnitController {
-	@Autowired
-	PaperDetailUnitService  unitService;
 
-	/**
-	 * 获取单个小题对应的试题
-	 * @param unit_id
-	 * @return
-	 */
-	@ApiOperation(value="获取小题对应的试题",notes="获取小题对应的试题")
-	@GetMapping(value = "/paperDetailUnit/question/{unit_id}")
-	public Question getQuestionByUnitId(String unit_id){
-		return unitService.getQuestionByPaperDetailUnitId(unit_id);
-	}
+    @Autowired
+    PaperDetailUnitService unitService;
 
-	/**
-	 * 获取小题
-	 * @param unit_id
-	 * @return
-	 */
-	@ApiOperation(value="获取小题",notes="获取小题")
-	@GetMapping(value = "/paperDetailUnit/{unit_id}")
-	public PaperDetailUnit getPaperDetailUnitId(@PathVariable String unit_id){
-		return unitService.findById(unit_id);
-	}
+    /**
+     * 获取单个小题对应的试题
+     * 
+     * @param unit_id
+     * @return
+     */
+    @ApiOperation(value = "获取小题对应的试题", notes = "获取小题对应的试题")
+    @GetMapping(value = "/paperDetailUnit/question/{unit_id}")
+    public Question getQuestionByUnitId(String unit_id) {
+        return unitService.getQuestionByPaperDetailUnitId(unit_id);
+    }
 
+    /**
+     * 获取小题
+     * 
+     * @param unit_id
+     * @return
+     */
+    @ApiOperation(value = "获取小题", notes = "获取小题")
+    @GetMapping(value = "/paperDetailUnit/{unit_id}")
+    public PaperDetailUnit getPaperDetailUnitId(@PathVariable String unit_id) {
+        return unitService.findById(unit_id);
+    }
 
-	/**
-	 * 更新小题信息
-	 * @param pdu
-	 * @return
-	 */
-	@ApiOperation(value="更新小题",notes="更新小题")
-	@PutMapping(value = "/paperDetailUnit")
-	public ResponseEntity updatePaperDetailUnit(@ModelAttribute PaperDetailUnit pdu){
-		PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu);
-		return new ResponseEntity(pdUnit,HttpStatus.OK);
+    /**
+     * 更新小题信息
+     * 
+     * @param pdu
+     * @return
+     */
+    @ApiOperation(value = "更新小题", notes = "更新小题")
+    @PutMapping(value = "/paperDetailUnit")
+    public ResponseEntity updatePaperDetailUnit(@RequestBody PaperDetailUnitExp pdu) {
+        PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu);
+        return new ResponseEntity(pdUnit, HttpStatus.OK);
 
-	}
+    }
 
-	/**
-	 * 新增小题
-	 * @param pdu
-	 * @return
-	 */
-	@ApiOperation(value="新增小题",notes="新增小题")
-	@PostMapping(value = "/paperDetailUnit")
-	public ResponseEntity addPaperDetailUnit(@ModelAttribute PaperDetailUnit pdu){
-		PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu);
-		return new ResponseEntity(pdUnit,HttpStatus.OK);
-	}
+    /**
+     * 新增小题
+     * 
+     * @param pdu
+     * @return
+     */
+    @ApiOperation(value = "新增小题", notes = "新增小题")
+    @PostMapping(value = "/paperDetailUnit")
+    public ResponseEntity addPaperDetailUnit(@RequestBody PaperDetailUnitExp pdu) {
+        PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu);
+        return new ResponseEntity(pdUnit, HttpStatus.OK);
+    }
 
-	/**
-	 * 删除小题
-	 * @param unit_id
-	 * @return
-	 */
-	@ApiOperation(value="删除小题",notes="删除小题")
-	@DeleteMapping(value = "/paperDetailUnit/{unit_id}")
-	public ResponseEntity removePaperDetailUnit(@PathVariable String unit_id){
-		unitService.deletePaperDetailUnit(unit_id);
-		return new ResponseEntity(HttpStatus.OK);
-	}
+    /**
+     * 删除小题
+     * 
+     * @param unit_id
+     * @return
+     */
+    @ApiOperation(value = "删除小题", notes = "删除小题")
+    @DeleteMapping(value = "/paperDetailUnit/{unit_id}")
+    public ResponseEntity removePaperDetailUnit(@PathVariable String unit_id) {
+        unitService.deletePaperDetailUnit(unit_id);
+        return new ResponseEntity(HttpStatus.OK);
+    }
 
 }