From 02c501930a291e30b483ae49559aaf966eac4bdd Mon Sep 17 00:00:00 2001 From: bin <1178635798@qq.com> Date: Sat, 22 Mar 2025 12:06:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E6=94=B9=E9=83=A8=E5=88=86=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/action/ToolTemplateAction.java | 25 ++++++- .../wetoband/template/dao/HomeWorkDao.java | 5 +- .../com/wetoband/template/dao/SubmitDao.java | 3 +- .../template/dao/impl/HomeWorkDaoImpl.java | 28 +++++++- .../template/dao/impl/SubmitDaoImpl.java | 44 +++++++++--- .../template/service/HomeWorkService.java | 3 +- .../template/service/SubmitService.java | 4 +- .../service/impl/HomeWorkServiceImpl.java | 10 ++- .../service/impl/SubmitServiceImpl.java | 10 ++- TeacherHomeWork-vite/src/router/index.js | 13 +--- .../views/GradeHomework/GradeHomeworkList.vue | 68 +++++++++++++++++-- .../views/HomeWorkManager/HomeworkList.vue | 63 ++++++++++++++--- .../HomeworkQuestion/HomeworkQuestionList.vue | 50 -------------- .../src/views/HomeworkQuestion/answer.vue | 11 --- .../src/views/HomeworkQuestion/index.vue | 17 ----- 15 files changed, 231 insertions(+), 123 deletions(-) delete mode 100644 TeacherHomeWork-vite/src/views/HomeworkQuestion/HomeworkQuestionList.vue delete mode 100644 TeacherHomeWork-vite/src/views/HomeworkQuestion/answer.vue delete mode 100644 TeacherHomeWork-vite/src/views/HomeworkQuestion/index.vue diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java index 5520ddc..d1fb7e2 100644 --- a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java +++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java @@ -217,17 +217,23 @@ import java.util.*; //教师端获取作业 @Action public R getTHomeWork(HttpServletRequest request) throws Exception { + int Page = Integer.parseInt(request.getParameter("page")); + int pageSize = Integer.parseInt(request.getParameter("pageSize")); + int offset = (Page - 1) * pageSize; Integer id = Integer.parseInt(request.getParameter("id")); - List homeWork = homeWorkService.getTHomeWork(id); + List homeWork = homeWorkService.getTHomeWork(id, offset, pageSize); return R.ok().put("data", homeWork); } //教师端查找未批,已批和未提交的学生 @Action public R getGradeHomeWork(HttpServletRequest request) throws Exception { + Integer page= Integer.parseInt(request.getParameter("page")); + Integer pageSize= Integer.parseInt(request.getParameter("pageSize")); + Integer offset = (page - 1) * pageSize; Integer id = Integer.parseInt(request.getParameter("id")); Integer submitStatus = Integer.parseInt(request.getParameter("submitStatus")); - List GradeHomeWork = submitService.getGradeHomeWork(submitStatus, id); + List GradeHomeWork = submitService.getGradeHomeWork(submitStatus, id, offset, pageSize); return R.ok().put("data", GradeHomeWork); } //教师端作业关键字查询 @@ -246,4 +252,19 @@ import java.util.*; List homeWork = homeWorkService.getHomeWorkByStatus(id,submitStatus); return R.ok().put("data", homeWork); } + //获取教师端作业数量 + @Action + public R getTHomeWorkCount(HttpServletRequest request) throws Exception { + Integer id = Integer.parseInt(request.getParameter("id")); + int count = homeWorkService.getTHomeWorkCount(id); + return R.ok().put("data", count); + } + //获取批改页面作业数量 + @Action + public R getGradeCount(HttpServletRequest request) throws Exception { + Integer id = Integer.parseInt(request.getParameter("id")); + Integer submitStatus = Integer.parseInt(request.getParameter("submitStatus")); + int count=submitService.getGradeCount(id,submitStatus); + return R.ok().put("data", count); + } } \ No newline at end of file diff --git a/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java b/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java index d3543e2..d72e1b1 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java +++ b/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java @@ -16,11 +16,14 @@ public interface HomeWorkDao extends IBaseDao { List getHomeWorkByHomeworkName(Connection connection, String homework_name,int id) throws SQLException; - List getTHomeWork(Connection connection, int id); + List getTHomeWork(Connection connection, int id, int offset, int pageSize); List getHomeWorkByKeyword(Connection connection, int id,String keyword); List getHomeWorkByStatus(Connection connection, int id,String status); + int getTHomeWorkCount(Connection connection, int id); //提交作业 void submitHomework(Connection connection, Submit submitHomework); int getCount(Connection connection, int id) throws SQLException; + + } diff --git a/HomeWork-java/src/com/wetoband/template/dao/SubmitDao.java b/HomeWork-java/src/com/wetoband/template/dao/SubmitDao.java index 294ee73..5a46334 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/SubmitDao.java +++ b/HomeWork-java/src/com/wetoband/template/dao/SubmitDao.java @@ -6,6 +6,7 @@ import java.sql.Connection; import java.util.List; public interface SubmitDao { - public List getGradeHomeWork(Connection connection, int submitStatus,int id); + public List getGradeHomeWork(Connection connection, int submitStatus,int id, Integer offset, Integer pageSize); + int getGradeCount(Connection conntion, Integer id, Integer submitStatus); } 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 f8ae0b6..a00351e 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java @@ -31,6 +31,27 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa return count; } + @Override + public int getTHomeWorkCount(Connection connection, int id) { + String sql="SELECT " + + "COUNT(DISTINCT homework.homework_id) " + + "FROM homework " + + "RIGHT JOIN submit ON homework.homework_id = submit.homework_id " + + "WHERE submit.teacher_id = ? "; + int count = 0; + try (PreparedStatement pstm = connection.prepareStatement(sql)) { + pstm.setInt(1,id); + try (ResultSet rs = pstm.executeQuery()) { + while (rs.next()) { + count = rs.getInt(1); + } + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + return count; + } + @Override public List getHomeWork(Connection connection, int id,int offset, int pageSize) throws SQLException { @@ -170,7 +191,7 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa } @Override - public List getTHomeWork(Connection connection, int id) { + public List getTHomeWork(Connection connection, int id, int offset, int pageSize) { String sql = "SELECT homework.homework_name, homework.startTime, homework.finishTime, homework.homework_id, " + "SUM(CASE WHEN submit.submitStatus = 0 THEN 1 ELSE 0 END) AS unsubmitted_count, " + "SUM(CASE WHEN submit.submitStatus = 1 THEN 1 ELSE 0 END) AS submitted_count, " + @@ -179,10 +200,13 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa "FROM homework " + "RIGHT JOIN submit ON homework.homework_id = submit.homework_id " + "WHERE submit.teacher_id = ? " + - "GROUP BY homework.homework_id"; + "GROUP BY homework.homework_id "+ + "LIMIT ?,?"; List homeworkList = new ArrayList<>(); try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1,id); + pstm.setInt(2,offset); + pstm.setInt(3,pageSize); try (ResultSet rs = pstm.executeQuery()) { while (rs.next()) { HomeWork homework = new HomeWork(); diff --git a/HomeWork-java/src/com/wetoband/template/dao/impl/SubmitDaoImpl.java b/HomeWork-java/src/com/wetoband/template/dao/impl/SubmitDaoImpl.java index 6eb49f4..fb7ddbe 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/SubmitDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/SubmitDaoImpl.java @@ -17,23 +17,25 @@ import java.util.List; public class SubmitDaoImpl implements SubmitDao { @Override - public List getGradeHomeWork(Connection connection, int submitStatus, int id) { - String sql = "SELECT " + - " student.name, student.sno " + + public List getGradeHomeWork(Connection connection, int submitStatus, int id, Integer offset, Integer pageSize) { + String sql = + "SELECT " + + " student.name, student.sno " + "FROM " + - " student " + + " student " + "JOIN " + - " submit ON student.id = submit.student_id " + + " submit ON student.id = submit.student_id " + "WHERE " + - " submit.teacher_id=1 AND submit.submitStatus = ? AND submit.homework_id = ? " + - "GROUP BY " + - " submit.student_id"; + " submit.teacher_id=1 AND submit.submitStatus = ? AND submit.homework_id = ? " + + "LIMIT ?,?"; List submitList = new ArrayList<>(); try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1,submitStatus); pstm.setInt(2,id); + pstm.setInt(3,offset); + pstm.setInt(4,pageSize); try (ResultSet rs = pstm.executeQuery()) { while (rs.next()) { Student student = new Student(); @@ -48,4 +50,30 @@ public class SubmitDaoImpl implements SubmitDao { return submitList; } + @Override + public int getGradeCount(Connection conntion, Integer id, Integer submitStatus) { + String sql ="SELECT\n" + + "COUNT(DISTINCT student.name)" + + "FROM\n" + + "student \n" + + "JOIN\n" + + "submit ON student.id = submit.student_id\n" + + "WHERE\n" + + "submit.teacher_id=1 AND submit.submitStatus = ? AND submit.homework_id = ?"; + + int count = 0; + + try (PreparedStatement pstm = conntion.prepareStatement(sql)) { + pstm.setInt(1, submitStatus); + pstm.setInt(2, id); + try (ResultSet rs = pstm.executeQuery()) { + while (rs.next()) { + count = rs.getInt(1); + } + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + return count; + } } diff --git a/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java index b55e8b2..e347913 100644 --- a/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java +++ b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java @@ -14,9 +14,10 @@ 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; - public List getTHomeWork(int id) throws Exception; + public List getTHomeWork(int id,int offset,int pageSize) throws Exception; public List getHomeWorkByKeyword(int id,String keyword) throws Exception; List getHomeWorkByStatus(Integer id, String submitStatus) throws Exception; + public int getTHomeWorkCount(int id) throws Exception; void submitHomework(Integer student_id, Integer homeworkId, Date submitTimeDate, String userAnswersJson) throws Exception; public int getCount(int id) throws Exception; diff --git a/HomeWork-java/src/com/wetoband/template/service/SubmitService.java b/HomeWork-java/src/com/wetoband/template/service/SubmitService.java index 9ba789f..a3211eb 100644 --- a/HomeWork-java/src/com/wetoband/template/service/SubmitService.java +++ b/HomeWork-java/src/com/wetoband/template/service/SubmitService.java @@ -8,5 +8,7 @@ import java.util.List; public interface SubmitService { - public List getGradeHomeWork(int submitStatus,int id) throws Exception; + public List getGradeHomeWork(int submitStatus,Integer id, Integer offset, Integer pageSize) throws Exception; + + int getGradeCount(Integer id, Integer submitStatus) 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 e993811..b94821b 100644 --- a/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java +++ b/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java @@ -48,9 +48,9 @@ public class HomeWorkServiceImpl implements HomeWorkService { return homeWorkDao.getHomeWorkByHomeworkName(connection,homework_name,id); } - public List getTHomeWork(int id) throws Exception { + public List getTHomeWork(int id,int offset,int pageSize) throws Exception { final Connection connection = ActionToolBase.getDBConnection(); - return homeWorkDao.getTHomeWork(connection,id); + return homeWorkDao.getTHomeWork(connection,id,offset,pageSize); } @Override @@ -65,6 +65,12 @@ public class HomeWorkServiceImpl implements HomeWorkService { return homeWorkDao.getHomeWorkByStatus(connection,id,submitStatus); } + @Override + public int getTHomeWorkCount(int id) throws Exception { + final Connection connection = ActionToolBase.getDBConnection(); + return homeWorkDao.getTHomeWorkCount(connection,id); + } + // @Transactional() @Override public void submitHomework(Integer studentId, Integer homeworkId, Date submitTimeDate, String userAnswersJson ) throws Exception { diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/SubmitServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/SubmitServiceImpl.java index ba2ab7a..1f884a0 100644 --- a/HomeWork-java/src/com/wetoband/template/service/impl/SubmitServiceImpl.java +++ b/HomeWork-java/src/com/wetoband/template/service/impl/SubmitServiceImpl.java @@ -16,9 +16,15 @@ public class SubmitServiceImpl implements SubmitService { private SubmitDao submitDao; @Override - public List getGradeHomeWork(int submitStatus,int id) throws Exception { + public List getGradeHomeWork(int submitStatus,Integer id, Integer offset, Integer pageSize) throws Exception { final Connection conntion = ActionToolBase.getDBConnection(); - return submitDao.getGradeHomeWork(conntion,submitStatus,id); + return submitDao.getGradeHomeWork(conntion,submitStatus,id,offset,pageSize); + } + + @Override + public int getGradeCount(Integer id, Integer submitStatus) throws Exception { + final Connection conntion = ActionToolBase.getDBConnection(); + return submitDao.getGradeCount(conntion,id,submitStatus); } } diff --git a/TeacherHomeWork-vite/src/router/index.js b/TeacherHomeWork-vite/src/router/index.js index c236301..ee439ab 100644 --- a/TeacherHomeWork-vite/src/router/index.js +++ b/TeacherHomeWork-vite/src/router/index.js @@ -4,9 +4,8 @@ import HomeworkManager from '@/views/HomeworkManager/index.vue'; import GradeManger from '@/views/GradeManager/index.vue'; import LearningProgress from '@/views/LearningProgress/index.vue'; import GradeHomework from '@/views/GradeHomework/index.vue'; -import HomeworkQuestion from '@/views/HomeworkQuestion/index.vue'; import correct from '@/views/GradeHomework/correct.vue'; -import answer from '@/views/HomeworkQuestion/answer.vue'; + const routes = [ { @@ -35,21 +34,11 @@ const routes = [ component: GradeHomework, props: true, }, - { - path: '/HomeworkQuestion', - name:'HomeworkQusetion', - component: HomeworkQuestion, - }, { path: '/GradeHomework/correct', name: 'correct', component: correct, }, - { - path: '/GradeHomework/answer', - name: 'answer', - component: answer, - }, // { // path: '/:pathMatch(.*)*', // name: 'NotFound', diff --git a/TeacherHomeWork-vite/src/views/GradeHomework/GradeHomeworkList.vue b/TeacherHomeWork-vite/src/views/GradeHomework/GradeHomeworkList.vue index 539e4f5..37fcc0b 100644 --- a/TeacherHomeWork-vite/src/views/GradeHomework/GradeHomeworkList.vue +++ b/TeacherHomeWork-vite/src/views/GradeHomework/GradeHomeworkList.vue @@ -21,6 +21,21 @@ + +
+ + + +
+ @@ -38,30 +53,59 @@ } const radio=ref(2) const router=useRoute(); + const currentPage=ref('1') + const pageSize=ref('2') + const totalItems = ref('100') + const jumpPage = ref('') const tableData = ref([]); //获取作业ID const homeworkId = router.params.homeworkId; - // 获取待批作业信息 + // 获取学生提交状态信息 const getGradeHomework = async () => { await HttpClient.get('getGradeHomeWork', { submitStatus:radio.value, - id: homeworkId + id:homeworkId, + page:currentPage.value, + pageSize:pageSize.value, }).then(res => { - tableData.value = res.data.data; + const transformedData = res.data.data.map(item => { + return { + studentSno:item.studentSno, + studentName:item.studentName + }; + }); + tableData.value = transformedData; + console.log(transformedData); + }).catch(err => { console.log(err); }); }; + //获取列表总数 + const getCount = async () =>{ + await HttpClient.get('getGradeCount', { + submitStatus:radio.value, + id:homeworkId, + }).then(res => { + totalItems.value = res.data.data; + console.log(res); + }).catch(err => { + console.log(err); + }); + } + onMounted(() => { - getGradeHomework(); // 页面加载时获取待批作业信息 + getCount(); + getGradeHomework(); // 页面加载时获取待批作业信息 }); // 监听 radio 的变化,当它变化时重新调用 getGradeHomework 方法 watch(radio, () => { + getCount(); getGradeHomework(); }); @@ -70,7 +114,17 @@ } - + // 每页条数变化时触发 + const handleSizeChange = (val: number) => { + pageSize.value = val + getHomeWork() + } + // 当前页变化时触发 + const handleCurrentChange = (val: number) => { + currentPage.value = val + getHomeWork() + } + \ No newline at end of file diff --git a/TeacherHomeWork-vite/src/views/HomeWorkManager/HomeworkList.vue b/TeacherHomeWork-vite/src/views/HomeWorkManager/HomeworkList.vue index 0fcd670..2b0ae58 100644 --- a/TeacherHomeWork-vite/src/views/HomeWorkManager/HomeworkList.vue +++ b/TeacherHomeWork-vite/src/views/HomeWorkManager/HomeworkList.vue @@ -23,9 +23,22 @@ + +
+ + + +
- \ No newline at end of file diff --git a/TeacherHomeWork-vite/src/views/HomeworkQuestion/HomeworkQuestionList.vue b/TeacherHomeWork-vite/src/views/HomeworkQuestion/HomeworkQuestionList.vue deleted file mode 100644 index 8a71771..0000000 --- a/TeacherHomeWork-vite/src/views/HomeworkQuestion/HomeworkQuestionList.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/TeacherHomeWork-vite/src/views/HomeworkQuestion/answer.vue b/TeacherHomeWork-vite/src/views/HomeworkQuestion/answer.vue deleted file mode 100644 index 31895e2..0000000 --- a/TeacherHomeWork-vite/src/views/HomeworkQuestion/answer.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/TeacherHomeWork-vite/src/views/HomeworkQuestion/index.vue b/TeacherHomeWork-vite/src/views/HomeworkQuestion/index.vue deleted file mode 100644 index 4bf7675..0000000 --- a/TeacherHomeWork-vite/src/views/HomeworkQuestion/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file -- Gitee