diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java index 05f010f9535af0be9c6b7b2f3b8ca7cbad1d38fa..d82a00fee5a78189c394bbff3c3661f098b46c13 100644 --- a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java +++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java @@ -24,7 +24,7 @@ import java.util.*; /** * */ -public class ToolTemplateAction extends ActionToolBase { + public class ToolTemplateAction extends ActionToolBase { public final static ApplicationContext IOC = AppConfig.initApplicationContext(); //获取service实例 HomeWorkService homeWorkService=IOC.getBean(HomeWorkServiceImpl.class); @@ -94,32 +94,24 @@ public class ToolTemplateAction extends ActionToolBase { //提交作业(简答题) @Action public R submitHomework(HttpServletRequest request) throws Exception { - String userAnswers = request.getParameter("userAnswers"); - // 解析 JSON 字符串为 Map - System.out.println("username:"+userAnswers); - List userAnswersList = JSON.parseArray(userAnswers, String.class); - System.out.println("usernameList:"+userAnswersList); - - Map> userAnswersMap = parseUserAnswers(userAnswers); - System.out.println("username:"+userAnswersMap); + + String userAnswersJson = request.getParameter("userAnswersJson"); Integer studentId =Integer.parseInt(request.getParameter("student_id")); Integer homeworkId =Integer.parseInt(request.getParameter("homework_id")); //获取提交时间设置为年月日格式 String submitTimeStr = request.getParameter("submitTime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date submitTimeDate = sdf.parse(submitTimeStr); - homeWorkService.submitHomework(studentId,homeworkId,submitTimeDate,userAnswersMap); + homeWorkService.submitHomework(studentId,homeworkId,submitTimeDate,userAnswersJson); return R.ok().message("请求成功"); } //提交错题答案 @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); + + + String userAnswersJson = request.getParameter("userAnswersJson"); Integer studentId =Integer.parseInt(request.getParameter("student_id")); Integer homeworkId =Integer.parseInt(request.getParameter("homework_id")); //获取提交时间设置为年月日格式 @@ -127,8 +119,7 @@ public class ToolTemplateAction extends ActionToolBase { System.out.println(submitTimeStr); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date submitTimeDate = sdf.parse(submitTimeStr); -// homeWorkService.submitHomework(studentId,homeworkId,addTimeDate,userAnswersMap); - wrongQuestionService.submitWrongQuestion(studentId,homeworkId,submitTimeDate,userAnswersMap); + wrongQuestionService.submitWrongQuestion(studentId,homeworkId,submitTimeDate,userAnswersJson); return R.ok().message("请求成功"); } 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 f7ce280c0b4645ffe70b1f7a788332abbd100e7d..b4b37f6c5b24bcc3c906a396b0f89bc5fc96be77 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/WrongQuestionDaoImpl.java @@ -91,7 +91,7 @@ public class WrongQuestionDaoImpl implements WrongQuestionDao { public void submitWrongQuestion(Connection connection, wrongQuestionSubmit wrongQuestionSubmit) { String sql = "UPDATE wrongquestionsubmit" + " SET answer = ? ," + - "addTime = ? ," + + "submitTime = ? ," + "reviewStatus = ?," + "teacher_id = (SELECT teacher_id FROM homework WHERE homework_id = ?) " + "WHERE student_id = ? AND homework_id = ? "; diff --git a/HomeWork-java/src/com/wetoband/template/entity/Question.java b/HomeWork-java/src/com/wetoband/template/entity/Question.java index 5cfe8607ad511198cf530e8211663ed0821f60ab..cc1566f5b096b3275f6c04132041965d5571a6bf 100644 --- a/HomeWork-java/src/com/wetoband/template/entity/Question.java +++ b/HomeWork-java/src/com/wetoband/template/entity/Question.java @@ -28,9 +28,6 @@ public class Question { 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/service/HomeWorkService.java b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java index aa511c49b95610fbc49b7e4c6d5022927dcdbf3b..d64aaef4b14a70a9ec149146c309c3e9320863f0 100644 --- a/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java +++ b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java @@ -16,5 +16,5 @@ public interface HomeWorkService { public List getHomeWorkByCourse(String course_name,int id) throws Exception; public List getHomeWorkByTeacherName(String name,int id) throws Exception; public List getHomeWorkByHomeworkName(String homework_name,int id) throws Exception; - void submitHomework(Integer student_id, Integer homeworkId, Date submitTimeDate, Map> userAnswers) throws Exception; + void submitHomework(Integer student_id, Integer homeworkId, Date submitTimeDate, String userAnswersJson) throws Exception; } diff --git a/HomeWork-java/src/com/wetoband/template/service/WrongQuestionService.java b/HomeWork-java/src/com/wetoband/template/service/WrongQuestionService.java index 07f69bdde0e3f590798b0bcd052a1e06267e5ded..b69f1fc050fcca49c387061074019bbff5c2d1c7 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 submitTimeDate, Map> userAnswersMap) throws Exception; + void submitWrongQuestion(Integer student_id, Integer homework_id, Date submitTimeDate, String userAnswersJson) throws Exception; } diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java index 762ad518080f853b1aeb1c572f6e0b8e99cf5cf6..f0f92d49f5e86f77793dbb08ca42ccaebea1d5af 100644 --- a/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java +++ b/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java @@ -24,15 +24,7 @@ public class HomeWorkServiceImpl implements HomeWorkService { @Autowired private HomeWorkDao homeWorkDao; -// @Autowired -// private RedisTemplate redisTemplate; - /*@Override - public HomeWork getHomeWorkById(int id) throws Exception { - //这里是获取数据库连接。调用了jar包中的方法。具体我没看懂,反正这样子就能拿到了连接。。。 - final Connection connection = ActionToolBase.getDBConnection(); - //将连接传入dao层。 - return homeWorkDao.getHomeWorkById(connection,id); - }*/ + //获取所有作业 public List getHomeWork(int id) throws Exception { @@ -56,10 +48,9 @@ public class HomeWorkServiceImpl implements HomeWorkService { } @Override - public void submitHomework(Integer studentId, Integer homeworkId, Date submitTimeDate, Map> userAnswersMap) throws Exception { + public void submitHomework(Integer studentId, Integer homeworkId, Date submitTimeDate, String userAnswersJson ) throws Exception { final Connection connection = ActionToolBase.getDBConnection(); - Submit submitHomework = new Submit(); submitHomework.setSubmitId(studentId); submitHomework.setSubmitTime(submitTimeDate); @@ -67,6 +58,7 @@ public class HomeWorkServiceImpl implements HomeWorkService { submitHomework.setCorrect(0);//设置批改状态为0 submitHomework.setSubmitStatus(1);//设置提交状态为0 submitHomework.setStudentId(studentId); + submitHomework.setAnswer(userAnswersJson); homeWorkDao.submitHomework(connection,submitHomework); } 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 f9e2cb7e1219809cc520a8a2ef7f79b59711d20f..4c578aab69247f9e1c50c7a1b46060a3f55022fa 100644 --- a/HomeWork-java/src/com/wetoband/template/service/impl/WrongQuestionServiceImpl.java +++ b/HomeWork-java/src/com/wetoband/template/service/impl/WrongQuestionServiceImpl.java @@ -34,32 +34,15 @@ public class WrongQuestionServiceImpl implements WrongQuestionService { } @Override - public void submitWrongQuestion(Integer student_id, Integer homework_id, Date submitTimeDate, Map> userAnswersMap) throws Exception { + public void submitWrongQuestion(Integer student_id, Integer homework_id, Date submitTimeDate,String userAnswersJson) throws Exception { final Connection connection = ActionToolBase.getDBConnection(); wrongQuestionSubmit wrongQuestionSubmit = new wrongQuestionSubmit(); - String redisKey = "w-" + homework_id+ "-" +student_id ;//设置key - // 创建 Jedis 连接对象 - try (Jedis jedis = new Jedis("8.138.182.34", 6379)) { // 替换为 Redis 服务器的 IP 和端口 - // 如果 Redis 设置了密码,需要进行身份校验 - jedis.auth("123456"); // 如果没有密码,可以省略这行 - // 测试连接 - String ping = jedis.ping(); - System.out.println("连接成功,Ping 返回结果:" + ping); - // 将 userAnswersMap 存入 Redis - for (Map.Entry> entry : userAnswersMap.entrySet()) { - String field = entry.getKey(); // 获取 key - List values = entry.getValue(); // 获取 value 列表 - String value = String.join(",", values); // 将 List 转换为逗号分隔的字符串 - // 使用 Jedis 将数据存入 Redis 的 Hash 结构 - jedis.hset(redisKey, field, value); - } + wrongQuestionSubmit.setStudent_id(student_id); wrongQuestionSubmit.setHomework_id(homework_id); wrongQuestionSubmit.setSubmitTime(submitTimeDate); - wrongQuestionSubmit.setAnswer(redisKey); - } catch (Exception e) { - e.printStackTrace(); - } + wrongQuestionSubmit.setAnswer(userAnswersJson); + wrongQuestionDao.submitWrongQuestion(connection,wrongQuestionSubmit); } } diff --git a/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue b/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue index 34ecb9e983bcfa2e259cc9b75709dc7b66ce8ee0..1a94c8c778b57c6691c6b1027ea5516a9cb9fe81 100644 --- a/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue +++ b/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue @@ -47,7 +47,8 @@ const submitTime = ref('') const answered = ref(0); const homework_id = ref(null); const route = useRoute(); -const userAnswers = reactive([]); +const userAnswers = reactive([]) +let userAnswersJson = ref(' '); onMounted(() => { homework_id.value = route.query.homework_id; @@ -60,6 +61,14 @@ const submitAnswers = () => { return; } getCurrentTime(); + console.log(userAnswers); + userAnswersJson = JSON.stringify(userAnswers.map((answer, index) => ({ + question_id: questions[index].id, + answer: Array.isArray(answer) ? answer : [answer] // 处理单选和多选题的答案格式统一 + }))); + + console.log(userAnswersJson); + submitHomework() }; // 获取题目 @@ -77,16 +86,6 @@ const getQuestion = async () => { title: question.title, optionArr: question.optionArr, }; - - // ['A', 'B', 'C', 'D', 'E'].forEach(optionKey => { - // const optionValue = question[`option_${optionKey}`]; - // if (optionValue) { - // mappedQuestion.options.push({ - // value: question.question_id + ':' + optionKey, - // label: optionValue - // }); - // } - // }) questions.push(mappedQuestion); }); }).catch(err => { @@ -104,16 +103,12 @@ const getCurrentTime = () => { submitTime.value = `${year}-${month}-${day} ${hours}:${minutes}`; } const submitHomework = async () => { - // 将响应式对象转换为普通对象 - - const userAnswersArray = toRaw(userAnswers); - console.log(userAnswers); await HttpClient.post('submitHomework', { homework_id: homework_id.value, student_id: 1, submitTime: submitTime.value, - userAnswers: JSON.stringify(userAnswersArray) + userAnswersJson: userAnswersJson }).then(res => { console.log(res.data.data); alert('提交成功!'); diff --git a/HomeWork-vite/src/views/WrongManager/WrongQustions.vue b/HomeWork-vite/src/views/WrongManager/WrongQustions.vue index f7683e1d57c5867f3a277ff44600951784d3dad0..03008c4f12dba941acd1e2719c8630fdafd5d4dd 100644 --- a/HomeWork-vite/src/views/WrongManager/WrongQustions.vue +++ b/HomeWork-vite/src/views/WrongManager/WrongQustions.vue @@ -13,20 +13,20 @@ - {{ String.fromCharCode(65 + index) }}. - {{ option.label }} + {{ option }} - + {{ String.fromCharCode(65 + index) }}. - {{ option.label }} + {{ option }} @@ -47,6 +47,7 @@ const answered = ref(0); const homework_id = ref(null); const route = useRoute(); const userAnswers = reactive([]); +let userAnswersJson = ref(' '); onMounted(() => { homework_id.value = route.query.homework_id; @@ -58,6 +59,10 @@ const submitAnswers = () => { alert('还有题目未作答!'); return; } + userAnswersJson = JSON.stringify(userAnswers.map((answer, index) => ({ + question_id: questions[index].id, + answer: Array.isArray(answer) ? answer : [answer] + }))); getCurrentTime(); submitWrongQuestion() }; @@ -75,19 +80,13 @@ const gerWrongQuestion = async () => { id: question.question_id, type: question.type === 0 ? 'single' : 'multiple', title: question.title, - options: [], + optionArr: question.optionArr, }; - ['A', 'B', 'C', 'D', 'E'].forEach(optionKey => { - const optionValue = question[`option_${optionKey}`]; - if (optionValue) { - mappedQuestion.options.push({ - value: question.question_id + ':' + optionKey, - label: optionValue - }); - } - }) + questions.push(mappedQuestion); }); + console.log(questions); + }).catch(err => { console.log(err) }) @@ -104,16 +103,13 @@ const getCurrentTime = () => { console.log(submitTime.value) } const submitWrongQuestion = async () => { - // 将响应式对象转换为普通对象 - const userAnswersArray = toRaw(userAnswers); - console.log(userAnswers); await HttpClient.post('submitWrongQuestion', { homework_id: homework_id.value, student_id: 1, submitTime: submitTime.value, - userAnswers: JSON.stringify(userAnswersArray) + userAnswersJson: userAnswersJson }).then(res => { console.log(res.data.data); alert('提交成功!');