Forráskód Böngészése

提交题库代码

weiwenhai 6 éve
szülő
commit
1039c6feb2

+ 1 - 1
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/controller/DefaultPaperController.java

@@ -46,7 +46,7 @@ public class DefaultPaperController extends ControllerSupport {
 			throw new StatusException("Q-016038", "用户不存在!");
 		}
 		//组卷
-		String paperId = paperProviderService.genPaper(req.getQuestionIds(), req.getMap(), req.getName(), user);
+		String paperId = paperProviderService.genPaper(req.getQuestionIds(), req.getMap(), req.getName(), user.getRootOrgId().toString(),user.getDisplayName());
 		return new ResponseEntity<Object>(paperId,HttpStatus.OK);
 	}
 	

+ 60 - 0
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/provider/PaperCloudServiceProvider.java

@@ -0,0 +1,60 @@
+package cn.com.qmth.examcloud.core.questions.api.provider;
+
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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 cn.com.qmth.examcloud.commons.base.exception.StatusException;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
+import cn.com.qmth.examcloud.core.questions.api.PaperCloudService;
+import cn.com.qmth.examcloud.core.questions.api.bean.PaperK12Bean;
+import cn.com.qmth.examcloud.core.questions.api.request.GetQuestionListReq;
+import cn.com.qmth.examcloud.core.questions.api.response.GetPaperResp;
+import cn.com.qmth.examcloud.core.questions.service.PaperProviderService;
+import cn.com.qmth.examcloud.question.core.paper.DefaultPaper;
+
+/**
+ * @author 		weiwenhai
+ * @date 		20180.10.10
+ * @company		qmth
+ * @description	试卷对象外部接口增删改查请求接口实现类
+ * @code		017
+ */
+
+@Transactional
+@RestController
+@RequestMapping("${$rmp.cloud.questions}" + "default_paper")
+public class PaperCloudServiceProvider implements PaperCloudService{
+
+	private static final long serialVersionUID = -7354673848303599874L;
+	
+	@Autowired
+	PaperProviderService paperProviderService;
+
+	@ApiOperation(value = "外部接口组卷", notes = "外部接口组卷")
+    @PostMapping("/genPaper")
+	@Override
+	public GetPaperResp genPaper(@RequestBody GetQuestionListReq req) {
+		if(StringUtils.isBlank(req.getOrgId())){
+			throw new StatusException("Q-017043", "orgId is null");
+		}
+		if(StringUtils.isBlank(req.getUserName())){
+			throw new StatusException("Q-017046", "userName is null");
+		}
+		//组卷
+		String paperId = paperProviderService.genPaper(req.getQuestionIds(), req.getMap(), req.getName(), req.getOrgId(),req.getUserName());
+		GetPaperResp resp = new GetPaperResp();
+		resp.setPaperId(paperId);
+		return resp;
+	}
+
+}

+ 1 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperProviderService.java

@@ -20,7 +20,7 @@ public interface PaperProviderService {
 	 * @param questionIds
 	 * @return
 	 */
-	public String genPaper(Set<String> questionIds,Map<String, PaperK12Bean> map,String paperName,User user);
+	public String genPaper(Set<String> questionIds,Map<String, PaperK12Bean> map,String paperName,String orgId,String userName);
 	
 	/**
 	 * 根据试卷id查询试卷

+ 3 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigProviderServiceImpl.java

@@ -243,7 +243,9 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 					//设置音频播放次数
 					if(paperDetailUnit.getQuestion().getHasAudio() != null && paperDetailUnit.getQuestion().getHasAudio() == true){
 						AudioTimeConfig audioTimeConfig = audioTimeConfigRepo.findOne(Example.of(new AudioTimeConfig(examId,courseCode,groupCode,paperDetailUnit.getQuestion().getId())));
-						defaultQuestionStructureWrapper.setPlayedTimes(audioTimeConfig.getPlayTime());
+						if(audioTimeConfig != null){
+							defaultQuestionStructureWrapper.setPlayedTimes(audioTimeConfig.getPlayTime());
+						}
 					}
 				}
 				//生成新的题单元包装器

+ 6 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperProviderServiceImpl.java

@@ -58,7 +58,7 @@ public class PaperProviderServiceImpl implements PaperProviderService{
     ExtractConfigProviderServiceImpl extractConfigProviderServiceImpl;
 	
 	@Override
-	public String genPaper(Set<String> questionIds,Map<String, PaperK12Bean> map,String paperName,User user) {
+	public String genPaper(Set<String> questionIds,Map<String, PaperK12Bean> map,String paperName,String orgId,String userName){
 		if(questionIds == null || questionIds.size()<1){
 			throw new StatusException("Q-014038", "questionIds is null");
 		}
@@ -72,7 +72,7 @@ public class PaperProviderServiceImpl implements PaperProviderService{
 			throw new StatusException("Q-014041", "根据试题id的集合没有查询到试题结合");
 		}
 		//构建试卷对象
-		Paper paper = initPaper(paperName,user);
+		Paper paper = initPaper(paperName,orgId,userName);
 		//构建大题对象,未设置	
 		PaperDetail paperDetail = initPaperDetail(paper);
 		//构建包装试题对象
@@ -104,22 +104,22 @@ public class PaperProviderServiceImpl implements PaperProviderService{
 	 * @param user
 	 * @return
 	 */
-	private Paper initPaper(String paperName, User user) {
+	private Paper initPaper(String paperName ,String orgId,String userName) {
 		Paper paper = new Paper();
 		//初始化默认课程
 		Course course = new Course();
 		course.setId("k12");
 		course.setId("k12");
 		course.setName("k12");
-		course.setOrgId(user.getRootOrgId().toString());
+		course.setOrgId(orgId);
 		course.setCreateTime(CommonUtils.getCurDateTime());
 		course.setEnable("true");
 		paper.setCourse(course);
 		paper.setName(paperName);
         paper.setTitle(paperName);
         paper.setPaperType(PaperType.GENERATE);
-        paper.setOrgId(user.getRootOrgId().toString());
-        paper.setCreator(user.getDisplayName());
+        paper.setOrgId(orgId);
+        paper.setCreator(userName);
         paper.setCreateTime(CommonUtils.getCurDateTime());
 		return paper;
 	}