diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java index fd55bcb..67ceee3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java @@ -8,15 +8,13 @@ import com.ruoyi.test.domain.DO.ExamDO; import com.ruoyi.test.domain.DO.OptionDO; import com.ruoyi.test.domain.DO.SingleChoiceDO; import com.ruoyi.test.domain.ExamCreate; +import com.ruoyi.test.domain.ExamPaper; import com.ruoyi.test.domain.Questionbank; import com.ruoyi.test.domain.Vo.ExamCreateVo; import com.ruoyi.test.domain.Vo.QuestionbankVo; import com.ruoyi.test.domain.Vo.QuestionbankVo1; import com.ruoyi.test.domain.Vo.QuestionbankVo2; -import com.ruoyi.test.seriver.IExamCreateService; -import com.ruoyi.test.seriver.IExamDOService; -import com.ruoyi.test.seriver.IExamPaperService; -import com.ruoyi.test.seriver.ISubjectService; +import com.ruoyi.test.seriver.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; @@ -39,10 +37,31 @@ public class ExamDOController { @Autowired private IExamPaperService iExamPaperService; + @Autowired + private IQuestionbankService iQuestionbankService; + + @ApiOperation("添加题目") + @PostMapping("addQuestion") + public R addQuestion(@RequestBody QuestionbankVo2 questionbankVo2){ + return R.ok(iQuestionbankService.addQuestion(questionbankVo2)); + } + + @ApiOperation("查看与题目绑定的试卷") + @GetMapping("selectExamPaperByQuestionsId") + public R> selectExamPaperByQuestionsId(Long id){ + return R.ok(iExamCreateService.selectExamPaperByQuestionsId(id)); + } + + @ApiOperation("删除题目") + @DeleteMapping("deleteQuestions") + public R deleteQuestions(Long id){ + return R.ok(iQuestionbankService.deleteQuestions(id)); + } + @ApiOperation("题库列表") @GetMapping("selectList") - public R> selectList(int pagenum, int pagesize){ - return R.ok(iExamDOService.selectExamDoList(pagenum,pagesize)); + public R> selectList(int pagenum, int pagesize,String subject,Long questiontype,Long difficulty){ + return R.ok(iExamDOService.selectExamDoList(pagenum,pagesize,subject,questiontype,difficulty)); } @ApiOperation("预览") diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamCreateService.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamCreateService.java index f404d03..c0e3842 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamCreateService.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamCreateService.java @@ -22,4 +22,6 @@ public interface IExamCreateService { // Integer total(List list); Integer total(Long pid); + + List selectExamPaperByQuestionsId(Long id); } diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamDOService.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamDOService.java index c8ff85f..bb01602 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamDOService.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamDOService.java @@ -14,7 +14,7 @@ import java.util.List; public interface IExamDOService { - IPage selectExamDoList(int pagenum, int pagesize); + IPage selectExamDoList(int pagenum, int pagesize,String subject,Long questiontype,Long difficulty); QuestionbankVo1 preview(Long id); diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamPaperService.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamPaperService.java index d5a27c6..cac5333 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamPaperService.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IExamPaperService.java @@ -47,4 +47,5 @@ public interface IExamPaperService { List getExamPaperList(Long teacherId); List getExamPaperQuestions(Long id); + } diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IQuestionbankService.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IQuestionbankService.java index 0beb80f..7beebe0 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IQuestionbankService.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/IQuestionbankService.java @@ -2,6 +2,7 @@ package com.ruoyi.test.seriver; import com.ruoyi.test.domain.DO.QuestionbankDO1; import com.ruoyi.test.domain.Questionbank; +import com.ruoyi.test.domain.Vo.QuestionbankVo2; import java.util.List; @@ -14,4 +15,8 @@ public interface IQuestionbankService { Questionbank selectById(Long id); List selectQuestionBankByIdAndQuestionType(Long id,String type); + + Integer deleteQuestions(Long id); + + Integer addQuestion(QuestionbankVo2 questionbankVo2); } diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamCreateServiceImpl.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamCreateServiceImpl.java index 670d9ce..38bf975 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamCreateServiceImpl.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamCreateServiceImpl.java @@ -9,14 +9,17 @@ import com.ruoyi.test.domain.ExamPaper; import com.ruoyi.test.domain.Questionanswer; import com.ruoyi.test.domain.Questionbank; import com.ruoyi.test.mapper.ExamCreateMapper; +import com.ruoyi.test.mapper.ExamPaperMapper; import com.ruoyi.test.mapper.QuestionbankMapper; import com.ruoyi.test.seriver.IExamCreateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service public class ExamCreateServiceImpl extends ServiceImpl implements IExamCreateService { @@ -25,6 +28,8 @@ public class ExamCreateServiceImpl extends ServiceImpl selectByPid(Long pid) { @@ -92,6 +97,29 @@ public class ExamCreateServiceImpl extends ServiceImpl selectExamPaperByQuestionsId(Long id) { + // 获取所有相关的 ExamCreate 对象 + List examCreateList = examCreateMapper.selectList(new LambdaQueryWrapper().eq(ExamCreate::getId, id)); + + // 获取所有相关的 pid(ExamPaper 的 ID) + List paperIds = examCreateList.stream() + .map(ExamCreate::getPid) + .collect(Collectors.toList()); + + if (paperIds.isEmpty()) { + return Collections.emptyList(); // 如果没有相关的 pid,直接返回空列表 + } + + // 批量查询相关的 ExamPaper 对象 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(ExamPaper::getId, paperIds); + + // 执行批量查询 + return examPaperMapper.selectList(queryWrapper); + } + + // @Override // public Integer total(List list) { // Integer total = 0; diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamDOServiceImpl.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamDOServiceImpl.java index f0d41f0..f1f8208 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamDOServiceImpl.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/ExamDOServiceImpl.java @@ -2,6 +2,7 @@ package com.ruoyi.test.seriver.Impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.gson.Gson; @@ -58,23 +59,36 @@ public class ExamDOServiceImpl extends ServiceImpl impleme } @Override - public IPage selectExamDoList(int pagenum, int pagesize) { - Page page = new Page<>(pagenum,pagesize); + public IPage selectExamDoList(int pagenum, int pagesize, String subject,Long questiontype,Long difficulty) { + // 创建分页对象,指定当前页码和每页大小 + Page page = new Page<>(pagenum, pagesize); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// 动态拼接查询条件 + queryWrapper.eq(StringUtils.isNotBlank(subject), Questionbank::getSubject, subject) + .eq(questiontype != null, Questionbank::getQuestiontype, questiontype) + .eq(difficulty != null, Questionbank::getDifficulty, difficulty); + + // 使用分页查询 + IPage questionbankPage = questionbankMapper.selectPage(page, queryWrapper); + + // 将 Questionbank 转换为 QuestionbankVo2 List list = new ArrayList<>(); - List questionbankList = questionbankMapper.selectList(queryWrapper); - for(Questionbank questionbank : questionbankList){ + for (Questionbank questionbank : questionbankPage.getRecords()) { QuestionbankVo2 questionbankVo2 = new QuestionbankVo2(); - BeanUtils.copyProperties(questionbank,questionbankVo2); + BeanUtils.copyProperties(questionbank, questionbankVo2); + Gson gson = new Gson(); // 将 JSON 字符串转换为 List> List> listMap = gson.fromJson(questionbank.getChance(), List.class); questionbankVo2.setChance(listMap); + list.add(questionbankVo2); } - IPage pageVo = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); + + // 创建分页结果对象 + IPage pageVo = new Page<>(pagenum, pagesize, questionbankPage.getTotal()); pageVo.setRecords(list); - System.out.println("++++++++++++"+pageVo); + return pageVo; } diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/QuestionanswerServiceImpl.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/QuestionanswerServiceImpl.java index eab0d4d..9b5f650 100644 --- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/QuestionanswerServiceImpl.java +++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/QuestionanswerServiceImpl.java @@ -128,4 +128,6 @@ public class QuestionanswerServiceImpl extends ServiceImpl - +