Explorar el Código

提交合并音频试题代码

chenken hace 8 años
padre
commit
de96d08db9

+ 4 - 3
cqb-base/src/main/java/com/qmth/cqb/base/dao/CourseRepo.java

@@ -11,8 +11,9 @@ import org.springframework.data.repository.query.QueryByExampleExecutor;
  * Created by songyue on 16/12/26.
  */
 public interface CourseRepo extends MongoRepository<Course, String>,QueryByExampleExecutor<Course> {
-    List<Course> findByCourseNameLike(String courseName);
 
-    Course findByCourseNo(String courseNo);
-    
+    Course findFirstByCodeAndOrgId(String code,Long orgId);
+
+    Course findFirstByCode(String courseNo);
+
 }

+ 0 - 42
cqb-base/src/main/java/com/qmth/cqb/base/model/Book.java

@@ -1,42 +0,0 @@
-package com.qmth.cqb.base.model;
-
-import java.io.Serializable;
-
-/**
- * Created by songyue on 16/12/26.
- */
-public class Book implements Serializable{
-    private static final long serialVersionUID = 6831533644114592861L;
-    private String bookNo;
-
-    private String bookName;
-
-    private String status;
-
-    public String getBookNo() {
-        return bookNo;
-    }
-
-    public void setBookNo(String bookNo) {
-        this.bookNo = bookNo;
-    }
-
-    public String getBookName() {
-        return bookName;
-    }
-
-    public void setBookName(String bookName) {
-        this.bookName = bookName;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Book() {
-    }
-}

+ 35 - 25
cqb-base/src/main/java/com/qmth/cqb/base/model/Course.java

@@ -1,8 +1,11 @@
 package com.qmth.cqb.base.model;
 
+import cn.com.qmth.examcloud.common.dto.core.enums.CourseLevel;
 import org.springframework.data.annotation.Id;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -11,24 +14,23 @@ import java.util.Map;
  */
 public class Course implements Serializable{
     private static final long serialVersionUID = 7794074467488869343L;
+
     @Id
     private String id;
 
-    private String courseNo;
+    private String code;
 
-    private String courseName;
+    private String name;
 
-    private List<Book> book;
+    private Long orgId;
 
-    private String createTime;//创建时间
+    private CourseLevel level;
 
-    private String updateTime;//更新时间
+    private String createTime;
 
-    private Map params;
+    private String updateTime;
 
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
-    }
+    private String enable;
 
     public String getId() {
         return id;
@@ -38,36 +40,36 @@ public class Course implements Serializable{
         this.id = id;
     }
 
-    public String getCourseNo() {
-        return courseNo;
+    public String getCode() {
+        return code;
     }
 
-    public void setCourseNo(String courseNo) {
-        this.courseNo = courseNo;
+    public void setCode(String code) {
+        this.code = code;
     }
 
-    public String getCourseName() {
-        return courseName;
+    public String getName() {
+        return name;
     }
 
-    public void setCourseName(String courseName) {
-        this.courseName = courseName;
+    public void setName(String name) {
+        this.name = name;
     }
 
-    public List<Book> getBook() {
-        return book;
+    public Long getOrgId() {
+        return orgId;
     }
 
-    public void setBook(List<Book> book) {
-        this.book = book;
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
     }
 
-    public Map getParams() {
-        return params;
+    public CourseLevel getLevel() {
+        return level;
     }
 
-    public void setParams(Map params) {
-        this.params = params;
+    public void setLevel(CourseLevel level) {
+        this.level = level;
     }
 
     public String getCreateTime() {
@@ -86,6 +88,14 @@ public class Course implements Serializable{
         this.updateTime = updateTime;
     }
 
+    public String getEnable() {
+        return enable;
+    }
+
+    public void setEnable(String enable) {
+        this.enable = enable;
+    }
+
     public Course() {
     }
 }

+ 1 - 1
cqb-base/src/main/java/com/qmth/cqb/base/web/CourseController.java

@@ -119,7 +119,7 @@ public class CourseController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @GetMapping(value = "/course/{courseNo}")
     public ResponseEntity getCourseByNo(@PathVariable String courseNo) {
-        return new ResponseEntity(courseRepo.findByCourseNo(courseNo), HttpStatus.OK);
+        return new ResponseEntity(courseRepo.findFirstByCode(courseNo), HttpStatus.OK);
     }
 
     /**

+ 59 - 6
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -55,6 +55,7 @@ import com.qmth.cqb.paper.model.PaperDetailUnit;
 import com.qmth.cqb.paper.model.PaperSearchInfo;
 import com.qmth.cqb.question.dao.QuesBakRepo;
 import com.qmth.cqb.question.dao.QuesRepo;
+import com.qmth.cqb.question.dao.QuestionAudioRepo;
 import com.qmth.cqb.question.model.QuesOption;
 import com.qmth.cqb.question.model.Question;
 import com.qmth.cqb.question.model.QuestionAudio;
@@ -115,6 +116,9 @@ public class PaperService {
     @Autowired
     private QuestionAudioServiceImpl questionAudioService;
     
+    @Autowired
+	private QuestionAudioRepo questionAudioRepo;
+    
     @Value("${upyun.radioType}")
 	protected String radioType;
     
@@ -939,13 +943,13 @@ public class PaperService {
     			if(messageMap != null){
     				return messageMap;
     			}
-    			continue;
+    			messageMap = new HashMap<String, String>();
 			}else {
 				messageMap.put("errorMsg", fileName + "文件名称不对,无法识别为题干或选项 ");
 				return messageMap;
 			}
     	}
-    	messageMap.put("message", "OK!");
+    	messageMap.put("errorMsg", "OK");
     	return messageMap;
     }
     
@@ -1022,13 +1026,14 @@ public class PaperService {
     		outputStream.close();
     		//上传到又拍云
     		UpYun upYun = new UpYun(bucketName, userName, password);
-    		upYun.writeFile(upyunRadioPath, mp3File,true);
+    		upYun.writeFile(upyunRadioPath+mp3FileNameString, mp3File,true);
     		//删除服务器上文件
     		mp3File.delete();
     	}
     	//删除服务器文件夹
     	mp3Directory.delete();
     	saveQuestionAudio(files, paperId, accessUser);
+    	appendAudioTag(files,paperId);
     }
     
     /**
@@ -1039,11 +1044,12 @@ public class PaperService {
      */
     public void saveQuestionAudio(List<MultipartFile> files,String paperId,AccessUser accessUser){
     	for(MultipartFile file:files){
-    		String fileName = paperId + "_" + file.getOriginalFilename();
     		String questionId = ""; 
     		String numbers[] = file.getOriginalFilename().split("_");
     		//根据试卷id,查询该试卷
         	Paper paper = paperRepo.findOne(paperId);
+        	paper.setHasAudioQuestion(true);
+        	paperRepo.save(paper);
         	//根据试卷查询所有的小题
         	List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaper(paper);
         	for(PaperDetailUnit paperDetailUnit:paperDetailUnits){
@@ -1051,9 +1057,56 @@ public class PaperService {
         			questionId = paperDetailUnit.getQuestion().getId();
         		}
         	}
-        	String fileUrl = upyunRadioPath + fileName;
-        	QuestionAudio questionAudio = new QuestionAudio(questionId, fileName, fileUrl);
+        	QuestionAudio questionAudio = new QuestionAudio();
+        	questionAudio = questionAudioService.findByQuestionIdAndFileName(questionId, file.getOriginalFilename());
+        	if(questionAudio != null){
+        		questionAudioRepo.delete(questionAudio);
+        	}
+        	String fileUrl = upyunRadioPath + questionId+ "_" + file.getOriginalFilename();
+        	questionAudio = new QuestionAudio(paperId,questionId, file.getOriginalFilename(), fileUrl);
         	questionAudioService.saveQuestionAudio(questionAudio, accessUser);
     	}
     }
+    
+    /**
+     * 音频文件插入到标签
+     * @param files
+     * @param paperId
+     */
+    public void appendAudioTag(List<MultipartFile> files,String paperId){
+    	for(MultipartFile file:files){
+    		QuestionAudio questionAudio = questionAudioService.findByPaperIdAndFileName(paperId, file.getOriginalFilename());
+    		if(questionAudio == null){
+    			continue;
+    		}
+    		String numbers[] = file.getOriginalFilename().split("_");
+    		Question question = quesRepo.findOne(questionAudio.getQuestionId());
+    		question.setHasAudio(true);
+    		if(numbers[1].equals("1")){
+    			//Question question = quesRepo.findOne(questionAudio.getQuestionId());
+    			String quesBody = question.getQuesBody();
+    			String quesBodyNew = quesBody.substring(0, quesBody.lastIndexOf("</p>")) + "<a id=\\\"" + 
+    								 file.getOriginalFilename() + "\\\" name=\\\"" + file.getOriginalFilename() + "\\\"></a></p>";
+    			question.setQuesBody(quesBodyNew);
+    			quesRepo.save(question);
+    		}else {
+				//Question question = quesRepo.findOne(questionAudio.getQuestionId());
+				List<QuesOption> quesOptions = question.getQuesOptions();
+				List<QuesOption> quesOptionsNew = new ArrayList<QuesOption>();
+				for(QuesOption quesOption:quesOptions){
+					if(quesOption.getNumber().equals(CommonUtils.characterToNumber(numbers[2]).toString())){
+						String optionBody = quesOption.getOptionBody();
+						String optionBodyNew = optionBody.substring(0, optionBody.lastIndexOf("</p>")) + "<a id=\\\"" + 
+								 file.getOriginalFilename() + "\\\" name=\\\"" + file.getOriginalFilename() + "\\\"></a></p>";
+						quesOption.setOptionBody(optionBodyNew);
+					}
+					quesOptionsNew.add(quesOption);
+				}
+				question.setQuesOptions(quesOptionsNew);
+				quesRepo.save(question);
+			}
+    	}
+    	
+    }
+    
 }

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

@@ -581,9 +581,10 @@ public class PaperController {
     	AccessUser user = (AccessUser) request.getAttribute("accessUser");
     	try {
 			paperService.uploadRadio(files, paperId, null);
+			return new ResponseEntity(HttpStatus.OK);
 		} catch (IOException e) {
 			e.printStackTrace();
+			return new ResponseEntity(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
 		}
-    	return null;
     }
 }

+ 131 - 146
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperDetailController.java

@@ -1,146 +1,131 @@
-package com.qmth.cqb.paper.web;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-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.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-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 org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
-
-import com.qmth.cqb.paper.dao.PaperDetailRepo;
-import com.qmth.cqb.paper.dao.PaperRepo;
-import com.qmth.cqb.paper.model.PaperDetail;
-import com.qmth.cqb.paper.model.PaperDetailUnit;
-import com.qmth.cqb.paper.service.PaperDetailService;
-import com.qmth.cqb.paper.service.PaperService;
-
-import cn.com.qmth.examcloud.common.uac.annotation.Uac;
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-import cn.com.qmth.examcloud.common.uac.enums.RoleMeta;
-import cn.com.qmth.examcloud.common.uac.enums.UacPolicy;
-import io.swagger.annotations.ApiOperation;
-
-/**
- * Created by songyue on 16/12/28.
- */
-@RestController
-@RequestMapping("${api_cqb}/")
-public class PaperDetailController {
-
-    @Autowired
-    PaperDetailService paperDetailService;
-
-    @Autowired
-    PaperService paperService;
-    
-    @Autowired
-    PaperDetailRepo paperDetailRepo;
-
-    /**
-     * 获取大题对应的小题
-     * 
-     * @param detail_id
-     * @return
-     */
-    @ApiOperation(value = "获取大题对应的小题", notes = "获取大题对应的小题")
-    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
-    @GetMapping(value = "/paperDetail/units/{detail_id}")
-    public List<PaperDetailUnit> getUnitsByPaperDetailId(String detail_id) {
-        return paperDetailService.getUnitsByPaperDetailId(detail_id);
-    }
-
-    /**
-     * 获取大题
-     * 
-     * @param detail_id
-     * @return
-     */
-    @ApiOperation(value = "获取大题", notes = "获取大题")
-    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
-    @GetMapping(value = "/paperDetail/{detail_id}")
-    public PaperDetail getPaperDetailId(@PathVariable String detail_id) {
-        return paperDetailService.findById(detail_id);
-    }
-
-    /**
-     * 更新大题信息
-     * 
-     * @param pd
-     * @return
-     */
-    @ApiOperation(value = "更新试卷中的大题", notes = "更新试卷中的大题")
-    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
-    @PostMapping(value = "/updatePaperDetail/{paperId}")
-    public ResponseEntity updatePaperDetail( HttpServletRequest request,
-                                             @PathVariable String paperId, 
-                                             @RequestBody PaperDetail pd) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
-        PaperDetail paperDetail = paperDetailService.savePaperDetail(pd,paperId,user);
-        return new ResponseEntity(paperDetail, HttpStatus.OK);
-
-    }
-
-    /**
-     * 新增大题
-     * 
-     * @param pd
-     * @return
-     */
-    @ApiOperation(value = "新增大题", notes = "新增大题")
-    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
-    @PostMapping(value = "/paperDetail")
-    public ResponseEntity addPaperDetail(@RequestBody PaperDetail pd) {
-        PaperDetail paperDetail = paperDetailRepo.save(pd);
-        return new ResponseEntity(paperDetail, HttpStatus.OK);
-    }
-
-    /**
-     * 删除大题
-     * 
-     * @param detailId
-     * @return
-     */
-    @ApiOperation(value = "删除大题", notes = "删除大题")
-    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
-    @DeleteMapping(value = "/paperDetail/{detailId}")
-    public ResponseEntity removePaperDetail(@PathVariable String detailId) {
-        paperDetailService.deletePaperDetail(detailId);
-        return new ResponseEntity(detailId, HttpStatus.OK);
-    }
-
-    /**
-     * 根据试卷ID得到所有大题
-     * 
-     * @param paperId
-     * @return
-     */
-    @ApiOperation(value = "根据试卷ID得到所有大题", notes = "根据试卷ID得到所有大题")
-    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
-    @GetMapping(value = "/paperDetail/paper/{paperId}")
-    public ResponseEntity getPaperDetailsByPaperId(@PathVariable String paperId) {
-        return new ResponseEntity(paperService.findPaperDetailsById(paperId), HttpStatus.OK);
-    }
-    
-    
-    @ApiOperation(value = "上传音频文件", notes = "上传音频文件")
-    @PostMapping(value = "/uploadRadio")
-    public ResponseEntity uploadRadio(List<MultipartFile> files,HttpServletRequest request){
-    	for(MultipartFile file:files){
-    		System.out.println("名称:"+file.getOriginalFilename()+",大小:"+file.getSize());
-    	}
-    	return null;
-    }
-}
+package com.qmth.cqb.paper.web;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+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.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+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.dao.PaperDetailRepo;
+import com.qmth.cqb.paper.model.PaperDetail;
+import com.qmth.cqb.paper.model.PaperDetailUnit;
+import com.qmth.cqb.paper.service.PaperDetailService;
+import com.qmth.cqb.paper.service.PaperService;
+
+import cn.com.qmth.examcloud.common.uac.annotation.Uac;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+import cn.com.qmth.examcloud.common.uac.enums.RoleMeta;
+import cn.com.qmth.examcloud.common.uac.enums.UacPolicy;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@RestController
+@RequestMapping("${api_cqb}/")
+public class PaperDetailController {
+
+    @Autowired
+    PaperDetailService paperDetailService;
+
+    @Autowired
+    PaperService paperService;
+    
+    @Autowired
+    PaperDetailRepo paperDetailRepo;
+
+    /**
+     * 获取大题对应的小题
+     * 
+     * @param detail_id
+     * @return
+     */
+    @ApiOperation(value = "获取大题对应的小题", notes = "获取大题对应的小题")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @GetMapping(value = "/paperDetail/units/{detail_id}")
+    public List<PaperDetailUnit> getUnitsByPaperDetailId(String detail_id) {
+        return paperDetailService.getUnitsByPaperDetailId(detail_id);
+    }
+
+    /**
+     * 获取大题
+     * 
+     * @param detail_id
+     * @return
+     */
+    @ApiOperation(value = "获取大题", notes = "获取大题")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @GetMapping(value = "/paperDetail/{detail_id}")
+    public PaperDetail getPaperDetailId(@PathVariable String detail_id) {
+        return paperDetailService.findById(detail_id);
+    }
+
+    /**
+     * 更新大题信息
+     * 
+     * @param pd
+     * @return
+     */
+    @ApiOperation(value = "更新试卷中的大题", notes = "更新试卷中的大题")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @PostMapping(value = "/updatePaperDetail/{paperId}")
+    public ResponseEntity updatePaperDetail( HttpServletRequest request,
+                                             @PathVariable String paperId, 
+                                             @RequestBody PaperDetail pd) {
+        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        PaperDetail paperDetail = paperDetailService.savePaperDetail(pd,paperId,user);
+        return new ResponseEntity(paperDetail, HttpStatus.OK);
+
+    }
+
+    /**
+     * 新增大题
+     * 
+     * @param pd
+     * @return
+     */
+    @ApiOperation(value = "新增大题", notes = "新增大题")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @PostMapping(value = "/paperDetail")
+    public ResponseEntity addPaperDetail(@RequestBody PaperDetail pd) {
+        PaperDetail paperDetail = paperDetailRepo.save(pd);
+        return new ResponseEntity(paperDetail, HttpStatus.OK);
+    }
+
+    /**
+     * 删除大题
+     * 
+     * @param detailId
+     * @return
+     */
+    @ApiOperation(value = "删除大题", notes = "删除大题")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @DeleteMapping(value = "/paperDetail/{detailId}")
+    public ResponseEntity removePaperDetail(@PathVariable String detailId) {
+        paperDetailService.deletePaperDetail(detailId);
+        return new ResponseEntity(detailId, HttpStatus.OK);
+    }
+
+    /**
+     * 根据试卷ID得到所有大题
+     * 
+     * @param paperId
+     * @return
+     */
+    @ApiOperation(value = "根据试卷ID得到所有大题", notes = "根据试卷ID得到所有大题")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @GetMapping(value = "/paperDetail/paper/{paperId}")
+    public ResponseEntity getPaperDetailsByPaperId(@PathVariable String paperId) {
+        return new ResponseEntity(paperService.findPaperDetailsById(paperId), HttpStatus.OK);
+    }
+    
+}

+ 1 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuestionAudioRepo.java

@@ -19,5 +19,6 @@ public interface QuestionAudioRepo extends MongoRepository<QuestionAudio, String
 
 	public QuestionAudio findByQuestionIdAndFileName(String questionId,String fileName);
 	
+	public QuestionAudio findByPaperIdAndFileName(String paperId,String fileName);
 }
 

+ 16 - 1
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionAudio.java

@@ -18,10 +18,16 @@ public class QuestionAudio implements Serializable{
 	private static final long serialVersionUID = 7190928471784053821L;
 
 	private String id;
+	
+	/**
+	 * 试卷Id
+	 */
+	private String paperId;
 	/**
 	 * 试题ID
 	 */
 	private String questionId;
+	
 	/**
 	 * 题干OR选项
 	private AudioPositionType audioPositionType;
@@ -44,7 +50,10 @@ public class QuestionAudio implements Serializable{
 	 */
 	private String createUser;
 	
-	public QuestionAudio(String questionId,String fileName,String fileUrl){
+	public QuestionAudio(){}
+	
+	public QuestionAudio(String paperId,String questionId,String fileName,String fileUrl){
+		this.paperId = paperId;
 		this.questionId = questionId;
 		this.fileName = fileName;
 		this.fileUrl = fileUrl;
@@ -86,5 +95,11 @@ public class QuestionAudio implements Serializable{
 	public void setCreateUser(String createUser) {
 		this.createUser = createUser;
 	}
+	public String getPaperId() {
+		return paperId;
+	}
+	public void setPaperId(String paperId) {
+		this.paperId = paperId;
+	}
 	
 }

+ 22 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionSearchCondition.java

@@ -22,6 +22,10 @@ public class QuestionSearchCondition {
 
     private String orgId;
 
+    private String courseLevel;//课程层次
+
+    private String courseMajor;//课程专业
+
     public String getId() {
         return id;
     }
@@ -82,4 +86,22 @@ public class QuestionSearchCondition {
         this.orgId = orgId;
     }
 
+    public String getCourseLevel() {
+        return courseLevel;
+    }
+
+    public void setCourseLevel(String courseLevel) {
+        this.courseLevel = courseLevel;
+    }
+
+    public String getCourseMajor() {
+        return courseMajor;
+    }
+
+    public void setCourseMajor(String courseMajor) {
+        this.courseMajor = courseMajor;
+    }
+
+    public QuestionSearchCondition() {
+    }
 }

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

@@ -189,6 +189,7 @@ public class QuesService {
      * @return
      */
     public Page<Question> findAll(QuestionSearchCondition searchCondition, int curPage, int pageSize) {
+        formatQuesCondition(searchCondition);
         Question ques = BeanCopierUtil.copyProperties(searchCondition, Question.class);
         Page<Question> list = quesRepo.findAll(Example.of(ques), new PageRequest(curPage - 1, pageSize));
         for (Question question : list) {
@@ -197,6 +198,18 @@ public class QuesService {
         return list;
     }
 
+    public void formatQuesCondition(QuestionSearchCondition searchCondition){
+        if(StringUtils.isEmpty(searchCondition.getCourseNo())){
+            searchCondition.setCourseNo(null);
+        }
+        if(StringUtils.isEmpty(searchCondition.getCourseLevel())){
+            searchCondition.setCourseLevel(null);
+        }
+        if(StringUtils.isEmpty(searchCondition.getCourseMajor())){
+            searchCondition.setCourseMajor(null);
+        }
+    }
+
     /**
      * 查询按ID过滤的试题
      *

+ 8 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuestionAudioService.java

@@ -30,5 +30,13 @@ public interface QuestionAudioService {
 	 * @return  
 	 */
 	public QuestionAudio findByQuestionIdAndFileName(String questionId,String fileName);
+	
+	/**
+	 * 根据paperId和文件名称查询对象
+	 * @param paperId
+	 * @param fileName
+	 * @return
+	 */
+	public QuestionAudio findByPaperIdAndFileName(String paperId,String fileName);
 }
 

+ 9 - 1
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/impl/QuestionAudioServiceImpl.java

@@ -29,7 +29,7 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
 	@Override
 	public void saveQuestionAudio(QuestionAudio questionAudio,AccessUser accessUser) {
 		questionAudio.setCreateTime(new Date());
-		questionAudio.setCreateUser(accessUser.getName());
+		//questionAudio.setCreateUser(accessUser.getName());
 		questionAudioRepo.save(questionAudio);
 	}
 
@@ -47,5 +47,13 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
 		return questionAudioRepo.findByQuestionIdAndFileName(questionId,fileName);
 	}
 
+	@Override
+	public QuestionAudio findByPaperIdAndFileName(String paperId,String fileName) {
+		if(StringUtils.isBlank(paperId)||StringUtils.isBlank(fileName)){
+			return null;
+		}
+		return questionAudioRepo.findByPaperIdAndFileName(paperId, fileName);
+	}
+
 }