word题目导入, 根据来源类型,查询课程ID

beetlsql3-dev
Mlxa0324 2 years ago
parent 05c2fdca27
commit c9f9a4ed73

@ -3,6 +3,8 @@ package com.ibeetl.jlw.dao;
import com.ibeetl.jlw.entity.CourseInfo;
import com.ibeetl.jlw.entity.ResourcesQuestion;
import com.ibeetl.jlw.entity.vo.QuestionTypeCountVO;
import com.ibeetl.jlw.enums.MatchTypeEnum;
import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum;
import com.ibeetl.jlw.web.query.CourseInfoQuery;
import com.ibeetl.jlw.web.query.ResourcesQuestionQuery;
import org.beetl.sql.core.engine.PageQuery;
@ -36,4 +38,15 @@ public interface ResourcesQuestionDao extends BaseMapper<ResourcesQuestion>{
List<QuestionTypeCountVO> getGroupQuestionTypeCount(Long courseInfoId);
int checkUnique(ResourcesQuestion question);
/**
* ID
*
* @param courseInfoTitle
* @param importCourseId ID
* @param matchType
* @param businessType
* @return
*/
Long getCourseInfoByBusinessTypeAndTitle(String courseInfoTitle, String importCourseId, MatchTypeEnum matchType, QuestionBusinessTypeEnum businessType);
}

@ -1,10 +1,14 @@
package com.ibeetl.jlw.entity.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ibeetl.jlw.entity.ResourcesQuestion;
import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum;
import lombok.Data;
import java.util.List;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
/**
* : <br>
* word
@ -16,12 +20,29 @@ import java.util.List;
* @version: 1.0
*/
@Data
@JsonInclude(NON_NULL)
public class ImportQuestionByWordTemplateResultVO {
/**
*
*/
private String title;
/**
* ID
*
* {@link #title} {@link #businessType}
* title IDID
*/
private Long courseInfoId;
/**
*
*
*
*/
private QuestionBusinessTypeEnum businessType;
/**
*
*/

@ -0,0 +1,27 @@
package com.ibeetl.jlw.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.beetl.sql.annotation.entity.EnumMapping;
import org.beetl.sql.annotation.entity.EnumValue;
/**
* : <br>
*
* @author: mlx
* @description:
* @date: 2023/1/16 0:54
* @version: 1.0
*/
@Getter
@EnumMapping("name")
@AllArgsConstructor
public enum MatchTypeEnum {
AND( "且"),
OR("或");
@EnumValue
private String text;
}

@ -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

@ -16,6 +16,8 @@ import com.ibeetl.jlw.entity.ResourcesQuestion;
import com.ibeetl.jlw.entity.vo.ImportQuestionByWordTemplateResultVO;
import com.ibeetl.jlw.entity.vo.QuestionTypeCountVO;
import com.ibeetl.jlw.enums.AddTypeEnum;
import com.ibeetl.jlw.enums.MatchTypeEnum;
import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum;
import com.ibeetl.jlw.service.CourseInfoService;
import com.ibeetl.jlw.service.ResourcesQuestionService;
import com.ibeetl.jlw.web.query.CourseInfoQuery;
@ -648,4 +650,24 @@ public class ResourcesQuestionController{
public JsonResult<ImportQuestionByWordTemplateResultVO> importQuestionByWordTemplate(@RFile List<FileEntity> fileEntityList, @SCoreUser CoreUser coreUser) {
return JsonResult.success(resourcesQuestionService.importQuestionByWordTemplate(fileEntityList, coreUser));
}
/**
* : <br>
* word
*
* @param fileEntityList namefile
* @param businessType
* @param matchType
* @param coreUser 使IDID
* @return {@link JsonResult}
* @Author: lx
* @Date: 2023/1/8 22:49
*/
@PostMapping(MODEL + "/importQuestionByWordTemplateType.json")
@ResponseBody
public JsonResult<ImportQuestionByWordTemplateResultVO> importQuestionByWordTemplateType(@RFile List<FileEntity> fileEntityList, QuestionBusinessTypeEnum businessType,
@RequestParam(required = false) MatchTypeEnum matchType, @SCoreUser CoreUser coreUser) {
return JsonResult.success(resourcesQuestionService.importQuestionByWordTemplateType(fileEntityList, businessType, matchType, coreUser));
}
}

@ -378,7 +378,6 @@ getGroupQuestionTypeCount
checkUnique
===
* 验证题干是否可能存在重复
SELECT
@ -389,3 +388,45 @@ checkUnique
1 = 1
AND replace(replace(t.question_stem,'(',''),')','') REGEXP #questionStemRegexp#
AND t.question_status = 1
getCourseInfoByBusinessTypeAndTitle
===
* 获取数据库中的课程或者章节ID
@// 系统的课程表查询
@if(!isEmpty(businessType) && businessType == 'FROM_SYSTEM'){
SELECT course_info_id
FROM course_info t
WHERE 1 AND ( 1
@if(!isEmpty(courseInfoTitle)){
AND t.course_info_name like #"%"+courseInfoTitle+"%"#
@}
@if(!isEmpty(importCourseId)){
@if(isNotEmpty(matchType) && matchType == 'OR') {
OR
@} else {
AND
@}
t.course_info_id = #importCourseId#
@}
)
@// 开课的课程表查询
@} else if(!isEmpty(businessType) && businessType == 'FROM_OPEN_COURSE') {
SELECT teacher_open_course_merge_course_info_id
FROM teacher_open_course_merge_course_info t
WHERE 1 AND ( 1
@if(!isEmpty(courseInfoTitle)){
AND (
t.course_info_name like #"%"+courseInfoTitle+"%"#
@}
@if(!isEmpty(importCourseId)){
@if(isNotEmpty(matchType) && matchType == 'OR') {
OR
@} else {
AND
@}
t.teacher_open_course_merge_course_info_id = #importCourseId#
@}
)
@}
Loading…
Cancel
Save