Bladeren bron

提交分数代码。

weiwenhai 6 jaren geleden
bovenliggende
commit
4c1bf01645

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

@@ -51,6 +51,7 @@ import cn.com.qmth.examcloud.question.core.question.DefaultQuestion;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestionOption;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestionStructure;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestionUnit;
+import cn.com.qmth.examcloud.question.core.question.QuestionOption;
 import cn.com.qmth.examcloud.question.core.question.QuestionType;
 
 /**
@@ -231,7 +232,7 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 			PaperDetail paperDetail = paperDetails.get(i);
 			DefaultQuestionGroup defaultQuestionGroup = new DefaultQuestionGroup();
 			defaultQuestionGroup.setGroupName(paperDetail.getName());
-			defaultQuestionGroup.setGroupScore(paperDetail.getScore().floatValue());
+			defaultQuestionGroup.setGroupScore(paperDetail.getScore());
 			//生成新的题包装器集合
 			List<DefaultQuestionStructureWrapper> questionWrapperList = new ArrayList<DefaultQuestionStructureWrapper>();
 			//获取原小题的集合
@@ -241,7 +242,7 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 				DefaultQuestionStructureWrapper defaultQuestionStructureWrapper = new DefaultQuestionStructureWrapper();
 				defaultQuestionStructureWrapper.setQuestionId(paperDetailUnit.getQuestion().getId());
 				defaultQuestionStructureWrapper.setVersion(CommonUtils.QUESTION_VERSION);
-				defaultQuestionStructureWrapper.setQuestionScore(paperDetailUnit.getScore().floatValue());
+				defaultQuestionStructureWrapper.setQuestionScore(paperDetailUnit.getScore());
 				defaultQuestionStructureWrapper.setTimeLimit(paperDetailUnit.getTimeLimit());
 				if(examId != null){
 					//设置音频播放次数
@@ -298,7 +299,7 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 			}
 		}
 		defaultQuestionUnitWrapper.setOptionPermutation(optionPermutation);
-		defaultQuestionUnitWrapper.setQuestionScore(score.floatValue());
+		defaultQuestionUnitWrapper.setQuestionScore(score);
 		defaultQuestionUnitWrapper.setQuestionType(getByOldType(question.getQuestionType()));
 		return defaultQuestionUnitWrapper;
 	}
@@ -467,7 +468,6 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 	 * @param groupCode
 	 * @param question
 	 */
-	@SuppressWarnings("unchecked")
 	private void appendAudioFlag(DefaultQuestion defaultQuestion,String examId,String courseCode,String groupCode,Question question){
 		if(question.getHasAudio() != null && question.getHasAudio() == true){
 			//1.判断questionDto是否含有音频,如果有添加音频播放次数
@@ -484,10 +484,10 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 					quesBody = defaultQuestionUnit.getBody();
 					defaultQuestionUnit.setBody(buildBody(quesBody, audioTimeConfig.getPlayTime()));
 					if(defaultQuestionUnit.getQuestionType() == QuestionType.SINGLE_CHOICE || defaultQuestionUnit.getQuestionType() == QuestionType.MULTIPLE_CHOICE){
-						List<DefaultQuestionOption> questionOptionList = (List<DefaultQuestionOption>) defaultQuestionUnit.getQuestionOptionList();
+						List<QuestionOption> questionOptionList = defaultQuestionUnit.getQuestionOptionList();
 						if(questionOptionList != null && questionOptionList.size()>0){
 							for(int i = 0;i<questionOptionList.size();i++){
-								DefaultQuestionOption defaultQuestionOption = questionOptionList.get(i);
+								QuestionOption defaultQuestionOption = questionOptionList.get(i);
 								defaultQuestionOption.setBody(buildBody(defaultQuestionOption.getBody(), audioTimeConfig.getPlayTime()));
 							}
 						}
@@ -504,10 +504,10 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 					quesBody = defaultQuestionUnit.getBody();
 					defaultQuestionUnit.setBody(buildBody(quesBody, null));
 					if(defaultQuestionUnit.getQuestionType() == QuestionType.SINGLE_CHOICE || defaultQuestionUnit.getQuestionType() == QuestionType.MULTIPLE_CHOICE){
-						List<DefaultQuestionOption> questionOptionList = (List<DefaultQuestionOption>) defaultQuestionUnit.getQuestionOptionList();
+						List<QuestionOption> questionOptionList = defaultQuestionUnit.getQuestionOptionList();
 						if(questionOptionList != null && questionOptionList.size()>0){
 							for(int i = 0;i<questionOptionList.size();i++){
-								DefaultQuestionOption defaultQuestionOption = questionOptionList.get(i);
+								QuestionOption defaultQuestionOption = questionOptionList.get(i);
 								defaultQuestionOption.setBody(buildBody(defaultQuestionOption.getBody(), null));
 							}
 						}

+ 16 - 16
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuestionProviderServiceImpl.java

@@ -30,7 +30,9 @@ import cn.com.qmth.examcloud.question.core.question.DefaultQuestion;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestionOption;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestionStructure;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestionUnit;
+import cn.com.qmth.examcloud.question.core.question.QuestionOption;
 import cn.com.qmth.examcloud.question.core.question.QuestionType;
+import cn.com.qmth.examcloud.question.core.question.QuestionUnit;
 
 /**
  * @author 		weiwenhai
@@ -48,7 +50,6 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 	@Autowired
 	MongoTemplate mongoTemplate;
 	
-	@SuppressWarnings("unchecked")
 	@Override
 	public String save(DefaultQuestion defaultQuestion) {
 		Question question = new Question();
@@ -74,12 +75,12 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 		question.setProperties(defaultQuestion.getProperties());
 		DefaultQuestionStructure defaultQuestionStructure = (DefaultQuestionStructure) defaultQuestion.getMasterVersion();
 		//判断试题单元对象
-		List<DefaultQuestionUnit> questionUnitList  = (List<DefaultQuestionUnit>) defaultQuestionStructure.getQuestionUnitList();
+		List<QuestionUnit> questionUnitList  = defaultQuestionStructure.getQuestionUnitList();
 		if(questionUnitList == null || questionUnitList.size()<1){
 			throw new StatusException("Q-012033", "试题单元对象为空");
 		}
 		if(questionUnitList.size()==1){
-			DefaultQuestionUnit defaultQuestionUnit = questionUnitList.get(0);
+			QuestionUnit defaultQuestionUnit = questionUnitList.get(0);
 			//判断试题题型
 			if(defaultQuestionUnit.getQuestionType() == null){
 				throw new StatusException("Q-012039", "试题单元中题型为空");
@@ -94,7 +95,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 			question.setQuestionType(type);
 			//如果是选择题,判断选项
 			if(defaultQuestionUnit.getQuestionType() == QuestionType.SINGLE_CHOICE || defaultQuestionUnit.getQuestionType() == QuestionType.MULTIPLE_CHOICE){
-				List<DefaultQuestionOption> questionOptionList = (List<DefaultQuestionOption>) defaultQuestionUnit.getQuestionOptionList();
+				List<QuestionOption> questionOptionList = defaultQuestionUnit.getQuestionOptionList();
 				if(questionOptionList == null || questionOptionList.size()<1){
 					throw new StatusException("Q-012049", "试题单元中选项为空");
 				}
@@ -111,7 +112,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 			question.setQuestionType(QuesStructType.NESTED_ANSWER_QUESTION);
 			//生成子题
 			List<Question> subList = new ArrayList<Question>();
-			for(DefaultQuestionUnit defaultQuestionUnit:questionUnitList){
+			for(QuestionUnit defaultQuestionUnit:questionUnitList){
 				Question subQues = new Question();
 				subQues.setId(UUID.randomUUID().toString());
 				subQues.setDifficulty("中");
@@ -131,7 +132,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 				subQues.setQuestionType(type);
 				//如果是选择题,判断选项
 				if(defaultQuestionUnit.getQuestionType() == QuestionType.SINGLE_CHOICE || defaultQuestionUnit.getQuestionType() == QuestionType.MULTIPLE_CHOICE){
-					List<DefaultQuestionOption> questionOptionList = (List<DefaultQuestionOption>) defaultQuestionUnit.getQuestionOptionList();
+					List<QuestionOption> questionOptionList = defaultQuestionUnit.getQuestionOptionList();
 					if(questionOptionList == null || questionOptionList.size()<1){
 						throw new StatusException("Q-012049", "试题单元中选项为空");
 					}
@@ -166,11 +167,11 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 		}
 	}
 	
-	//构建选择题选项
-	private List<QuesOption> buildOptions(List<DefaultQuestionOption> questionOptionList,String[] rightAnswer){
+	//构建选择题选项							  
+	private List<QuesOption> buildOptions(List<QuestionOption> questionOptionList,String[] rightAnswer){
 		List<QuesOption> quesOptions = new ArrayList<QuesOption>();
 		for(int i=0;i<questionOptionList.size();i++){
-			DefaultQuestionOption defaultQuestionOption = questionOptionList.get(i);
+			QuestionOption defaultQuestionOption = questionOptionList.get(i);
 			QuesOption option = new QuesOption();
 			option.setNumber(String.valueOf(i+1));
 			option.setOptionBody(defaultQuestionOption.getBody());
@@ -185,7 +186,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 	}
 	
 	//构建答案
-	private String buildAnswer(DefaultQuestionUnit defaultQuestionUnit){
+	private String buildAnswer(QuestionUnit defaultQuestionUnit){
 		QuestionType questionType = defaultQuestionUnit.getQuestionType();
 		String answer = "";
 		String[] answers = defaultQuestionUnit.getRightAnswer();
@@ -422,7 +423,6 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 		return rightAnswer;
 	}
 
-	@SuppressWarnings("unchecked")
 	@Override
 	public String saveList(List<DefaultQuestion> defaultQuestions) {
 		if(defaultQuestions != null && defaultQuestions.size()>0){
@@ -451,12 +451,12 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 				question.setProperties(defaultQuestion.getProperties());
 				DefaultQuestionStructure defaultQuestionStructure = (DefaultQuestionStructure) defaultQuestion.getMasterVersion();
 				//判断试题单元对象
-				List<DefaultQuestionUnit> questionUnitList  = (List<DefaultQuestionUnit>) defaultQuestionStructure.getQuestionUnitList();
+				List<QuestionUnit> questionUnitList  = defaultQuestionStructure.getQuestionUnitList();
 				if(questionUnitList == null || questionUnitList.size()<1){
 					throw new StatusException("Q-012033", "试题单元对象为空");
 				}
 				if(questionUnitList.size()==1){
-					DefaultQuestionUnit defaultQuestionUnit = questionUnitList.get(0);
+					QuestionUnit defaultQuestionUnit = questionUnitList.get(0);
 					//判断试题题型
 					if(defaultQuestionUnit.getQuestionType() == null){
 						throw new StatusException("Q-012039", "试题单元中题型为空");
@@ -471,7 +471,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 					question.setQuestionType(type);
 					//如果是选择题,判断选项
 					if(defaultQuestionUnit.getQuestionType() == QuestionType.SINGLE_CHOICE || defaultQuestionUnit.getQuestionType() == QuestionType.MULTIPLE_CHOICE){
-						List<DefaultQuestionOption> questionOptionList = (List<DefaultQuestionOption>) defaultQuestionUnit.getQuestionOptionList();
+						List<QuestionOption> questionOptionList = defaultQuestionUnit.getQuestionOptionList();
 						if(questionOptionList == null || questionOptionList.size()<1){
 							throw new StatusException("Q-012049", "试题单元中选项为空");
 						}
@@ -488,7 +488,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 					question.setQuestionType(QuesStructType.NESTED_ANSWER_QUESTION);
 					//生成子题
 					List<Question> subList = new ArrayList<Question>();
-					for(DefaultQuestionUnit defaultQuestionUnit:questionUnitList){
+					for(QuestionUnit defaultQuestionUnit:questionUnitList){
 						Question subQues = new Question();
 						subQues.setId(UUID.randomUUID().toString());
 						subQues.setDifficulty("中");
@@ -508,7 +508,7 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 						subQues.setQuestionType(type);
 						//如果是选择题,判断选项
 						if(defaultQuestionUnit.getQuestionType() == QuestionType.SINGLE_CHOICE || defaultQuestionUnit.getQuestionType() == QuestionType.MULTIPLE_CHOICE){
-							List<DefaultQuestionOption> questionOptionList = (List<DefaultQuestionOption>) defaultQuestionUnit.getQuestionOptionList();
+							List<QuestionOption> questionOptionList = defaultQuestionUnit.getQuestionOptionList();
 							if(questionOptionList == null || questionOptionList.size()<1){
 								throw new StatusException("Q-012049", "试题单元中选项为空");
 							}

+ 1 - 1
examcloud-core-questions-starter/src/main/resources/application.properties

@@ -1,4 +1,4 @@
 spring.profiles.active=dev
-$config.server.host=config-host
+config.server.host=config-host
 
 

+ 14 - 12
examcloud-core-questions-starter/src/main/resources/logback-spring.xml

@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration debug="true" scan="true" scanPeriod="30 seconds">
 
+	<springProperty scope="context" name="logLevel" source="$log.level.default" />
+
 	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 		<encoder>
 			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{KEY} | %m | [%class:%line]%n</pattern>
@@ -14,8 +16,8 @@
 			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{KEY} | %m | [%class:%line]%n</pattern>
 		</encoder>
 		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-			<fileNamePattern>./logs/debug/core.questions.debug.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
-			<maxHistory>100</maxHistory>
+			<fileNamePattern>./logs/debug/core.questions.debug.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
+			<maxHistory>50</maxHistory>
 			<maxFileSize>100MB</maxFileSize>
 		</rollingPolicy>
 	</appender>
@@ -27,13 +29,13 @@
 			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{KEY} | %m%n</pattern>
 		</encoder>
 		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-			<fileNamePattern>./logs/interface/core.questions.interface.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
-			<maxHistory>100</maxHistory>
+			<fileNamePattern>./logs/interface/core.questions.interface.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
+			<maxHistory>50</maxHistory>
 			<maxFileSize>100MB</maxFileSize>
 		</rollingPolicy>
 	</appender>
 
-	<logger name="cn.com.qmth.examcloud" level="DEBUG" additivity="false">
+	<logger name="cn.com.qmth.examcloud" level="${logLevel}" additivity="false">
 		<appender-ref ref="DEBUG_APPENDER" />
 		<appender-ref ref="STDOUT" />
 	</logger>
@@ -43,13 +45,13 @@
 		<appender-ref ref="STDOUT" />
 	</logger>
 
-	<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
-	<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
-	<logger name="org.hibernate.SQL" level="DEBUG" />
-	<logger name="org.hibernate.type" level="DEBUG" />
-	<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
-	<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
-	<!-- <logger name="org.springframework.data.mongodb" level="DEBUG" /> -->
+	<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="${logLevel}" />
+	<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="${logLevel}" />
+	<logger name="org.hibernate.SQL" level="${logLevel}" />
+	<logger name="org.hibernate.type" level="${logLevel}" />
+	<logger name="org.hibernate.engine.QueryParameters" level="${logLevel}" />
+	<logger name="org.hibernate.engine.query.HQLQueryPlan" level="${logLevel}" />
+	<!-- <logger name="org.springframework.data.mongodb" level="${logLevel}" /> -->
 	<logger name="org.docx4j" level="ERROR" />
 
 	<root level="INFO">