|
|
|
@ -18,6 +18,8 @@ import com.ibeetl.jlw.entity.*;
|
|
|
|
|
import com.ibeetl.jlw.entity.dto.QuestionSettingDTO;
|
|
|
|
|
import com.ibeetl.jlw.entity.vo.ImportQuestionByWordTemplateResultVO;
|
|
|
|
|
import com.ibeetl.jlw.entity.vo.QuestionTypeCountVO;
|
|
|
|
|
import com.ibeetl.jlw.enums.MatchTypeEnum;
|
|
|
|
|
import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum;
|
|
|
|
|
import com.ibeetl.jlw.enums.ResourcesQuestionTypeEnum;
|
|
|
|
|
import com.ibeetl.jlw.service.strategy.StrategyContext;
|
|
|
|
|
import com.ibeetl.jlw.validator.QuestionValidator;
|
|
|
|
@ -929,10 +931,10 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 最后检测属性, 并行处理,没有向外部非线程安全的变量写入东西,无需担心丢数据 */
|
|
|
|
|
questionList.parallelStream().forEach(item -> {
|
|
|
|
|
questionValidator.checkQuestion(item);
|
|
|
|
|
checkUnique(item);
|
|
|
|
|
});
|
|
|
|
|
// questionList.parallelStream().forEach(item -> {
|
|
|
|
|
// questionValidator.checkQuestion(item);
|
|
|
|
|
// checkUnique(item);
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
/** 本次上传的题目判断唯一性 */
|
|
|
|
|
checkLocalQuestionsUnique(questionList);
|
|
|
|
@ -952,6 +954,37 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
|
|
|
|
|
return resultVO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据传入的参数,模糊匹配课程ID,并放在返回值中
|
|
|
|
|
* @param fileEntityList 文件列表
|
|
|
|
|
* @param businessType 来源类型
|
|
|
|
|
* @param matchType 匹配类型
|
|
|
|
|
* @param coreUser 用户
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public ImportQuestionByWordTemplateResultVO importQuestionByWordTemplateType(List<FileEntity> fileEntityList, QuestionBusinessTypeEnum businessType,
|
|
|
|
|
MatchTypeEnum matchType, CoreUser coreUser) {
|
|
|
|
|
ImportQuestionByWordTemplateResultVO resultVO = importQuestionByWordTemplate(fileEntityList, coreUser);
|
|
|
|
|
final String title = resultVO.getTitle();
|
|
|
|
|
resultVO.setBusinessType(businessType);
|
|
|
|
|
|
|
|
|
|
String[] titleSplit = title.split("-");
|
|
|
|
|
|
|
|
|
|
// 导入的文件,从标题中获取课程或者章节的名称信息
|
|
|
|
|
final String courseInfoTitle = ArrayUtil.get(titleSplit, 0);
|
|
|
|
|
// 查询到的课程编号,看着像的那种
|
|
|
|
|
final String courseInfoLikeId = ArrayUtil.get(titleSplit, 1);
|
|
|
|
|
if (StrUtil.isNotEmpty(courseInfoLikeId)) {
|
|
|
|
|
// 获取纯数字,用来代表带入的课程或者章节ID
|
|
|
|
|
String importCourseId = courseInfoLikeId.replaceAll("\\D+", "");
|
|
|
|
|
// 获取数据库中的课程或者章节ID
|
|
|
|
|
Long getDBCourseId = resourcesQuestionDao.getCourseInfoByBusinessTypeAndTitle(courseInfoTitle, importCourseId, matchType, businessType);
|
|
|
|
|
resultVO.setCourseInfoId(getDBCourseId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultVO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 给题目添加选项
|
|
|
|
|
* @param text 单个选项的内容
|
|
|
|
|