diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java index 914307b560684692e996dc8e6cdb1bf55edfee7f..0e1bcab26e118523991d01b819cd8050fa64fa9e 100644 --- a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java +++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java @@ -34,6 +34,8 @@ public class ToolTemplateAction extends ActionToolBase { FileUploadService fileUploadService= IOC.getBean(FileUploadService.class); TroubleshootingService troubleshootingService=IOC.getBean(TroubleshootingServiceImpl.class); QuestionService questionService=IOC.getBean(QuestionServiceImpl.class); + NoticeService noticeService=IOC.getBean(NoticeServiceImpl.class); + @Action public R get(HttpServletRequest request ) throws Exception { return R.ok().put("msg", "Hello World").message("GET请求成功"); @@ -111,16 +113,19 @@ public class ToolTemplateAction extends ActionToolBase { @Action public R submitWrongQuestion(HttpServletRequest request) throws Exception { String userAnswers = request.getParameter("userAnswers"); + System.out.println("username:"+userAnswers); // 解析 JSON 字符串为 Map Map> userAnswersMap = parseUserAnswers(userAnswers); + System.out.println("username:"+userAnswersMap); Integer studentId =Integer.parseInt(request.getParameter("student_id")); Integer homeworkId =Integer.parseInt(request.getParameter("homework_id")); //获取提交时间设置为年月日格式 - String addTimeStr = request.getParameter("addTime"); + String submitTimeStr = request.getParameter("submitTime"); + System.out.println(submitTimeStr); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - Date addTimeDate = sdf.parse(addTimeStr); + Date submitTimeDate = sdf.parse(submitTimeStr); // homeWorkService.submitHomework(studentId,homeworkId,addTimeDate,userAnswersMap); - wrongQuestionService.submitWrongQuestion(studentId,homeworkId,addTimeDate,userAnswersMap); + wrongQuestionService.submitWrongQuestion(studentId,homeworkId,submitTimeDate,userAnswersMap); return R.ok().message("请求成功"); } @@ -140,7 +145,7 @@ public class ToolTemplateAction extends ActionToolBase { return R.ok().message("请求成功"); } - //获取题目(选择题) + //获取题目 @Action public R getQuestion(HttpServletRequest request) throws Exception { Integer homework_id =Integer.parseInt(request.getParameter("homework_id")); @@ -148,16 +153,21 @@ public class ToolTemplateAction extends ActionToolBase { return R.ok().put("data",question); } +// //文件上传miniIo +// @Action +// public R fileUploadService(HttpServletRequest request) throws ServletException, IOException {//前端要传一个名字叫 file 的参数 +// MultipartFile filePart = (MultipartFile) request.getPart("file"); +//// String fileUrl = fileUploadService.fileUpload(filePart) ; +// return R.ok().put("data",filePart);//返回一个fileurl给前端 +// } - //文件上传miniIo @Action - public R fileUploadService(HttpServletRequest request) throws ServletException, IOException {//前端要传一个名字叫 file 的参数 - MultipartFile filePart = (MultipartFile) request.getPart("file"); -// String fileUrl = fileUploadService.fileUpload(filePart) ; - return R.ok().put("data",filePart);//返回一个fileurl给前端 + public R getNotice(HttpServletRequest request) throws Exception { + int student_id =Integer.parseInt(request.getParameter("student_id")); + List Notices = noticeService.getNotice(student_id); + return R.ok().put("data",Notices); } - public static String runTool(String toolId, String action, Map map, String bandId) { HashMap params = new HashMap<>(); params.put("toolID", toolId); @@ -175,6 +185,8 @@ public class ToolTemplateAction extends ActionToolBase { } + + //json转化成map方法 private Map> parseUserAnswers(String userAnswers) { Map> userAnswersMap = new HashMap<>(); diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java index d1bae56d79d56dc1b050e4c22247b2bb56bec877..2d6419f279a224b8dba30dfc937b41e31cf86729 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java @@ -18,10 +18,8 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa public List getHomeWork(Connection connection, int id) throws SQLException { // SQL语句 String sql ="SELECT homework.*,teacher.name , submit.submitStatus FROM homework " + - "JOIN homework_student ON homework.homework_id = homework_student.homework_id " + "JOIN teacher ON homework.teacher_id = teacher.id " + - "LEFT JOIN submit ON homework_student.student_id = submit.student_id AND homework.homework_id = submit.homework_id " + - "WHERE homework_student.student_id = ?"; + "LEFT JOIN submit ON submit.student_id = ? AND homework.homework_id = submit.homework_id "; List homeworkList = new ArrayList<>(); try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1, id); @@ -54,10 +52,9 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa @Override public List getHomeWorkByCourse(Connection connection, String course_name,int id) throws SQLException { - String sql = "SELECT homework.* FROM homework " + - "JOIN homework_student ON homework_student.homework_id = homework.homework_id " + - "JOIN student ON homework_student.student_id = student.id " + - "WHERE homework.course_name = ? AND student.id = ? "; + String sql = "SELECT homework.*,teacher.name , submit.submitStatus FROM homework " + + "JOIN teacher ON homework.teacher_id = teacher.id " + + "LEFT JOIN submit ON submit.student_id = ? AND homework.homework_id = submit.homework_id "; List homeworkList = new ArrayList<>(); try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setString(1, course_name); diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/NoticeDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/NoticeDaoImpl.java index d1eefc0fa94daa5126dea8f3a5f0db0c699fd666..aee99d605a5f25b229c988516392e33906361c5c 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/NoticeDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/NoticeDaoImpl.java @@ -2,18 +2,39 @@ package com.wetoband.template.dao.impl; import com.wetoband.template.dao.NoticeDao; import com.wetoband.template.entity.Notice; +import com.wetoband.template.entity.Question; import org.springframework.stereotype.Repository; import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; - @Repository public class NoticeDaoImpl implements NoticeDao { @Override public List getNotice(Connection connection, int usr_id) throws SQLException { - return null; + ArrayList Notices = new ArrayList<>(); + String sql = "SELECT * FROM notice WHERE student_id = 1 ORDER BY submit_time ASC"; + + try (PreparedStatement pstm = connection.prepareStatement(sql)) { + try (ResultSet rs = pstm.executeQuery()) { + while (rs.next()) { + Notice notice = new Notice(); + notice.setContent(rs.getString("content")); + notice.setType(rs.getInt("type")); + notice.setIs_read(rs.getInt("is_read")); + notice.setSubmit_time(rs.getString("submit_time")); + Notices.add(notice); + } + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + return Notices; } } diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java index 712cef362154193a54d0503dc1bd4f0fcbf75602..8c2360a2f1fb29f6bfc3be2895765d81a0973c61 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/QuestionDaoImpl.java @@ -1,10 +1,7 @@ package com.wetoband.template.dao.impl; import com.wetoband.template.dao.QuestionDao; -import com.wetoband.template.entity.HomeWork; import com.wetoband.template.entity.Question; -import com.wetoband.template.entity.Troubleshooting; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import java.sql.*; @@ -16,7 +13,31 @@ public class QuestionDaoImpl implements QuestionDao { @Override public ArrayList getQuestion(Connection connection, int homework_id) throws Exception { ArrayList questions = new ArrayList<>(); - try (PreparedStatement pstm = connection.prepareStatement("SELECT * FROM question WHERE question_id in(SELECT homework_question.question_id FROM homework_question WHERE homework_id = ?)")) { + String sql ="SELECT\n" + + " tmp.question_id,\n" + + " tmp.title,\n" + + " tmp.type,\n" + + " JSON_ARRAYAGG(tmp.option_value) AS optionStr\n" + + "FROM\n" + + " (\n" + + " SELECT\n" + + " q.title,\n" + + " q.question_id,\n" + + " q.type,\n" + + " qo.option_value\n" + + " FROM\n" + + " question q\n" + + " INNER JOIN question_option qo ON q.question_id = qo.question_id\n" + + " ) AS tmp\n" + + "WHERE\n" + + " tmp.question_id IN (\n" + + " SELECT hq.question_id\n" + + " FROM homework_question hq\n" + + " WHERE hq.homework_id = ?\n" + + " )\n" + + "GROUP BY\n" + + " tmp.question_id;"; + try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1, homework_id); try (ResultSet rs = pstm.executeQuery()) { while (rs.next()) { @@ -24,18 +45,7 @@ public class QuestionDaoImpl implements QuestionDao { question.setQuestion_id(rs.getInt("question_id")); question.setTitle(rs.getString("title")); question.setType(rs.getInt("type")); - if (rs.getString("option_A")!=null){ - question.setOption_A(rs.getString("option_A")); - } - if (rs.getString("option_B")!=null){ - question.setOption_B(rs.getString("option_B")); - } - if (rs.getString("option_C")!=null){ - question.setOption_C(rs.getString("option_C")); - } - if (rs.getString("option_D")!=null){ - question.setOption_D(rs.getString("option_D")); - } + question.setOptionArr(rs.getString("optionStr")); questions.add(question); } } diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java index b5e4bba6c4b55823bb4144c8d4d32ff723349fbb..ae1146bf0082c01a0ca8857cb1e277211984f4ed 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java @@ -16,7 +16,7 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { @Override public List getWrongHomework(Connection connection, int student_id) throws SQLException { // SQL语句 - String sql = "SELECT wrongquestionsubmit.student_id, homework.homework_id, addTime, reviewStatus, homework.homework_name, homework.course_name, submit.score " + + String sql = "SELECT wrongquestionsubmit.student_id, homework.homework_id, wrongquestionsubmit.addTime, reviewStatus, homework.homework_name, homework.course_name, submit.score " + "FROM wrongquestionsubmit " + "JOIN homework ON homework.homework_id = wrongquestionsubmit.homework_id " + "LEFT JOIN submit ON submit.homework_id = wrongquestionsubmit.homework_id AND submit.student_id = wrongquestionsubmit.student_id " + @@ -28,7 +28,8 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { while (rs.next()) { wrongQuestionSubmit wrongQuestionSubmit = new wrongQuestionSubmit(); wrongQuestionSubmit.setHomework_id(rs.getInt("homework_id")); - wrongQuestionSubmit.setAddTime(rs.getTime("addTime")); + System.out.println(rs.getTime("addTime")); + wrongQuestionSubmit.setAddTime(rs.getString("addTime")); if (rs.getInt("reviewStatus") == 1){ wrongQuestionSubmit.setReviewStatus("已复习"); }else{ @@ -58,18 +59,6 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { question.setQuestion_id(rs.getInt("question_id")); question.setTitle(rs.getString("title")); question.setType(rs.getInt("type")); - if (rs.getString("option_A")!=null){ - question.setOption_A(rs.getString("option_A")); - } - if (rs.getString("option_B")!=null){ - question.setOption_B(rs.getString("option_B")); - } - if (rs.getString("option_C")!=null){ - question.setOption_C(rs.getString("option_C")); - } - if (rs.getString("option_D")!=null){ - question.setOption_D(rs.getString("option_D")); - } questions.add(question); } } @@ -87,7 +76,7 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { "WHERE student_id = ? AND homework_id = ? "; try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setString(1, wrongQuestionSubmit.getAnswer()); - pstm.setTimestamp(2, new Timestamp(wrongQuestionSubmit.getAddTime().getTime())); + pstm.setTimestamp(2, new Timestamp(wrongQuestionSubmit.getSubmitTime().getTime())); pstm.setInt(3, 1); pstm.setInt(4, wrongQuestionSubmit.getHomework_id()); pstm.setInt(5, wrongQuestionSubmit.getStudent_id()); diff --git a/HomeWork-java/src/com/wetoband/template/entity/Question.java b/HomeWork-java/src/com/wetoband/template/entity/Question.java index 08aa8c006dd6489e3de3ed252876856da9f95721..5cfe8607ad511198cf530e8211663ed0821f60ab 100644 --- a/HomeWork-java/src/com/wetoband/template/entity/Question.java +++ b/HomeWork-java/src/com/wetoband/template/entity/Question.java @@ -1,11 +1,15 @@ package com.wetoband.template.entity; +import com.alibaba.fastjson.JSON; import lombok.Data; +import org.apache.http.impl.client.ClientParamsStack; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.Table; -import java.util.Date; +import java.lang.reflect.Array; +import java.util.*; + @Data @Table(name = "question") @@ -17,16 +21,16 @@ public class Question { private String title; @Column(name ="type") private int type; - @Column(name ="option_A") - private String option_A; - @Column(name ="option_B") - private String option_B; - @Column(name ="option_C") - private String option_C; - @Column(name ="option_D") - private String option_D; @Column(name ="correct_answer") private String correct_answer; + private List optionArr; + public void setOptionArr(String optionStr) { + List optionArr = JSON.parseArray(optionStr, String.class); + for (String str : optionArr) { + System.out.println(str); + } + this.optionArr = optionArr; + } } diff --git a/HomeWork-java/src/com/wetoband/template/entity/wrongQuestionSubmit.java b/HomeWork-java/src/com/wetoband/template/entity/wrongQuestionSubmit.java index 7b9b451c154d4551029ef61a9dfc025c93f8117e..ed609002eb6f13c90adf05c973cb83e61818c948 100644 --- a/HomeWork-java/src/com/wetoband/template/entity/wrongQuestionSubmit.java +++ b/HomeWork-java/src/com/wetoband/template/entity/wrongQuestionSubmit.java @@ -21,8 +21,9 @@ public class wrongQuestionSubmit { @Column(name = "answer") private String answer; @Column(name = "addTime") - private Date addTime; - + private String addTime; + @Column(name = "submitTime") + private Date submitTime; private String reviewStatus; private String homework_name; private String course_name; diff --git a/HomeWork-java/src/com/wetoband/template/service/WrongQuestionService.java b/HomeWork-java/src/com/wetoband/template/service/WrongQuestionService.java index abc3bd7e969e5d232236fdc1a3f620f8e043fd61..07f69bdde0e3f590798b0bcd052a1e06267e5ded 100644 --- a/HomeWork-java/src/com/wetoband/template/service/WrongQuestionService.java +++ b/HomeWork-java/src/com/wetoband/template/service/WrongQuestionService.java @@ -12,5 +12,5 @@ import java.util.Map; public interface WrongQuestionService { public List getWrongHomework(int student_id) throws Exception; List getWrongQuestion(int homework_id,int student_id) throws Exception; - void submitWrongQuestion(Integer student_id, Integer homework_id, Date addTimeDate, Map> userAnswersMap) throws Exception; + void submitWrongQuestion(Integer student_id, Integer homework_id, Date submitTimeDate, Map> userAnswersMap) throws Exception; } diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/WrongQuestionServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/WrongQuestionServiceImpl.java index bd8de6cdbd8b75c90f52aeddfe53df03b8ee25a0..f9e2cb7e1219809cc520a8a2ef7f79b59711d20f 100644 --- a/HomeWork-java/src/com/wetoband/template/service/impl/WrongQuestionServiceImpl.java +++ b/HomeWork-java/src/com/wetoband/template/service/impl/WrongQuestionServiceImpl.java @@ -34,7 +34,7 @@ public class WrongQuestionServiceImpl implements WrongQuestionService { } @Override - public void submitWrongQuestion(Integer student_id, Integer homework_id, Date addTimeDate, Map> userAnswersMap) throws Exception { + public void submitWrongQuestion(Integer student_id, Integer homework_id, Date submitTimeDate, Map> userAnswersMap) throws Exception { final Connection connection = ActionToolBase.getDBConnection(); wrongQuestionSubmit wrongQuestionSubmit = new wrongQuestionSubmit(); String redisKey = "w-" + homework_id+ "-" +student_id ;//设置key @@ -55,7 +55,7 @@ public class WrongQuestionServiceImpl implements WrongQuestionService { } wrongQuestionSubmit.setStudent_id(student_id); wrongQuestionSubmit.setHomework_id(homework_id); - wrongQuestionSubmit.setAddTime(addTimeDate); + wrongQuestionSubmit.setSubmitTime(submitTimeDate); wrongQuestionSubmit.setAnswer(redisKey); } catch (Exception e) { e.printStackTrace(); diff --git a/HomeWork-vite/src/views/WrongManager/WrongQustions.vue b/HomeWork-vite/src/views/WrongManager/WrongQustions.vue index 5ff0c2b94f2c1949dc69bff8ba1ed372fde16ee6..f7683e1d57c5867f3a277ff44600951784d3dad0 100644 --- a/HomeWork-vite/src/views/WrongManager/WrongQustions.vue +++ b/HomeWork-vite/src/views/WrongManager/WrongQustions.vue @@ -42,7 +42,7 @@ import { onMounted, reactive, ref, watch, toRaw } from 'vue'; import { HttpClient } from '@/network/HttpClient'; import { useRoute } from 'vue-router'; const questions = reactive([]); -const addTime = ref('') +const submitTime = ref('') const answered = ref(0); const homework_id = ref(null); const route = useRoute(); @@ -100,7 +100,8 @@ const getCurrentTime = () => { const day = String(now.getDate()).padStart(2, '0'); const hours = String(now.getHours()).padStart(2, '0'); const minutes = String(now.getMinutes()).padStart(2, '0'); - addTime.value = `${year}-${month}-${day} ${hours}:${minutes}`; + submitTime.value = `${year}-${month}-${day} ${hours}:${minutes}`; + console.log(submitTime.value) } const submitWrongQuestion = async () => { // 将响应式对象转换为普通对象 @@ -111,7 +112,7 @@ const submitWrongQuestion = async () => { await HttpClient.post('submitWrongQuestion', { homework_id: homework_id.value, student_id: 1, - addTime: addTime.value, + submitTime: submitTime.value, userAnswers: JSON.stringify(userAnswersArray) }).then(res => { console.log(res.data.data);