spring
parent
41e4fb210a
commit
6b124d29cb
|
|
@ -1,5 +1,6 @@
|
||||||
package org.qinan.cedu.model.vo;
|
package org.qinan.cedu.model.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -27,5 +28,6 @@ public class PaperPageVO {
|
||||||
private BigDecimal paperPassScore;
|
private BigDecimal paperPassScore;
|
||||||
|
|
||||||
@ApiModelProperty("创建时间")
|
@ApiModelProperty("创建时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.qinan.cedu.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
@ -13,6 +14,8 @@ import org.qinan.cedu.convertor.PaperConvertor;
|
||||||
import org.qinan.cedu.enums.DeleteEnum;
|
import org.qinan.cedu.enums.DeleteEnum;
|
||||||
import org.qinan.cedu.enums.PaperStatusEnum;
|
import org.qinan.cedu.enums.PaperStatusEnum;
|
||||||
import org.qinan.cedu.mapper.PaperMapper;
|
import org.qinan.cedu.mapper.PaperMapper;
|
||||||
|
import org.qinan.cedu.mapper.PaperQuestionRelMapper;
|
||||||
|
import org.qinan.cedu.mapper.QuestionOptionMapper;
|
||||||
import org.qinan.cedu.model.dto.PaperCopyDTO;
|
import org.qinan.cedu.model.dto.PaperCopyDTO;
|
||||||
import org.qinan.cedu.model.dto.PaperImportDTO;
|
import org.qinan.cedu.model.dto.PaperImportDTO;
|
||||||
import org.qinan.cedu.model.dto.PaperPageQueryDTO;
|
import org.qinan.cedu.model.dto.PaperPageQueryDTO;
|
||||||
|
|
@ -23,9 +26,7 @@ import org.qinan.cedu.model.entity.QuestionDO;
|
||||||
import org.qinan.cedu.model.entity.QuestionOptionDO;
|
import org.qinan.cedu.model.entity.QuestionOptionDO;
|
||||||
import org.qinan.cedu.model.vo.PaperImportVO;
|
import org.qinan.cedu.model.vo.PaperImportVO;
|
||||||
import org.qinan.cedu.model.vo.PaperPageVO;
|
import org.qinan.cedu.model.vo.PaperPageVO;
|
||||||
import org.qinan.cedu.service.PaperQuestionRelService;
|
|
||||||
import org.qinan.cedu.service.PaperService;
|
import org.qinan.cedu.service.PaperService;
|
||||||
import org.qinan.cedu.service.QuestionOptionService;
|
|
||||||
import org.qinan.cedu.service.support.QuestionExcelImporter;
|
import org.qinan.cedu.service.support.QuestionExcelImporter;
|
||||||
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
|
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
@ -48,8 +49,8 @@ import java.util.stream.Collectors;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implements PaperService {
|
public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implements PaperService {
|
||||||
|
|
||||||
private final PaperQuestionRelService paperQuestionRelService;
|
private final PaperQuestionRelMapper paperQuestionRelMapper;
|
||||||
private final QuestionOptionService questionOptionService;
|
private final QuestionOptionMapper questionOptionMapper;
|
||||||
private final QuestionExcelImporter questionExcelImporter;
|
private final QuestionExcelImporter questionExcelImporter;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -109,10 +110,9 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询源试卷绑定的试题及选项
|
// 查询源试卷绑定的试题及选项
|
||||||
List<PaperQuestionRelDO> rels = paperQuestionRelService.lambdaQuery()
|
List<PaperQuestionRelDO> rels = paperQuestionRelMapper.selectList(new LambdaQueryWrapper<PaperQuestionRelDO>()
|
||||||
.eq(PaperQuestionRelDO::getPaperId, source.getId())
|
.eq(PaperQuestionRelDO::getPaperId, source.getId())
|
||||||
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
|
||||||
.list();
|
|
||||||
List<Long> questionIds = rels.stream().map(PaperQuestionRelDO::getQuestionId).collect(Collectors.toList());
|
List<Long> questionIds = rels.stream().map(PaperQuestionRelDO::getQuestionId).collect(Collectors.toList());
|
||||||
List<QuestionDO> questions = questionIds.isEmpty() ? new ArrayList<>()
|
List<QuestionDO> questions = questionIds.isEmpty() ? new ArrayList<>()
|
||||||
: Db.listByIds(questionIds, QuestionDO.class).stream()
|
: Db.listByIds(questionIds, QuestionDO.class).stream()
|
||||||
|
|
@ -120,10 +120,9 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<Long> existQuestionIds = questions.stream().map(QuestionDO::getId).collect(Collectors.toList());
|
List<Long> existQuestionIds = questions.stream().map(QuestionDO::getId).collect(Collectors.toList());
|
||||||
List<QuestionOptionDO> allOptions = existQuestionIds.isEmpty() ? new ArrayList<>()
|
List<QuestionOptionDO> allOptions = existQuestionIds.isEmpty() ? new ArrayList<>()
|
||||||
: questionOptionService.lambdaQuery()
|
: questionOptionMapper.selectList(new LambdaQueryWrapper<QuestionOptionDO>()
|
||||||
.in(QuestionOptionDO::getQuestionId, existQuestionIds)
|
.in(QuestionOptionDO::getQuestionId, existQuestionIds)
|
||||||
.eq(QuestionOptionDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
.eq(QuestionOptionDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
|
||||||
.list();
|
|
||||||
|
|
||||||
// 新增试卷(使用请求中的名称/总分/合格分数)
|
// 新增试卷(使用请求中的名称/总分/合格分数)
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
@ -180,7 +179,7 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
||||||
}
|
}
|
||||||
Db.saveBatch(questions);
|
Db.saveBatch(questions);
|
||||||
Db.saveBatch(newOptions);
|
Db.saveBatch(newOptions);
|
||||||
paperQuestionRelService.saveBatch(newRels);
|
Db.saveBatch(newRels);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -193,11 +192,10 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
||||||
.eq(PaperDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
.eq(PaperDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
||||||
.update();
|
.update();
|
||||||
if (deleted) {
|
if (deleted) {
|
||||||
paperQuestionRelService.lambdaUpdate()
|
paperQuestionRelMapper.update(null, new LambdaUpdateWrapper<PaperQuestionRelDO>()
|
||||||
.set(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.TRUE.getCode())
|
.set(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.TRUE.getCode())
|
||||||
.set(PaperQuestionRelDO::getUpdateTime, LocalDateTime.now())
|
.set(PaperQuestionRelDO::getUpdateTime, LocalDateTime.now())
|
||||||
.eq(PaperQuestionRelDO::getPaperId, id)
|
.eq(PaperQuestionRelDO::getPaperId, id));
|
||||||
.update();
|
|
||||||
}
|
}
|
||||||
return deleted;
|
return deleted;
|
||||||
}
|
}
|
||||||
|
|
@ -205,7 +203,7 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean bindQuestions(Long paperId, List<Long> questionIds) {
|
public boolean bindQuestions(Long paperId, List<Long> questionIds) {
|
||||||
Db.remove(new LambdaQueryWrapper<PaperQuestionRelDO>()
|
paperQuestionRelMapper.delete(new LambdaQueryWrapper<PaperQuestionRelDO>()
|
||||||
.eq(PaperQuestionRelDO::getPaperId, paperId));
|
.eq(PaperQuestionRelDO::getPaperId, paperId));
|
||||||
if (CollectionUtils.isEmpty(questionIds)) {
|
if (CollectionUtils.isEmpty(questionIds)) {
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -224,10 +222,9 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Long> getQuestionIds(Long paperId) {
|
public List<Long> getQuestionIds(Long paperId) {
|
||||||
return paperQuestionRelService.lambdaQuery()
|
return paperQuestionRelMapper.selectList(new LambdaQueryWrapper<PaperQuestionRelDO>()
|
||||||
.eq(PaperQuestionRelDO::getPaperId, paperId)
|
.eq(PaperQuestionRelDO::getPaperId, paperId)
|
||||||
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode()))
|
||||||
.list()
|
|
||||||
.stream()
|
.stream()
|
||||||
.map(PaperQuestionRelDO::getQuestionId)
|
.map(PaperQuestionRelDO::getQuestionId)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue