From 1c26b79bd4bb68d638fe422a4d8654ca7e0128e8 Mon Sep 17 00:00:00 2001 From: coding_liang Date: Sun, 21 May 2023 19:48:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=80=83=E7=94=9F=E7=9A=84=E5=BE=85=E8=80=83=E8=AF=95?= =?UTF-8?q?=E5=8D=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lyt/bean/PaperUser.java | 21 +++ .../com/lyt/controller/TestController.java | 46 ++++++ src/main/java/com/lyt/dao/TestExamDao.java | 18 +++ .../java/com/lyt/service/TestService.java | 143 ++++++++++++++++++ src/main/resources/application.yml | 4 +- 5 files changed, 230 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/lyt/bean/PaperUser.java create mode 100644 src/main/java/com/lyt/controller/TestController.java create mode 100644 src/main/java/com/lyt/dao/TestExamDao.java create mode 100644 src/main/java/com/lyt/service/TestService.java diff --git a/src/main/java/com/lyt/bean/PaperUser.java b/src/main/java/com/lyt/bean/PaperUser.java new file mode 100644 index 0000000..b7a8a8a --- /dev/null +++ b/src/main/java/com/lyt/bean/PaperUser.java @@ -0,0 +1,21 @@ +package com.lyt.bean; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: lyt + * @Date: 2023/05/21/19:05 + * @Description: + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PaperUser { + private int id; + private int paperId; + private int userId; + private int marked; + +} diff --git a/src/main/java/com/lyt/controller/TestController.java b/src/main/java/com/lyt/controller/TestController.java new file mode 100644 index 0000000..16c759d --- /dev/null +++ b/src/main/java/com/lyt/controller/TestController.java @@ -0,0 +1,46 @@ +package com.lyt.controller; + +import com.alibaba.fastjson.JSON; +import com.lyt.bean.Paper; +import com.lyt.bean.PaperQuestion; +import com.lyt.bean.Question; +import com.lyt.bean.TitleContent; +import com.lyt.dao.PaperDao; +import com.lyt.dao.QuestionDao; +import com.lyt.service.QuestionService; +import com.lyt.service.TestService; +import com.lyt.util.BeanUtil; +import com.lyt.vo.ItemVo; +import com.lyt.vo.PaperVo; +import com.lyt.vo.QuestionVo; +import com.lyt.vo.QuestionsVo; +import org.apache.ibatis.annotations.Param; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: lyt + * @Date: 2023/05/21/17:55 + * @Description: + */ +@RestController +@CrossOrigin +public class TestController { + + @Autowired + TestService testService; + + @RequestMapping("/testExam/get")//根据学生id获取 试卷 + public List getPaperById(@Param("id") Integer id){ + System.out.println("id是"+id); + + return testService.getPaperById(id); + } + +} diff --git a/src/main/java/com/lyt/dao/TestExamDao.java b/src/main/java/com/lyt/dao/TestExamDao.java new file mode 100644 index 0000000..61b1324 --- /dev/null +++ b/src/main/java/com/lyt/dao/TestExamDao.java @@ -0,0 +1,18 @@ +package com.lyt.dao; + +import com.lyt.bean.PaperUser; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @Author: lyt + * @Date: 2023/05/21/18:25 + * @Description: + */ +public interface TestExamDao { + + //获取paper + @Select("select * from paper_teauser where user_id=#{id}") + public List getTestPapers(int id);//根据 +} diff --git a/src/main/java/com/lyt/service/TestService.java b/src/main/java/com/lyt/service/TestService.java new file mode 100644 index 0000000..1866e24 --- /dev/null +++ b/src/main/java/com/lyt/service/TestService.java @@ -0,0 +1,143 @@ +package com.lyt.service; + +import com.alibaba.fastjson.JSON; +import com.lyt.bean.*; +import com.lyt.dao.PaperDao; +import com.lyt.dao.QuestionDao; +import com.lyt.dao.TestExamDao; +import com.lyt.util.BeanUtil; +import com.lyt.vo.ItemVo; +import com.lyt.vo.PaperVo; +import com.lyt.vo.QuestionVo; +import com.lyt.vo.QuestionsVo; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: lyt + * @Date: 2023/05/21/17:57 + * @Description: + */ +@Service +public class TestService { + + @Autowired + TestExamDao testExamDao; + @Autowired + QuestionDao questionDao; + + @Autowired + PaperDao paperDao; + + @RequestMapping("/testExam/get")//根据学生id获取 试卷 + public List getPaperById(Integer id){ + + List paperUsers = testExamDao.getTestPapers(id); + List paperVos = new ArrayList<>(); + for (PaperUser paperUser : paperUsers) { + + paperVos.add(getTestPaper(paperUser.getPaperId())); + } + + return paperVos; + } + + + + + public PaperVo getTestPaper(int id){ + //id是用户的id + Paper paper = paperDao.selectPaperByPaperId(id); + + System.out.println("打印一下查询到的paper "+ paper); + PaperVo paperVo = new PaperVo(); + //转换为paperVo + BeanUtil.beanConvert(paper,paperVo); + System.out.println(paperVo); + //根据paperId获取 试题 + List paperQuestions = questionDao.getPaperQuestionById(id); +// System.out.println("打印一下 paperQuestions"+paperQuestions); + //获取所有小题 + List questionVos = new ArrayList<>(); + //获取所有的相关题目 并写入 item中 + for (PaperQuestion paperQuestion : paperQuestions) { + Question question = questionDao.getQuestionById(paperQuestion.getQuestionId()); +// System.out.println("查询到的 问题"+ question); + //将question转化为vo + QuestionVo questionVo = new QuestionVo(); + BeanUtil.beanConvert(question,questionVo); + List items = (List) JSON.parse(question.getContent()); + System.out.println("item转换情况:"+items); + questionVo.setItems(items); + questionVos.add(questionVo); + + } + System.out.println("转换好的 qvo:"+questionVos); + if(paperVo.getTitleItems()!=null){ + System.out.println("不为空"); + } + + //创建一个 大题list + List questionsVos = new ArrayList(); + System.out.println("查到的 content"+ paper.getTitleContent()); + //先去查有多少个大题 + List titleContents = (List)JSON.parseArray(paper.getTitleContent(),TitleContent.class); +// 输出一下转换后的 titleContent + +// JSONObject msgEncap = JSON.parseObject(paper.getTitleContent()); +// List titleContents = JSON.parseArray(msgEncap.getString("msgList"), Record.class); +// + + System.out.println("json转换后的titleContent的长度"+titleContents.size()); + // 设置大题title + for (TitleContent titleContent : titleContents) { + System.out.println("遍历输出 titleName"+titleContent.getTitleName()); + QuestionsVo questionsVo = new QuestionsVo(); + questionsVo.setQuestionName(titleContent.getTitleName()); + questionsVo.setType(titleContent.getType()); + questionsVos.add(questionsVo);//将titleContent转为questionsVos + } + + + for (QuestionsVo questionsVo : questionsVos) { + //把小题塞进大题里面 + List questionVo1 = new ArrayList<>(); +// for (int i=0 ; i Date: Mon, 22 May 2023 01:32:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=80=83=E7=94=9F=E7=9A=84=E5=BE=85=E8=80=83=E8=AF=95?= =?UTF-8?q?=E5=8D=B7=E6=8E=A5=E5=8F=A3=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{PaperUser.java => PublishPaper.java} | 6 ++- .../com/lyt/controller/TestController.java | 27 +++++++--- src/main/java/com/lyt/dao/TestExamDao.java | 27 ++++++++-- .../java/com/lyt/service/TestService.java | 54 ++++++++++++------- 4 files changed, 83 insertions(+), 31 deletions(-) rename src/main/java/com/lyt/bean/{PaperUser.java => PublishPaper.java} (75%) diff --git a/src/main/java/com/lyt/bean/PaperUser.java b/src/main/java/com/lyt/bean/PublishPaper.java similarity index 75% rename from src/main/java/com/lyt/bean/PaperUser.java rename to src/main/java/com/lyt/bean/PublishPaper.java index b7a8a8a..93187b4 100644 --- a/src/main/java/com/lyt/bean/PaperUser.java +++ b/src/main/java/com/lyt/bean/PublishPaper.java @@ -12,10 +12,14 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class PaperUser { +public class PublishPaper { private int id; private int paperId; private int userId; private int marked; + private int courseId; + private int testTime; + private int gradeId; + } diff --git a/src/main/java/com/lyt/controller/TestController.java b/src/main/java/com/lyt/controller/TestController.java index 16c759d..d0f220e 100644 --- a/src/main/java/com/lyt/controller/TestController.java +++ b/src/main/java/com/lyt/controller/TestController.java @@ -1,10 +1,7 @@ package com.lyt.controller; import com.alibaba.fastjson.JSON; -import com.lyt.bean.Paper; -import com.lyt.bean.PaperQuestion; -import com.lyt.bean.Question; -import com.lyt.bean.TitleContent; +import com.lyt.bean.*; import com.lyt.dao.PaperDao; import com.lyt.dao.QuestionDao; import com.lyt.service.QuestionService; @@ -18,6 +15,7 @@ import org.apache.ibatis.annotations.Param; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -36,11 +34,24 @@ public class TestController { @Autowired TestService testService; - @RequestMapping("/testExam/get")//根据学生id获取 试卷 - public List getPaperById(@Param("id") Integer id){ - System.out.println("id是"+id); + @RequestMapping("/testExam/get")//根据学生的班级 、查询的课程 获取 试卷 + public List getPaperById(@Param("courseId") Integer courseId,@Param("grade") int grade){ + System.out.println("courseId是"+courseId); - return testService.getPaperById(id); + return testService.getPaperById(courseId,grade); } + @RequestMapping("/publish/paper")//根据学生id获取 试卷 + public Integer publishPaper(@RequestBody PublishPaper publishPaper){ + + System.out.println("接收到的参数是"+publishPaper); + + return testService.insertPublishPaper(publishPaper); + } + + @RequestMapping("/testTime/get")//根据学生id获取 试卷 + public int publishPaper(int paperId){ + + return testService.getTestTime(paperId); + } } diff --git a/src/main/java/com/lyt/dao/TestExamDao.java b/src/main/java/com/lyt/dao/TestExamDao.java index 61b1324..ff8115a 100644 --- a/src/main/java/com/lyt/dao/TestExamDao.java +++ b/src/main/java/com/lyt/dao/TestExamDao.java @@ -1,8 +1,11 @@ package com.lyt.dao; -import com.lyt.bean.PaperUser; +import com.lyt.bean.PublishPaper; +import com.lyt.bean.Question; +import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; +import javax.validation.constraints.Null; import java.util.List; /** @@ -13,6 +16,24 @@ import java.util.List; public interface TestExamDao { //获取paper - @Select("select * from paper_teauser where user_id=#{id}") - public List getTestPapers(int id);//根据 + @Select("select * from publish_paper where course_id=#{id} and grade =#{grade1} and marked=0") + public List getTestPapers(int id,int grade1);//根据 + + //获取考试时间 + //获取paper + @Select("select test_time from publish_paper where paper_id=#{paperId}") + public int getTestTime(int paperId);//根据 + + + //获取paper + @Null + @Select("select marked from publish_paper where paper_id=#{paperId} and course_id= #{courseId} and grade = #{gradeId}") + public Integer isMarked(PublishPaper publishPaper);//根据 + + //获取试卷的班级 + + @Insert("insert into publish_paper(paper_id,course_id,test_time,grade,marked) value(#{paperId},#{courseId},#{testTime},#{gradeId},#{marked})" ) + public int InsertPublishPaper(PublishPaper publishPaper);//创建试题 + + } diff --git a/src/main/java/com/lyt/service/TestService.java b/src/main/java/com/lyt/service/TestService.java index 1866e24..8d01d36 100644 --- a/src/main/java/com/lyt/service/TestService.java +++ b/src/main/java/com/lyt/service/TestService.java @@ -10,7 +10,6 @@ import com.lyt.vo.ItemVo; import com.lyt.vo.PaperVo; import com.lyt.vo.QuestionVo; import com.lyt.vo.QuestionsVo; -import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.RequestMapping; @@ -35,11 +34,11 @@ public class TestService { PaperDao paperDao; @RequestMapping("/testExam/get")//根据学生id获取 试卷 - public List getPaperById(Integer id){ + public List getPaperById(int courseId, int grade) { - List paperUsers = testExamDao.getTestPapers(id); + List paperUsers = testExamDao.getTestPapers(courseId, grade); List paperVos = new ArrayList<>(); - for (PaperUser paperUser : paperUsers) { + for (PublishPaper paperUser : paperUsers) { paperVos.add(getTestPaper(paperUser.getPaperId())); } @@ -48,16 +47,14 @@ public class TestService { } - - - public PaperVo getTestPaper(int id){ + public PaperVo getTestPaper(int id) { //id是用户的id Paper paper = paperDao.selectPaperByPaperId(id); - System.out.println("打印一下查询到的paper "+ paper); + System.out.println("打印一下查询到的paper " + paper); PaperVo paperVo = new PaperVo(); //转换为paperVo - BeanUtil.beanConvert(paper,paperVo); + BeanUtil.beanConvert(paper, paperVo); System.out.println(paperVo); //根据paperId获取 试题 List paperQuestions = questionDao.getPaperQuestionById(id); @@ -70,33 +67,33 @@ public class TestService { // System.out.println("查询到的 问题"+ question); //将question转化为vo QuestionVo questionVo = new QuestionVo(); - BeanUtil.beanConvert(question,questionVo); + BeanUtil.beanConvert(question, questionVo); List items = (List) JSON.parse(question.getContent()); - System.out.println("item转换情况:"+items); + System.out.println("item转换情况:" + items); questionVo.setItems(items); questionVos.add(questionVo); } - System.out.println("转换好的 qvo:"+questionVos); - if(paperVo.getTitleItems()!=null){ + System.out.println("转换好的 qvo:" + questionVos); + if (paperVo.getTitleItems() != null) { System.out.println("不为空"); } //创建一个 大题list List questionsVos = new ArrayList(); - System.out.println("查到的 content"+ paper.getTitleContent()); + System.out.println("查到的 content" + paper.getTitleContent()); //先去查有多少个大题 - List titleContents = (List)JSON.parseArray(paper.getTitleContent(),TitleContent.class); + List titleContents = (List) JSON.parseArray(paper.getTitleContent(), TitleContent.class); // 输出一下转换后的 titleContent // JSONObject msgEncap = JSON.parseObject(paper.getTitleContent()); // List titleContents = JSON.parseArray(msgEncap.getString("msgList"), Record.class); // - System.out.println("json转换后的titleContent的长度"+titleContents.size()); + System.out.println("json转换后的titleContent的长度" + titleContents.size()); // 设置大题title for (TitleContent titleContent : titleContents) { - System.out.println("遍历输出 titleName"+titleContent.getTitleName()); + System.out.println("遍历输出 titleName" + titleContent.getTitleName()); QuestionsVo questionsVo = new QuestionsVo(); questionsVo.setQuestionName(titleContent.getTitleName()); questionsVo.setType(titleContent.getType()); @@ -133,11 +130,30 @@ public class TestService { // questionsVo.getQuestionItems().add(questionVo); // } } - for (QuestionsVo questionsVo :questionsVos) { + for (QuestionsVo questionsVo : questionsVos) { System.out.println("输出一下 已经穿件好的大题列表" + questionsVo); } // 最后把每一道大题塞进一张试卷里 paperVo.setTitleItems(questionsVos); return paperVo; } -} + + public int insertPublishPaper(PublishPaper publishPaper) { + publishPaper.setMarked(1); + + //先查询试卷是否已经发布 + Integer isMarked = testExamDao.isMarked(publishPaper); + if(isMarked == null){ + testExamDao.InsertPublishPaper(publishPaper); + return 1; + } + //如果发布就不插入 + + return 0; + } + + public int getTestTime(int paperId) { + + return testExamDao.getTestTime(paperId); + } +} \ No newline at end of file -- Gitee