dev-tmp1
luotaiqian 2026-08-18 13:58:04 +08:00
parent 41e4fb210a
commit 6b124d29cb
2 changed files with 17 additions and 18 deletions

View File

@ -1,5 +1,6 @@
package org.qinan.cedu.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -27,5 +28,6 @@ public class PaperPageVO {
private BigDecimal paperPassScore;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@ -2,6 +2,7 @@ package org.qinan.cedu.service.impl;
import cn.hutool.core.util.IdUtil;
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.toolkit.Wrappers;
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.PaperStatusEnum;
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.PaperImportDTO;
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.vo.PaperImportVO;
import org.qinan.cedu.model.vo.PaperPageVO;
import org.qinan.cedu.service.PaperQuestionRelService;
import org.qinan.cedu.service.PaperService;
import org.qinan.cedu.service.QuestionOptionService;
import org.qinan.cedu.service.support.QuestionExcelImporter;
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
import org.springframework.beans.factory.annotation.Autowired;
@ -48,8 +49,8 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implements PaperService {
private final PaperQuestionRelService paperQuestionRelService;
private final QuestionOptionService questionOptionService;
private final PaperQuestionRelMapper paperQuestionRelMapper;
private final QuestionOptionMapper questionOptionMapper;
private final QuestionExcelImporter questionExcelImporter;
@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::getDeleteEnum, DeleteEnum.FALSE.getCode())
.list();
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
List<Long> questionIds = rels.stream().map(PaperQuestionRelDO::getQuestionId).collect(Collectors.toList());
List<QuestionDO> questions = questionIds.isEmpty() ? new ArrayList<>()
: Db.listByIds(questionIds, QuestionDO.class).stream()
@ -120,10 +120,9 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
.collect(Collectors.toList());
List<Long> existQuestionIds = questions.stream().map(QuestionDO::getId).collect(Collectors.toList());
List<QuestionOptionDO> allOptions = existQuestionIds.isEmpty() ? new ArrayList<>()
: questionOptionService.lambdaQuery()
: questionOptionMapper.selectList(new LambdaQueryWrapper<QuestionOptionDO>()
.in(QuestionOptionDO::getQuestionId, existQuestionIds)
.eq(QuestionOptionDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
.list();
.eq(QuestionOptionDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
// 新增试卷(使用请求中的名称/总分/合格分数)
LocalDateTime now = LocalDateTime.now();
@ -180,7 +179,7 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
}
Db.saveBatch(questions);
Db.saveBatch(newOptions);
paperQuestionRelService.saveBatch(newRels);
Db.saveBatch(newRels);
}
@Override
@ -193,11 +192,10 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
.eq(PaperDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
.update();
if (deleted) {
paperQuestionRelService.lambdaUpdate()
paperQuestionRelMapper.update(null, new LambdaUpdateWrapper<PaperQuestionRelDO>()
.set(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.TRUE.getCode())
.set(PaperQuestionRelDO::getUpdateTime, LocalDateTime.now())
.eq(PaperQuestionRelDO::getPaperId, id)
.update();
.eq(PaperQuestionRelDO::getPaperId, id));
}
return deleted;
}
@ -205,7 +203,7 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
@Override
@Transactional(rollbackFor = Exception.class)
public boolean bindQuestions(Long paperId, List<Long> questionIds) {
Db.remove(new LambdaQueryWrapper<PaperQuestionRelDO>()
paperQuestionRelMapper.delete(new LambdaQueryWrapper<PaperQuestionRelDO>()
.eq(PaperQuestionRelDO::getPaperId, paperId));
if (CollectionUtils.isEmpty(questionIds)) {
return true;
@ -224,10 +222,9 @@ public class PaperServiceImpl extends ServiceImpl<PaperMapper, PaperDO> implemen
@Override
public List<Long> getQuestionIds(Long paperId) {
return paperQuestionRelService.lambdaQuery()
return paperQuestionRelMapper.selectList(new LambdaQueryWrapper<PaperQuestionRelDO>()
.eq(PaperQuestionRelDO::getPaperId, paperId)
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
.list()
.eq(PaperQuestionRelDO::getDeleteEnum, DeleteEnum.FALSE.getCode()))
.stream()
.map(PaperQuestionRelDO::getQuestionId)
.collect(Collectors.toList());