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; 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;
} }

View File

@ -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());