diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java index 5520ddc745661ae2f98461869fb586c29a6c5d0e..d1fb7e242833f9aedf36897d53b5dd35f59438b2 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 d3543e2f2b34d6942430bfeae981b975ec75a05b..d72e1b1b7333fafa39f31bbbf7e5a0eece521485 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 294ee734a5662f8c7ce275969614e1b51211a0bf..5a463344141d492a2e6633c56b0b584b0dc1b355 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 f8ae0b650a08bc9e04935d93480833f5078d639e..a00351e462fff00439de00e0dcd205940cf09c53 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 6eb49f4f25a67a1a157c5ee74c50aeec288121bc..fb7ddbe5dbb217f1013a8ff241897c7e55eb81e3 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 b55e8b27ba8653e65cdb2936e7b764741742676c..e34791346fe7ea5a1f94c0037a9607356bd87a95 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 9ba789fa3e6b7b63544325b9df1dfeb7047eefd0..a3211ebf7cdbeafda1fd1d514c98383db6d5d1fe 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 e9938118bc7fb03c6e2f2148c3ba34373a024d42..b94821bbeec439d38b2a9e6848291d2d2bc58bc8 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 ba2ab7a7c6b89224fb0b177d886fc70ec43cf8d2..1f884a0f1eaf916d945b8e5c971ad61300e1ef21 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 c2363019bf69c827566f8d4563c7e4dc293ff032..ee439ab2e1639cdd52d1b2567d6d08d492492ef0 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 539e4f58a277c0c2dae28e37613edf248cd01465..37fcc0ba759d16291420f312662d3a752c301c79 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 0fcd670c09e46b9e1884735d5cf69d251b117298..2b0ae58e24ed140578e07b8d309eaaf3c4db3521 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 8a71771a2de644c147ee0f85fa7e41100a27684e..0000000000000000000000000000000000000000 --- 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 31895e2fc6622313750317f5e4f127855a661eb1..0000000000000000000000000000000000000000 --- 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 4bf76756d2bf3b460a1d6f8a4e9a081691254f83..0000000000000000000000000000000000000000 --- a/TeacherHomeWork-vite/src/views/HomeworkQuestion/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file