修复考证配置的题目修改不成功的问题

beetlsql3-dev
yaodan 2 years ago
parent ef0ee1826d
commit dc18d6b8f4

@ -157,5 +157,7 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
*/
long getNotSubmitQuestionLogsCount(Long studentId, Long questionSettingId);
Boolean existGeneralQuestionSettingId(Long generalQuestionSettingId);
}

@ -1386,4 +1386,8 @@ public class GeneralQuestionLogService extends CoreBaseService<GeneralQuestionLo
// 只取部分属性给到前端
return BeanUtil.copyToList(list, QuestionLogAnswerLockVO.class);
}
public Boolean existGeneralQuestionSettingId(Long generalQuestionSettingId) {
return generalQuestionLogDao.existGeneralQuestionSettingId(generalQuestionSettingId);
}
}

@ -23,6 +23,7 @@ import com.ibeetl.jlw.entity.dto.QuestionSettingDTO;
import com.ibeetl.jlw.enums.*;
import com.ibeetl.jlw.service.questionQueue.generalQuestionSettingQueue.GeneralQuestionSettingRedisDelayQueueImpl;
import com.ibeetl.jlw.web.query.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
@ -62,50 +63,60 @@ import static com.ibeetl.jlw.enums.TuckOrErrorEnum.TUCK_TEST;
@Service
@Transactional
@Validated
public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuestionSetting>{
@Autowired private GeneralQuestionSettingDao generalQuestionSettingDao;
@Autowired private GeneralResourcesQuestionSnapshotDao generalResourcesQuestionSnapshotDao;
@Autowired private GeneralQuestionLogDao generalQuestionLogDao;
@Autowired private QuestionLogSummaryDao questionLogSummaryDao;
@Autowired private GeneralQuestionLogService generalQuestionLogService;
@Autowired @Lazy
public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuestionSetting> {
@Autowired
private GeneralQuestionSettingDao generalQuestionSettingDao;
@Autowired
private GeneralResourcesQuestionSnapshotDao generalResourcesQuestionSnapshotDao;
@Autowired
private GeneralQuestionLogDao generalQuestionLogDao;
@Autowired
private QuestionLogSummaryDao questionLogSummaryDao;
@Autowired
private GeneralQuestionLogService generalQuestionLogService;
@Autowired
@Lazy
private GeneralResourcesQuestionSnapshotService generalResourcesQuestionSnapshotService;
@Autowired private ResourcesQuestionService resourcesQuestionService;
@Autowired private GeneralQuestionSettingRedisDelayQueueImpl generalQuestionSettingRedisDelayQueue;
@Autowired private CourseInfoDao courseInfoDao;
public PageQuery<GeneralQuestionSetting>queryByCondition(PageQuery query){
PageQuery ret = generalQuestionSettingDao.queryByCondition(query);
@Autowired
private ResourcesQuestionService resourcesQuestionService;
@Autowired
private GeneralQuestionSettingRedisDelayQueueImpl generalQuestionSettingRedisDelayQueue;
@Autowired
private CourseInfoDao courseInfoDao;
public PageQuery<GeneralQuestionSetting> queryByCondition(PageQuery query) {
PageQuery ret = generalQuestionSettingDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<GeneralQuestionSetting>queryByConditionQuery(PageQuery query){
PageQuery ret = generalQuestionSettingDao.queryByConditionQuery(query);
public PageQuery<GeneralQuestionSetting> queryByConditionQuery(PageQuery query) {
PageQuery ret = generalQuestionSettingDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteByList(List list){
public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
}
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
generalQuestionSettingDao.deleteByIds(ids);
}
}
public void logicDeleteBySettingIds(String ids){
public void logicDeleteBySettingIds(String ids) {
try {
generalQuestionSettingDao.logicDeleteBySettingIds(ids);
} catch (Exception e) {
throw new PlatformException("批量删除通用题目配置失败", e);
}
}
public void deleteByIds(String ids){
public void deleteByIds(String ids) {
try {
generalQuestionSettingDao.deleteByIds(ids);
} catch (Exception e) {
@ -113,7 +124,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
}
}
public String addAll(GeneralQuestionSettingQuery generalQuestionSettingQuery){
public String addAll(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
String msg = "";
List<GeneralQuestionSetting> generalQuestionSettingList = new ArrayList<>();
try {
@ -121,11 +132,12 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
} catch (Exception e) {
try {
generalQuestionSettingList.add(JSONObject.parseObject(generalQuestionSettingQuery.getGeneralQuestionSettingJsonStr(), GeneralQuestionSetting.class));
} catch (Exception e1) {}
} catch (Exception e1) {
}
}
ToolUtils.deleteNullList(generalQuestionSettingList);
if(null != generalQuestionSettingList && generalQuestionSettingList.size()>0){
for(int i=0;i<generalQuestionSettingList.size();i++){
if (null != generalQuestionSettingList && generalQuestionSettingList.size() > 0) {
for (int i = 0; i < generalQuestionSettingList.size(); i++) {
GeneralQuestionSetting generalQuestionSetting = generalQuestionSettingList.get(i);
generalQuestionSetting.setUserId(generalQuestionSettingQuery.getUserId());
generalQuestionSetting.setOrgId(generalQuestionSettingQuery.getOrgId());
@ -135,7 +147,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
return msg;
}
public JsonResult add(GeneralQuestionSettingQuery generalQuestionSettingQuery){
public JsonResult add(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
String msg = "";
GeneralQuestionSetting generalQuestionSetting = generalQuestionSettingQuery.pojo();
generalQuestionSettingDao.insert(generalQuestionSetting);
@ -147,44 +159,129 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
return jsonResult;
}
public String edit(GeneralQuestionSettingQuery generalQuestionSettingQuery){
String msg = "";
public JsonResult edit(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
Long generalQuestionSettingId = generalQuestionSettingQuery.getGeneralQuestionSettingId();
Boolean existGeneralQuestionSettingId = generalQuestionLogService.existGeneralQuestionSettingId(generalQuestionSettingId);
if (existGeneralQuestionSettingId) {
return JsonResult.failMessage("此配置已存在学生考试记录,无法修改相关信息");
}
//更新基础属性
GeneralQuestionSetting generalQuestionSetting = generalQuestionSettingQuery.pojo();
generalQuestionSettingDao.updateTemplateById(generalQuestionSetting);
return msg;
//先删除之前的题目,再重新生成
generalResourcesQuestionSnapshotDao.deleteBySettingIds(generalQuestionSettingId.toString());
if (!CollectionUtils.isEmpty(generalQuestionSettingQuery.getQuestionSettingOptions())) {
// 插入快照
final Long teacherOpenCourseQuestionSettingId = generalQuestionSettingQuery.getGeneralQuestionSettingId();
// 传入的开课题目IDS
String resourcesQuestionIdPlural = generalQuestionSettingQuery.getResourcesQuestionIdPlural();
// 题目类型区分
Collection<QuestionSettingDTO> settingDTOList = generalQuestionSettingQuery.getQuestionSettingOptions();
// 用于指定课程中拉取题目。暂时查询中不会用到
final String sourceCourseInfoIds = generalQuestionSettingQuery.getSourceCourseInfoIds();
// 批量添加课程ID
settingDTOList.forEach(item -> item.setSourceCourseInfoIds(sourceCourseInfoIds));
// 如果指定的题目IDs不为空的话则需要对这些题目进行题目类型分组。
if (ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) {
// 指定课程
String joinFindCourseInfoIds = null;
if (StrUtil.isNotBlank(sourceCourseInfoIds)) {
String sourceCourseInfoIdsNew = ArrayUtil.join(sourceCourseInfoIds.split(","), "|", "_", "_");
List<String> findCourseInfoIds = courseInfoDao.createLambdaQuery().andLike(CourseInfo::getCourseInfoFullId, sourceCourseInfoIdsNew)
.andEq(CourseInfo::getCourseInfoStatus, 1)
.select(String.class, "course_info_id");
joinFindCourseInfoIds = ArrayUtil.join(findCourseInfoIds, ",");
}
ResourcesQuestionQuery questionQuery = new ResourcesQuestionQuery();
questionQuery.setQuestionStatus(1);
// 这里可能为空,就不做判断了。
questionQuery.setCourseInfoIds(joinFindCourseInfoIds);
questionQuery.setResourcesQuestionIds(resourcesQuestionIdPlural);
List<ResourcesQuestion> questionList = resourcesQuestionService.getValuesByQueryNotWithPermission(questionQuery);
// 无差别题目IDS转换成类型区分的集合
Map<ResourcesQuestionTypeEnum, QuestionSettingDTO> map =
resourcesQuestionService.buildSettingDtoListByNoDiffQuestionList(questionList);
// 设置分值
generalQuestionSettingQuery.getQuestionSettingOptions().forEach(item -> {
QuestionSettingDTO settingDTO = map.get(item.getQuestionType());
if (ObjectUtil.isAllNotEmpty(settingDTO, item.getSingleScore())) {
settingDTO.setSingleScore(item.getSingleScore());
}
});
if (ObjectUtil.isNotEmpty(map)) {
settingDTOList = map.values();
}
}
List<GeneralResourcesQuestionSnapshot> list =
generalResourcesQuestionSnapshotService.getQuestionBySettingOptionDTOList(settingDTOList, Collections.emptyMap());
if (ObjectUtil.isNotEmpty(list)) {
list.forEach(item -> {
item.setGeneralQuestionSettingId(teacherOpenCourseQuestionSettingId);
item.setBusinessCourseInfoId(generalQuestionSettingQuery.getBusinessId());
item.setBusinessCourseInfoType(QuestionBusinessTypeEnum.FROM_SYSTEM);
});
// 更新ID
setNewCourseInfoId(list, Collections.emptyMap());
generalResourcesQuestionSnapshotDao.insertBatch(list);
} else {
throw new PlatformException("题目配置信息有误,未获取到的题目!");
}
}else {
throw new PlatformException("题目配置信息有误,未获取到的题目!");
}
return JsonResult.success();
}
public String updateGivenByIds(GeneralQuestionSettingQuery generalQuestionSettingQuery){
public String updateGivenByIds(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
String msg = "";
if(StringUtils.isNotBlank(generalQuestionSettingQuery.get_given())){
if (StringUtils.isNotBlank(generalQuestionSettingQuery.get_given())) {
boolean flag = generalQuestionSettingDao.updateGivenByIds(generalQuestionSettingQuery) > 0;
if(!flag){
if (!flag) {
msg = "更新指定参数失败";
}
}else{
} else {
msg = "指定参数为空";
}
return msg;
}
public List<GeneralQuestionSetting> getValues (Object paras){
public List<GeneralQuestionSetting> getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.generalQuestionSetting.getGeneralQuestionSettingValues"), GeneralQuestionSetting.class, paras);
}
public List<GeneralQuestionSetting> getValuesByQuery (GeneralQuestionSettingQuery generalQuestionSettingQuery){
public List<GeneralQuestionSetting> getValuesByQuery(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
return generalQuestionSettingDao.getValuesByQuery(generalQuestionSettingQuery);
}
public List<GeneralQuestionSetting> getValuesByQueryNotWithPermission (GeneralQuestionSettingQuery generalQuestionSettingQuery){
public List<GeneralQuestionSetting> getValuesByQueryNotWithPermission(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
return generalQuestionSettingDao.getValuesByQueryNotWithPermission(generalQuestionSettingQuery);
}
/**
* IDs
* @param ids IDs
*
* @param ids IDs
* @return
*/
public List<GeneralQuestionSetting> getByIds (String ids){
public List<GeneralQuestionSetting> getByIds(String ids) {
GeneralQuestionSettingQuery query = new GeneralQuestionSettingQuery();
query.setGeneralQuestionSettingStatus(1);
query.setGeneralQuestionSettingIdPlural(ids);
@ -194,10 +291,11 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
/**
* IDs
* @param businessIds IDs
*
* @param businessIds IDs
* @return
*/
public List<GeneralQuestionSetting> getByBusinessIds (String businessIds){
public List<GeneralQuestionSetting> getByBusinessIds(String businessIds) {
GeneralQuestionSettingQuery query = new GeneralQuestionSettingQuery();
query.setGeneralQuestionSettingStatus(1);
query.setBusinessIdPlural(businessIds);
@ -205,45 +303,45 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
return generalQuestionSettingDao.getValuesByQueryNotWithPermission(query);
}
public GeneralQuestionSetting getInfo (Long generalQuestionSettingId){
public GeneralQuestionSetting getInfo(Long generalQuestionSettingId) {
GeneralQuestionSettingQuery generalQuestionSettingQuery = new GeneralQuestionSettingQuery();
generalQuestionSettingQuery.setGeneralQuestionSettingId(generalQuestionSettingId);
generalQuestionSettingQuery.setGeneralQuestionSettingStatusPlural("1");//需要根据实际情况来
List<GeneralQuestionSetting> list = generalQuestionSettingDao.getValuesByQuery(generalQuestionSettingQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public GeneralQuestionSetting getInfo (GeneralQuestionSettingQuery generalQuestionSettingQuery){
public GeneralQuestionSetting getInfo(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
List<GeneralQuestionSetting> list = generalQuestionSettingDao.getValuesByQuery(generalQuestionSettingQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public JsonResult importTemplate(List<FileEntity> fileEntityList,List<Long>list,CoreUser coreUser){
List<String[]>errMsg = new ArrayList<>();
String msg ="";
public JsonResult importTemplate(List<FileEntity> fileEntityList, List<Long> list, CoreUser coreUser) {
List<String[]> errMsg = new ArrayList<>();
String msg = "";
int count = 0;
Date date = new Date();
for(int item=0;null != fileEntityList && item<fileEntityList.size();item++){
for (int item = 0; null != fileEntityList && item < fileEntityList.size(); item++) {
FileEntity fileEntity = fileEntityList.get(item);
if(null != fileEntity){
if (null != fileEntity) {
File file = new File(fileEntity.getAbsoluteUrl());
if(file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx",fileEntity.getFormat())){
if (file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx", fileEntity.getFormat())) {
Workbook wb = null;
InputStream is = null;
try {
is = new FileInputStream(fileEntity.getAbsoluteUrl());
if("xls".equals(fileEntity.getFormat())){
if ("xls".equals(fileEntity.getFormat())) {
wb = new HSSFWorkbook(is);
}else if("xlsx".equals(fileEntity.getFormat())){
} else if ("xlsx".equals(fileEntity.getFormat())) {
wb = new XSSFWorkbook(is);
}
} catch (FileNotFoundException e) {
@ -252,13 +350,13 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
e.printStackTrace();
}
try {
if(null != is){
is.close();
}
}catch (Exception e){
if (null != is) {
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
if(wb != null){
if (wb != null) {
//获取Sheet1
Sheet sheet = wb.getSheet("Sheet1");
//获取最大行数
@ -269,56 +367,56 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
int colNum = firstRow.getPhysicalNumberOfCells();
String columns[] = {
"业务",
"业务类型",
"班级ID集合",
"作答次数",
"题目乱序",
"选项乱序",
"答卷后显示答案解析",
"答卷后显示答案对错",
"题目-名称",
"题目开始时间",
"题目结束时间",
"类型 枚举",
"题目要求",
"附件,老师上传附件",
"发布状态。 1发布2未发布",
"状态 ",
"创建时间",
"业务",
"业务类型",
"班级ID集合",
"作答次数",
"题目乱序",
"选项乱序",
"答卷后显示答案解析",
"答卷后显示答案对错",
"题目-名称",
"题目开始时间",
"题目结束时间",
"类型 枚举",
"题目要求",
"附件,老师上传附件",
"发布状态。 1发布2未发布",
"状态 ",
"创建时间",
};
Map<String,Integer> map = new HashMap<>();//获取需要的表头的列
Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
//从第一列找到需要的表头
for (int i=0; i<colNum; i++){
for (int i = 0; i < colNum; i++) {
String cellData = getCellFormatValue(firstRow.getCell(i));
for(int j=0;j<columns.length;j++){
if(columns[j].equals(cellData)){
map.put(columns[j],i);
for (int j = 0; j < columns.length; j++) {
if (columns[j].equals(cellData)) {
map.put(columns[j], i);
}
}
}
//验证所需要的表头是否全
Integer flag = 0;
for(int i=0;i<columns.length;i++){
if(null != map.get(columns[i])){
flag ++;
for (int i = 0; i < columns.length; i++) {
if (null != map.get(columns[i])) {
flag++;
}
}
if(flag != columns.length){
if (flag != columns.length) {
String str = " ";
for(int i=0;i<columns.length;i++){
str += "\""+columns[i]+"\""+(i == columns.length-1?"":", ");
for (int i = 0; i < columns.length; i++) {
str += "\"" + columns[i] + "\"" + (i == columns.length - 1 ? "" : ", ");
}
return JsonResult.failMessage("导入失败,表格表头应包含"+str);
return JsonResult.failMessage("导入失败,表格表头应包含" + str);
}
for (int i = 1; i<rowNum; i++) {
for (int i = 1; i < rowNum; i++) {
Row row = sheet.getRow(i);
if(null == row){
errMsg.add(new String[]{"第"+(i+1)+"数据为空"});
if (null == row) {
errMsg.add(new String[]{"第" + (i + 1) + "数据为空"});
continue;
}
@ -340,98 +438,81 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
String generalQuestionSettingStatus = getCellFormatValue(row.getCell(map.get(columns[15])));
String generalQuestionSettingAddTime = getCellFormatValue(row.getCell(map.get(columns[16])));
//TODO 判断(如重复等复杂判断要额外写)
if(StringUtils.isBlank(bussinessId)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[0])+1)+"列,第"+(i+1)+"行业务为空"});
if (StringUtils.isBlank(bussinessId)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行业务为空"});
continue;
}else
if(StringUtils.isBlank(bussinessType)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[1])+1)+"列,第"+(i+1)+"行业务类型为空"});
} else if (StringUtils.isBlank(bussinessType)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[1]) + 1) + "列,第" + (i + 1) + "行业务类型为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingSchoolClassIds)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[2])+1)+"列,第"+(i+1)+"行班级ID集合为空"});
} else if (StringUtils.isBlank(generalQuestionSettingSchoolClassIds)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[2]) + 1) + "列,第" + (i + 1) + "行班级ID集合为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingDoCount)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[3])+1)+"列,第"+(i+1)+"行作答次数为空"});
} else if (StringUtils.isBlank(generalQuestionSettingDoCount)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[3]) + 1) + "列,第" + (i + 1) + "行作答次数为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingQuestionNoOrder)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[4])+1)+"列,第"+(i+1)+"行题目乱序为空"});
} else if (StringUtils.isBlank(generalQuestionSettingQuestionNoOrder)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[4]) + 1) + "列,第" + (i + 1) + "行题目乱序为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingOptionNoOrder)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[5])+1)+"列,第"+(i+1)+"行选项乱序为空"});
} else if (StringUtils.isBlank(generalQuestionSettingOptionNoOrder)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[5]) + 1) + "列,第" + (i + 1) + "行选项乱序为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingEndShowQa)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[6])+1)+"列,第"+(i+1)+"行答卷后显示答案解析为空"});
} else if (StringUtils.isBlank(generalQuestionSettingEndShowQa)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[6]) + 1) + "列,第" + (i + 1) + "行答卷后显示答案解析为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingEndShowTrueFalse)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[7])+1)+"列,第"+(i+1)+"行答卷后显示答案对错为空"});
} else if (StringUtils.isBlank(generalQuestionSettingEndShowTrueFalse)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[7]) + 1) + "列,第" + (i + 1) + "行答卷后显示答案对错为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingName)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[8])+1)+"列,第"+(i+1)+"行题目-名称为空"});
} else if (StringUtils.isBlank(generalQuestionSettingName)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[8]) + 1) + "列,第" + (i + 1) + "行题目-名称为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionStartTime)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[9])+1)+"列,第"+(i+1)+"行题目开始时间为空"});
} else if (StringUtils.isBlank(generalQuestionStartTime)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[9]) + 1) + "列,第" + (i + 1) + "行题目开始时间为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionEndTime)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[10])+1)+"列,第"+(i+1)+"行题目结束时间为空"});
} else if (StringUtils.isBlank(generalQuestionEndTime)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[10]) + 1) + "列,第" + (i + 1) + "行题目结束时间为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingType)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[11])+1)+"列,第"+(i+1)+"行类型 枚举为空"});
} else if (StringUtils.isBlank(generalQuestionSettingType)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[11]) + 1) + "列,第" + (i + 1) + "行类型 枚举为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingRequire)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[12])+1)+"列,第"+(i+1)+"行题目要求为空"});
} else if (StringUtils.isBlank(generalQuestionSettingRequire)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[12]) + 1) + "列,第" + (i + 1) + "行题目要求为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingFile)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[13])+1)+"列,第"+(i+1)+"行附件,老师上传附件为空"});
} else if (StringUtils.isBlank(generalQuestionSettingFile)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[13]) + 1) + "列,第" + (i + 1) + "行附件,老师上传附件为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingPushStatus)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[14])+1)+"列,第"+(i+1)+"行发布状态。 1发布2未发布为空"});
} else if (StringUtils.isBlank(generalQuestionSettingPushStatus)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[14]) + 1) + "列,第" + (i + 1) + "行发布状态。 1发布2未发布为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingStatus)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[15])+1)+"列,第"+(i+1)+"行状态 为空"});
} else if (StringUtils.isBlank(generalQuestionSettingStatus)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[15]) + 1) + "列,第" + (i + 1) + "行状态 为空"});
continue;
}else
if(StringUtils.isBlank(generalQuestionSettingAddTime)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[16])+1)+"列,第"+(i+1)+"行创建时间为空"});
} else if (StringUtils.isBlank(generalQuestionSettingAddTime)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[16]) + 1) + "列,第" + (i + 1) + "行创建时间为空"});
continue;
}else
{
//TODO 保存
GeneralQuestionSetting generalQuestionSetting = new GeneralQuestionSetting();
generalQuestionSetting.setBusinessId(Long.parseLong(bussinessId));
generalQuestionSetting.setBusinessType(EnumUtil.likeValueOf(QuestionBusinessTypeEnum.class, bussinessType));
generalQuestionSetting.setGeneralQuestionSettingSchoolClassIds(generalQuestionSettingSchoolClassIds);
generalQuestionSetting.setGeneralQuestionSettingDoCount(Integer.parseInt(generalQuestionSettingDoCount));
generalQuestionSetting.setGeneralQuestionSettingQuestionNoOrder(Integer.parseInt(generalQuestionSettingQuestionNoOrder));
generalQuestionSetting.setGeneralQuestionSettingOptionNoOrder(Integer.parseInt(generalQuestionSettingOptionNoOrder));
generalQuestionSetting.setGeneralQuestionSettingEndShowQa(Integer.parseInt(generalQuestionSettingEndShowQa));
generalQuestionSetting.setGeneralQuestionSettingEndShowTrueFalse(Integer.parseInt(generalQuestionSettingEndShowTrueFalse));
generalQuestionSetting.setGeneralQuestionSettingName(generalQuestionSettingName);
generalQuestionSetting.setGeneralQuestionStartTime(TimeTool.getTime(generalQuestionStartTime));
generalQuestionSetting.setGeneralQuestionEndTime(TimeTool.getTime(generalQuestionEndTime));
generalQuestionSetting.setGeneralQuestionSettingType(EnumUtil.likeValueOf(ResourcesQuestionSnapshotFromTypeEnum.class, generalQuestionSettingType));
generalQuestionSetting.setGeneralQuestionSettingRequire(generalQuestionSettingRequire);
generalQuestionSetting.setGeneralQuestionSettingFile(generalQuestionSettingFile);
generalQuestionSetting.setGeneralQuestionSettingPushStatus(EnumUtil.likeValueOf(GlobalPushStatusEnum.class, Integer.valueOf(defaultIfNull(generalQuestionSettingPushStatus, "-1"))));
generalQuestionSetting.setGeneralQuestionSettingStatus(Integer.parseInt(generalQuestionSettingStatus));
generalQuestionSetting.setGeneralQuestionSettingAddTime(TimeTool.getTime(generalQuestionSettingAddTime));
generalQuestionSetting.setOrgId(coreUser.getOrgId());
generalQuestionSetting.setUserId(coreUser.getId());
count++;
} else {
//TODO 保存
GeneralQuestionSetting generalQuestionSetting = new GeneralQuestionSetting();
generalQuestionSetting.setBusinessId(Long.parseLong(bussinessId));
generalQuestionSetting.setBusinessType(EnumUtil.likeValueOf(QuestionBusinessTypeEnum.class, bussinessType));
generalQuestionSetting.setGeneralQuestionSettingSchoolClassIds(generalQuestionSettingSchoolClassIds);
generalQuestionSetting.setGeneralQuestionSettingDoCount(Integer.parseInt(generalQuestionSettingDoCount));
generalQuestionSetting.setGeneralQuestionSettingQuestionNoOrder(Integer.parseInt(generalQuestionSettingQuestionNoOrder));
generalQuestionSetting.setGeneralQuestionSettingOptionNoOrder(Integer.parseInt(generalQuestionSettingOptionNoOrder));
generalQuestionSetting.setGeneralQuestionSettingEndShowQa(Integer.parseInt(generalQuestionSettingEndShowQa));
generalQuestionSetting.setGeneralQuestionSettingEndShowTrueFalse(Integer.parseInt(generalQuestionSettingEndShowTrueFalse));
generalQuestionSetting.setGeneralQuestionSettingName(generalQuestionSettingName);
generalQuestionSetting.setGeneralQuestionStartTime(TimeTool.getTime(generalQuestionStartTime));
generalQuestionSetting.setGeneralQuestionEndTime(TimeTool.getTime(generalQuestionEndTime));
generalQuestionSetting.setGeneralQuestionSettingType(EnumUtil.likeValueOf(ResourcesQuestionSnapshotFromTypeEnum.class, generalQuestionSettingType));
generalQuestionSetting.setGeneralQuestionSettingRequire(generalQuestionSettingRequire);
generalQuestionSetting.setGeneralQuestionSettingFile(generalQuestionSettingFile);
generalQuestionSetting.setGeneralQuestionSettingPushStatus(EnumUtil.likeValueOf(GlobalPushStatusEnum.class, Integer.valueOf(defaultIfNull(generalQuestionSettingPushStatus, "-1"))));
generalQuestionSetting.setGeneralQuestionSettingStatus(Integer.parseInt(generalQuestionSettingStatus));
generalQuestionSetting.setGeneralQuestionSettingAddTime(TimeTool.getTime(generalQuestionSettingAddTime));
generalQuestionSetting.setOrgId(coreUser.getOrgId());
generalQuestionSetting.setUserId(coreUser.getId());
count++;
}
}
}
@ -439,13 +520,13 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
}
}
JsonResult jsonResult = new JsonResult();
jsonResult.setCode(count>0?JsonReturnCode.SUCCESS.getCode():JsonReturnCode.FAIL.getCode());
jsonResult.setCode(count > 0 ? JsonReturnCode.SUCCESS.getCode() : JsonReturnCode.FAIL.getCode());
jsonResult.setData(errMsg);
jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"<br>"+msg:""));
jsonResult.setMsg((count > 0 ? "导入成功,共导入" + count + "条" : "导入失败") + (StringUtils.isNotBlank(msg) ? "<br>" + msg : ""));
return jsonResult;
}
public List<Map<String,Object>> getExcelValues (GeneralQuestionSettingQuery generalQuestionSettingQuery){
public List<Map<String, Object>> getExcelValues(GeneralQuestionSettingQuery generalQuestionSettingQuery) {
return generalQuestionSettingDao.getExcelValues(generalQuestionSettingQuery);
}
@ -461,6 +542,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
/**
* ID
*
* @param questionSettingId
* @return
*/
@ -476,6 +558,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
/**
* ID
*
*
* @param questionSettingId
* @return
*/
@ -491,7 +574,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
* @return
*/
public List<GeneralResourcesQuestionSnapshot> questionDetail(@NotNull(message = "题目配置ID不能为空") final Long generalQuestionSettingId,
@NotNull(message = "类型不能为空!") ResourcesQuestionSnapshotFromTypeEnum fromTypeEnum, CoreUser coreUser) {
@NotNull(message = "类型不能为空!") ResourcesQuestionSnapshotFromTypeEnum fromTypeEnum, CoreUser coreUser) {
// 获取学生ID
final Student student = getStudent();
@ -555,7 +638,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
resourcesQuestionSnapshots.forEach(value -> {
// 1单选 2多选进行打乱其他的不变
if (value.getQuestionType() <= 2) {
shuffleQuestion(value, "questionStem","questionOption",
shuffleQuestion(value, "questionStem", "questionOption",
"questionAnswer", "questionType");
}
});
@ -606,11 +689,11 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
*
*
*
* @param settingQuery
* @param courseInfoIdPair ID
* @param settingQuery
* @param courseInfoIdPair ID
* @return
*/
public void addSettingBySystemCourse(@Validated(ValidateConfig.ADD.class) GeneralQuestionSettingQuery settingQuery, Map<Long, Long> courseInfoIdPair ) {
public void addSettingBySystemCourse(@Validated(ValidateConfig.ADD.class) GeneralQuestionSettingQuery settingQuery, Map<Long, Long> courseInfoIdPair) {
// 添加到作业主表中
add(settingQuery);
@ -630,7 +713,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
settingDTOList.forEach(item -> item.setSourceCourseInfoIds(sourceCourseInfoIds));
// 如果指定的题目IDs不为空的话则需要对这些题目进行题目类型分组。
if(ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) {
if (ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) {
// 指定课程
String joinFindCourseInfoIds = null;
@ -667,7 +750,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
}
}
List<GeneralResourcesQuestionSnapshot> list =
List<GeneralResourcesQuestionSnapshot> list =
generalResourcesQuestionSnapshotService.getQuestionBySettingOptionDTOList(settingDTOList, Collections.emptyMap());
if (ObjectUtil.isNotEmpty(list)) {
@ -680,8 +763,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
// 更新ID
setNewCourseInfoId(list, courseInfoIdPair);
generalResourcesQuestionSnapshotDao.insertBatch(list);
}
else {
} else {
throw new PlatformException("题目配置信息有误,未获取到的题目!");
}
}
@ -760,15 +842,15 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
* : <br>
*
*
* @param questionSettingIds IDsID
* @param tuckOrError
* @param student
* @param questionSettingIds IDsID
* @param tuckOrError
* @param student
* @return {@link JsonResult}
* @Author: 87966
* @Date: 2022/12/1 9:27
*/
public List<GeneralQuestionLog> questionDetailTest(@NotNull(message = "题目配置ID不能为空") String questionSettingIds,
@NotNull(message = "练习类型不能为空!") TuckOrErrorEnum tuckOrError, @NotNull(message = "该接口只能学生访问") Student student) {
@NotNull(message = "练习类型不能为空!") TuckOrErrorEnum tuckOrError, @NotNull(message = "该接口只能学生访问") Student student) {
final Long studentId = student.getStudentId();
GeneralQuestionLogQuery logQuery = new GeneralQuestionLogQuery();
@ -788,7 +870,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
return list;
}
// 错题库
else if(ERROR_TEST.equals(tuckOrError)) {
else if (ERROR_TEST.equals(tuckOrError)) {
logQuery.setIsErrorFavorite(true);
logQuery.setStudentId(studentId);
logQuery.setGeneralQuestionLogStatusPlural("1,2");
@ -807,6 +889,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
/**
*
*
* @param list
*/
public void fullQuestionSettingOptions(List<GeneralQuestionSetting> list) {
@ -832,6 +915,7 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
/**
*
*
* @param list
* @param student
*/

@ -540,7 +540,7 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
CourseInfoQuery paras = new CourseInfoQuery();
paras.setCourseInfoType(1);
paras.setCourseLabelId(once.getCourseLabelId());
paras.setCourseInfoStatus(1);
paras.setCourseInfoStatus(2);
paras.setCourseInfoName(courseInfoName);
paras.setOrgId(coreUser.getOrgId());
paras.setUserId(coreUser.getId());
@ -579,10 +579,10 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
chapterCache.put(courseInfoName, collect);
}
courseInfo = courseInfoCache.get(courseInfoName);
if (Objects.equals(courseInfo.getCourseInfoStatus(),2)){
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行课程处于禁止状态,禁止导入"});
continue;
}
//if (Objects.equals(courseInfo.getCourseInfoStatus(),2)){
// errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行课程处于禁止状态,禁止导入"});
// continue;
//}
}
//查章节

@ -301,19 +301,14 @@ public class GeneralQuestionSettingController{
@PostMapping(MODEL + "/edit.json")
@Function("generalQuestionSetting.edit")
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) @RequestBody GeneralQuestionSettingQuery generalQuestionSettingQuery, BindingResult result) {
public JsonResult update(@Validated(ValidateConfig.UPDATE.class) @RequestBody GeneralQuestionSettingQuery generalQuestionSettingQuery, BindingResult result) {
if(result.hasErrors()){
return JsonResult.failMessage(result);
}else {
Assert.notNull(getUser(), "请登录后再操作");
generalQuestionSettingQuery.setUserId(null);
generalQuestionSettingQuery.setOrgId(null);
String msg = generalQuestionSettingService.edit(generalQuestionSettingQuery);
if (StringUtils.isBlank(msg)) {
return JsonResult.success();
} else {
return JsonResult.failMessage("更新失败,"+msg);
}
return generalQuestionSettingService.edit(generalQuestionSettingQuery);
}
}

@ -1300,4 +1300,9 @@ getNotSubmitQuestionLogsCount
AND FIND_IN_SET( t.general_question_log_id, ta.question_log_ids )
)
AND t.student_id = #studentId#
AND t.general_question_setting_id = #questionSettingId#
AND t.general_question_setting_id = #questionSettingId#
existGeneralQuestionSettingId
===
* 判断这个配置是否已经产生考生记录
select IF(count(*)>0,1,0) from general_question_log where general_question_setting_id = #generalQuestionSettingId#

Loading…
Cancel
Save