diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java index f88a00f6139feb89fb5249f666be35b937470061..f493e934ad4854fe299d7bedc5b5b281914d8a6b 100644 --- a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java +++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java @@ -10,14 +10,8 @@ import com.wetoband.template.entity.*; import com.wetoband.template.service.*; import com.wetoband.template.service.impl.*; import com.wetoband.template.util.R; -import lombok.SneakyThrows; -import org.jetbrains.annotations.NotNull; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.Part; -import java.io.IOException; -import java.sql.Connection; import java.text.SimpleDateFormat; import java.util.*; @@ -32,7 +26,6 @@ import java.util.*; TroubleshootingService troubleshootingService=IOC.getBean(TroubleshootingServiceImpl.class); QuestionService questionService=IOC.getBean(QuestionServiceImpl.class); NoticeService noticeService=IOC.getBean(NoticeServiceImpl.class); - WordService wordService = IOC.getBean(WordServiceImpl.class); @Action @@ -73,10 +66,20 @@ import java.util.*; @Action public R getHomeWork(HttpServletRequest request) throws Exception { Integer id =Integer.parseInt(request.getParameter("id")); - List homeWork = homeWorkService.getHomeWork(id); + System.out.println("123"+request.getParameter("currentPage")); + int currentPage = Integer.parseInt(request.getParameter("currentPage")); + int pageSize = Integer.parseInt(request.getParameter("pageSize")); + int offset = (currentPage-1)*pageSize; + List homeWork = homeWorkService.getHomeWork(id,offset,pageSize); return R.ok().put("data",homeWork); } + @Action + public R getHomeWorkCount(HttpServletRequest request) throws Exception { + Integer id =Integer.parseInt(request.getParameter("id")); + int count = homeWorkService.getCount(id); + return R.ok().put("data",count); + } @Action public R getWrongHomework(HttpServletRequest request) throws Exception { Integer student_id =Integer.parseInt(request.getParameter("student_id")); @@ -95,7 +98,6 @@ import java.util.*; //提交作业(简答题) @Action public R submitHomework(HttpServletRequest request) throws Exception { - String userAnswersJson = request.getParameter("userAnswersJson"); Integer studentId =Integer.parseInt(request.getParameter("student_id")); Integer homeworkId =Integer.parseInt(request.getParameter("homework_id")); @@ -110,8 +112,6 @@ import java.util.*; //提交错题答案 @Action public R submitWrongQuestion(HttpServletRequest request) throws Exception { - - String userAnswersJson = request.getParameter("userAnswersJson"); Integer studentId =Integer.parseInt(request.getParameter("student_id")); Integer homeworkId =Integer.parseInt(request.getParameter("homework_id")); @@ -125,20 +125,20 @@ import java.util.*; } //提交疑难点 - @Action - public R submitTroubleshooting(HttpServletRequest request) throws Exception { - Troubleshooting troubleshooting = new Troubleshooting(); - troubleshooting.setQuestion_id(Integer.parseInt(request.getParameter("question_id"))); - troubleshooting.setHomework_id(Integer.parseInt(request.getParameter("homework_id"))); - troubleshooting.setStudent_id(Integer.parseInt(request.getParameter("student_id"))); - troubleshooting.setContent(request.getParameter("content")); - String submitTimeStr = request.getParameter("submitTime"); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - Date submitTimeDate = sdf.parse(submitTimeStr); - troubleshooting.setSubmit_time(submitTimeDate); - troubleshootingService.submitTroubleshooting(troubleshooting); - return R.ok().message("请求成功"); - } +// @Action +// public R submitTroubleshooting(HttpServletRequest request) throws Exception { +// Troubleshooting troubleshooting = new Troubleshooting(); +// troubleshooting.setQuestion_id(Integer.parseInt(request.getParameter("question_id"))); +// troubleshooting.setHomework_id(Integer.parseInt(request.getParameter("homework_id"))); +// troubleshooting.setStudent_id(Integer.parseInt(request.getParameter("student_id"))); +// troubleshooting.setContent(request.getParameter("content")); +// String submitTimeStr = request.getParameter("submitTime"); +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); +// Date submitTimeDate = sdf.parse(submitTimeStr); +// troubleshooting.setSubmit_time(submitTimeDate); +// troubleshootingService.submitTroubleshooting(troubleshooting); +// return R.ok().message("请求成功"); +// } //获取题目 @Action @@ -157,22 +157,6 @@ import java.util.*; } - -// //文件上传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给前端 -// } - - @Action - 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); diff --git a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java index 69a4edda3b355828b79dec947be69e627f4cb9cf..42bcf671064fdedef7d034caaef9e9313c2eee31 100644 --- a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java +++ b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java @@ -28,8 +28,6 @@ import java.util.List; public class LogOperateAspect { private static final Logger logger = LoggerFactory.getLogger(LogOperateAspect.class); - - /** * 描述:日志操作 * diff --git a/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java b/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java index 288bbad6c8bdbae2969ed253fc7e597eb8a009a1..bbd4e8b53461bc8745ce3b5d115f338ab389c6bc 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java +++ b/HomeWork-java/src/com/wetoband/template/dao/HomeWorkDao.java @@ -10,11 +10,12 @@ import java.util.List; public interface HomeWorkDao extends IBaseDao { //HomeWork getHomeWorkById(Connection connection, int id) throws SQLException; - List getHomeWork(Connection connection, int id) throws SQLException; + List getHomeWork(Connection connection, int id, int offset,int pageSize) throws SQLException; List getHomeWorkByCourse(Connection connection, String course_name,int id) throws SQLException; List getHomeWorkByTeacherName(Connection connection, String name,int id) throws SQLException; List getHomeWorkByHomeworkName(Connection connection, String homework_name,int id) throws SQLException; //提交作业 void submitHomework(Connection connection, Submit submitHomework); + int getCount(Connection connection, int id) throws SQLException; } 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 fad1f8fdbcb754c2166ae532df1cccc98931b4cf..3de27eae22a18d9579d62d56c0f5485e5c5e35dc 100644 --- a/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java +++ b/HomeWork-java/src/com/wetoband/template/dao/impl/HomeWorkDaoImpl.java @@ -15,14 +15,44 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa } @Override - public List getHomeWork(Connection connection, int id) throws SQLException { + public int getCount(Connection connection, int id) throws SQLException { + int count = 0; + String sql ="SELECT COUNT(*)\n" + + "FROM\n" + + " homework\n" + + " JOIN teacher ON homework.teacher_id = teacher.id\n" + + " LEFT JOIN submit ON submit.student_id = ? \n" + + " AND homework.homework_id = submit.homework_id;"; + 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 e; + } + return count; + } + + @Override + public List getHomeWork(Connection connection, int id,int offset, int pageSize) throws SQLException { + + // SQL语句 String sql ="SELECT homework.*,teacher.name,submit.submitStatus,submit.score FROM homework " + "JOIN teacher ON homework.teacher_id = teacher.id " + - "LEFT JOIN submit ON submit.student_id = ? AND homework.homework_id = submit.homework_id "; + "LEFT JOIN submit ON submit.student_id = ? AND homework.homework_id = submit.homework_id " + + "LIMIT ?, ?"; + List homeworkList = new ArrayList<>(); try (PreparedStatement pstm = connection.prepareStatement(sql)) { pstm.setInt(1, id); + System.out.println(offset); + System.out.println(pageSize); + pstm.setInt(2, offset); + pstm.setInt(3, pageSize); try (ResultSet rs = pstm.executeQuery()) { while (rs.next()) { HomeWork homework = new HomeWork(); @@ -168,6 +198,8 @@ public class HomeWorkDaoImpl extends BaseDaoImpl implements HomeWorkDa throw new RuntimeException("Failed to submit homework", e); } } + + } diff --git a/HomeWork-java/src/com/wetoband/template/entity/HomeWork.java b/HomeWork-java/src/com/wetoband/template/entity/HomeWork.java index 7603250ae5cd62c9bc987dc257155db506315c0a..b53225f114fe6180cf8ec4995824beb0c6bf067e 100644 --- a/HomeWork-java/src/com/wetoband/template/entity/HomeWork.java +++ b/HomeWork-java/src/com/wetoband/template/entity/HomeWork.java @@ -31,5 +31,6 @@ public class HomeWork { private Double score; private String teacher_name; private String submitStatus; + private int count; } diff --git a/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java index d64aaef4b14a70a9ec149146c309c3e9320863f0..2e9cf967c5ed360eeee42a9e2d871dd5864fb77b 100644 --- a/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java +++ b/HomeWork-java/src/com/wetoband/template/service/HomeWorkService.java @@ -12,9 +12,10 @@ import java.util.Map; public interface HomeWorkService { //public HomeWork getHomeWorkById(int id) throws Exception; - public List getHomeWork( int id) throws Exception; + public List getHomeWork( int id,int offset,int pageSize) throws Exception; 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, String userAnswersJson) throws Exception; + public int getCount(int id) 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 f0f92d49f5e86f77793dbb08ca42ccaebea1d5af..0849f5ad295611f9cb1d0d4cc45760f8f8c15922 100644 --- a/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java +++ b/HomeWork-java/src/com/wetoband/template/service/impl/HomeWorkServiceImpl.java @@ -13,6 +13,7 @@ import redis.clients.jedis.Jedis; import javax.transaction.Transactional; import java.sql.Connection; +import java.sql.SQLException; import java.util.Date; import java.util.List; import java.util.Map; @@ -27,9 +28,9 @@ public class HomeWorkServiceImpl implements HomeWorkService { //获取所有作业 - public List getHomeWork(int id) throws Exception { + public List getHomeWork(int id,int offset,int pageSize) throws Exception { final Connection connection = ActionToolBase.getDBConnection(); - return homeWorkDao.getHomeWork(connection,id); + return homeWorkDao.getHomeWork(connection,id,offset,pageSize); } public List getHomeWorkByCourse(String course_name,int id) throws Exception { @@ -62,4 +63,10 @@ public class HomeWorkServiceImpl implements HomeWorkService { homeWorkDao.submitHomework(connection,submitHomework); } + + @Override + public int getCount(int id) throws Exception { + final Connection connection = ActionToolBase.getDBConnection(); + return homeWorkDao.getCount(connection,id); + } } diff --git a/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue b/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue index baf9250b277ffe858e5e74915306880194fb3f92..d19fe8571404b0393f940db24b5a0d9e59908deb 100644 --- a/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue +++ b/HomeWork-vite/src/views/HomeWorkManager/HomeWorkManger.vue @@ -3,9 +3,9 @@
@@ -13,7 +13,7 @@ - + - -
- + + + +
@@ -76,21 +76,54 @@ import { Search } from '@element-plus/icons-vue' import { useRouter } from 'vue-router'; import { HttpClient } from '../../network/HttpClient' + const input1 = ref('') const selectedFilter = ref('') const router = useRouter() -const currentPage = ref(1)//当前页 -const pageSize = ref(10)//每页显示条数 +const currentPage = ref(1) +const pageSize = ref(2) +const totalItems = ref(100) +const jumpPage = ref('') +const tableData = ref([]) + // 每页条数变化时触发 const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) + pageSize.value = val + getHomeWork() } // 当前页变化时触发 const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) + currentPage.value = val + getHomeWork() } + +const worng = () => { + router.push('./WrongManager') +} + +// const upload = (type, homework_id, start_time, finish_time, homework_name) => { +// if (type == 2) { +// router.push({ +// path: './uploadHomeWork', +// query: { +// homework_id: homework_id, +// start_time: start_time, +// finish_time: finish_time, +// homework_name: homework_name +// } +// }) +// } else { +// router.push({ +// path: './MultipleChoiceQuestions', +// query: { +// homework_id: homework_id +// } +// }) +// } +// } + const options = [ { value: '课程', @@ -117,41 +150,43 @@ const options = [ label: '完成状态', }, ] - -const worng = () => { - router.push('./WrongManager') -} - -const upload = (type, homework_id, start_time, finish_time, homework_name) => { - if (type == 2) { - router.push({ - path: './uploadHomeWork', - query: { - homework_id: homework_id, - start_time: start_time, - finish_time: finish_time, - homework_name: homework_name - } - }) - } else { - router.push({ - path: './MultipleChoiceQuestions', - query: { - homework_id: homework_id - } - }) - } -} - -const tableData = ref([]) onMounted(() => { + getHomeWorkCount() getHomeWork() }) + +//获取作业总数 +const getHomeWorkCount = async () => { + await HttpClient.get('getHomeWorkCount', { + id: 1 + }).then(res => { + totalItems.value = res.data.data + console.log(res) + }).catch(err => { + console.log(err) + }) +} + +// // 计算属性:根据筛选条件和搜索内容过滤数据 +// const filteredData = computed(() => { +// let filtered = tableData.value +// // 按筛选条件过滤 +// if (selectedFilter.value) { +// filtered = filtered.filter(item => item[selectedFilter.value] && item[selectedFilter.value].includes(input1.value)) +// } else { +// // 如果没有选择筛选条件,按照搜索内容进行过滤 +// filtered = filtered.filter(item => +// Object.values(item).some(val => val && val.includes(input1.value)) +// ) +// } +// }) //获取所有作业 const getHomeWork = async () => { await HttpClient.get('getHomeWork', { - id: 1 + id: 1, + currentPage: currentPage.value, + pageSize: pageSize.value }).then(res => { tableData.value = res.data.data console.log(res) @@ -160,32 +195,6 @@ const getHomeWork = async () => { }) } -// 计算属性:根据筛选条件和搜索内容过滤数据 -const filteredData = computed(() => { - let filtered = tableData.value - // 按筛选条件过滤 - if (selectedFilter.value) { - filtered = filtered.filter(item => item[selectedFilter.value] && item[selectedFilter.value].includes(input1.value)) - } else { - // 如果没有选择筛选条件,按照搜索内容进行过滤 - filtered = filtered.filter(item => - Object.values(item).some(val => val && val.includes(input1.value)) - ) - } -}) - - -// 计算属性:当前页要显示的数据 -const currentPageData = computed(() => { - const start = (currentPage.value - 1) * pageSize.value; - const end = currentPage.value * pageSize.value; - return tableData.value.slice(start, end); -}); - -const sortStatus = (rowA: any, rowB: any) => { - const priority = { "已完成": 1, "未完成": 2 }; // 定义排序优先级 - return priority[rowA.status] - priority[rowB.status]; // 根据优先级进行排序 -}; @@ -203,7 +212,7 @@ const sortStatus = (rowA: any, rowB: any) => { } -.card{ +.card { height: 100%; } @@ -233,9 +242,9 @@ const sortStatus = (rowA: any, rowB: any) => { } .card-header { - display: flex; - justify-content: space-between; - align-items: center; + display: flex; + justify-content: space-between; + align-items: center; } .search { diff --git a/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue b/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue index 297772ac43cf46a9f5b3f4835551ecb3c7ba12fe..999fe9166feb841e3e2d49b3d660dfccb222fbbf 100644 --- a/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue +++ b/HomeWork-vite/src/views/HomeWorkManager/MultipleChoiceQuestions.vue @@ -48,7 +48,8 @@ - + {{ String.fromCharCode(65 + index) }}. @@ -58,7 +59,8 @@
- +
@@ -73,6 +75,10 @@ import { onMounted, reactive, ref, watch } from 'vue'; import { HttpClient } from '@/network/HttpClient'; import { useRoute } from 'vue-router'; +const currentPage = ref(1) +const pageSize = ref(10) +const totalItems = ref(100) +const jumpPage = ref('') const questions = reactive([]); const submitTime = ref('') const answered = ref(0);