diff --git a/AES-front/src/api/user.js b/AES-front/src/api/user.js index 7df3bcb..29e6929 100644 --- a/AES-front/src/api/user.js +++ b/AES-front/src/api/user.js @@ -32,4 +32,5 @@ export default { getClassRanks:(config) => request.get('/problem/getClassRanks', config),//»ñȡµ±ǰ±¨¸æ°༶ÅÅÃû + getProblemInfo:(config) => request.get('/problem/getProblemInfo', config)//»ñȡµ±ǰ±¨¸沼ÖÃÐÅϢ } diff --git a/AES-front/src/views/user/exam-list/index.vue b/AES-front/src/views/user/exam-list/index.vue index 008e2fa..6ab4c90 100644 --- a/AES-front/src/views/user/exam-list/index.vue +++ b/AES-front/src/views/user/exam-list/index.vue @@ -39,13 +39,10 @@ const paginationReactive = reactive({ }) const onStartExam = async (exam) => {//点击进入控件的逻辑 - const { id } = exam - try { - // await api.addExamInfo({ id }) const examId = exam.id - router.push({ name: 'ReportSubmit', params: { examId } }) - + const classId = exam.classId + router.push({ name: 'ReportSubmit', params: { examId,classId }, query: { fromclient: false } }) } catch (err) { console.log(err) } diff --git a/AES-front/src/views/user/report-submit/index.vue b/AES-front/src/views/user/report-submit/index.vue index e7a1ac6..635ea8f 100644 --- a/AES-front/src/views/user/report-submit/index.vue +++ b/AES-front/src/views/user/report-submit/index.vue @@ -1,40 +1,42 @@ diff --git a/AES-front/src/views/user/route.js b/AES-front/src/views/user/route.js index d252591..5849aef 100644 --- a/AES-front/src/views/user/route.js +++ b/AES-front/src/views/user/route.js @@ -114,7 +114,7 @@ export default { }, { name: 'ReportSubmit', - path: 'report-submit', + path: 'report-submit/:examId/:classId', component: () => import('./report-submit/index.vue'), meta: { title: '作业详情', diff --git a/AES-front/src/views/user/score-rank/components/personal-rank.vue b/AES-front/src/views/user/score-rank/components/personal-rank.vue index 3019195..96bc2cf 100644 --- a/AES-front/src/views/user/score-rank/components/personal-rank.vue +++ b/AES-front/src/views/user/score-rank/components/personal-rank.vue @@ -61,7 +61,6 @@ const queryExamScores = async () => { title.value = res.data.title; // 更新作业名称 score.value = res.data.score; // 更新个人得分 rank.value = res.data.rank; // 更新个人排名 - console.log(res1); totalStudents.value = res1.data;// 更新班级总人数 }; diff --git a/AES-front/src/views/user/score-rank/index.vue b/AES-front/src/views/user/score-rank/index.vue index b51109d..c49dfe0 100644 --- a/AES-front/src/views/user/score-rank/index.vue +++ b/AES-front/src/views/user/score-rank/index.vue @@ -19,12 +19,12 @@ import ClassScore from '@/views/user/score-rank/components/class-score.vue' } .personal-rank { - flex: 0 0 20%; /* UserPersonalRank 占据 40% 的空间 */ + flex: 0 0 20%; /* UserPersonalRank 占据 20% 的空间 */ /* 其他样式,例如 padding, margin 等 */ } .class-score { - flex: 0 0 80%; /* ClassScore 占据 60% 的空间 */ + flex: 0 0 80%; /* ClassScore 占据 80% 的空间 */ /* 其他样式,例如 padding, margin 等 */ } \ No newline at end of file diff --git a/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java b/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java index be30da7..bb6e01f 100644 --- a/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java +++ b/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java @@ -27,32 +27,35 @@ public class ProblemController { @Autowired private ProblemServiceI problemServiceI; + @PostMapping("/addScoringRubric") public RespBean addScoringRubric(@RequestBody PMScoringRubric scoringRubric) { problemServiceI.addScoringRubric(scoringRubric); return RespBean.ok("添加评分细则成功"); } + @PostMapping("/addScoringStandard") public RespBean addScoringStandard(@RequestBody PMScoringStandard pmScoringStandard) { - problemServiceI.addScoringStandard(pmScoringStandard); - List scoringStandardList=problemServiceI.findStandardIdNoProblemId(); - if(scoringStandardList.size()>1) { - problemServiceI.updateStandardId(scoringStandardList.get(0).getId()); - } - else{ - for(ScoringStandard scoringStandard:scoringStandardList){ - problemServiceI.updateStandardId(scoringStandard.getId()); - } - } return RespBean.ok("添加评分标准成功"); + problemServiceI.addScoringStandard(pmScoringStandard); + List scoringStandardList = problemServiceI.findStandardIdNoProblemId(); + if (scoringStandardList.size() > 1) { + problemServiceI.updateStandardId(scoringStandardList.get(0).getId()); + } else { + for (ScoringStandard scoringStandard : scoringStandardList) { + problemServiceI.updateStandardId(scoringStandard.getId()); + } + } + return RespBean.ok("添加评分标准成功"); } + @PostMapping("/addProblem") public RespBean addProblem(@RequestBody Problem problem, HttpServletRequest request) { - String title= problem.getTitle(); - //作业名称不能重复 - String result= - problemServiceI.findProblemByTitle(title); - if(result.equals("true")) + String title = problem.getTitle(); + //作业名称不能重复 + String result = + problemServiceI.findProblemByTitle(title); + if (result.equals("true")) return RespBean.error( "不能重复添加相同标题的作业"); //添加作业 @@ -61,20 +64,21 @@ public class ProblemController { problem.setAdminuserId(Integer.parseInt(userId)); problemServiceI.addProblem(problem); //更新评分标准标中的problemId - List problems= - problemServiceI.findProblemIdByTitle(title); - if(problems.size()>1){ - problemServiceI.updateProblemId(problems.get(0).getId()); - }else{ - for(Problem problem1:problems){ - problemServiceI.updateProblemId(problem1.getId()); - } - } + List problems = + problemServiceI.findProblemIdByTitle(title); + if (problems.size() > 1) { + problemServiceI.updateProblemId(problems.get(0).getId()); + } else { + for (Problem problem1 : problems) { + problemServiceI.updateProblemId(problem1.getId()); + } + } return RespBean.ok("添加作业成功"); } + @PostMapping("/findScoringRubricNoStandardId") public RespBean findScoringRubricNoStandardId() { - List uScoringRubricList= + List uScoringRubricList = problemServiceI.findScoringRubricNoStandardId(); if (uScoringRubricList != null) { return RespBean.ok("获取评分细则列表成功!", @@ -84,9 +88,10 @@ public class ProblemController { } } + @PostMapping("/findScoringStandardNoProblemId") public RespBean findScoringStandardNoProblemId() { - List uScoringStandardList= + List uScoringStandardList = problemServiceI.findScoringStandardNoProblemId(); if (uScoringStandardList != null) { return RespBean.ok("获取评分标准列表成功!", @@ -96,10 +101,11 @@ public class ProblemController { } } + @PostMapping( "/findScoringStandardByProblemId") public RespBean findScoringStandardByProblemId(@RequestBody PMProblem pmProblem) { - List uScoringStandardList= + List uScoringStandardList = problemServiceI.findScoringStandardByProblemId(pmProblem.getId()); if (uScoringStandardList != null) { return RespBean.ok("获取评分标准列表成功!", @@ -109,17 +115,18 @@ public class ProblemController { } } + @PostMapping("/editProblem") public RespBean editProblem(@RequestBody PMProblem pmProblem) { - Integer id= pmProblem.getId(); - String title= pmProblem.getTitle(); - String description= pmProblem.getDescription(); - if(problemServiceI.findProblemByTitle(title,id)=="true"){ + Integer id = pmProblem.getId(); + String title = pmProblem.getTitle(); + String description = pmProblem.getDescription(); + if (problemServiceI.findProblemByTitle(title, id) == "true") { return RespBean.ok("作业名称重复"); } boolean result = - problemServiceI.editProblem(title, - description,id); + problemServiceI.editProblem(title, + description, id); if (result == true) { return RespBean.ok("编辑作业成功", result); } else { @@ -128,69 +135,77 @@ public class ProblemController { } } + @PostMapping("/deleteProblem") public RespBean deleteCourse(@RequestBody PMProblem pmProblem) { - problemServiceI.deleteProblem(pmProblem.getId()); - problemServiceI.deleteScoringStandard(pmProblem.getId()); - //删除作业时要把发布作业的记录也删除 + problemServiceI.deleteProblem(pmProblem.getId()); + problemServiceI.deleteScoringStandard(pmProblem.getId()); + //删除作业时要把发布作业的记录也删除 //那么学生提交该作业的记录也要删除 return RespBean.ok("删除成功"); } + @PostMapping("/deleteScoringRubric") - public RespBean deleteScoringRubric(){ + public RespBean deleteScoringRubric() { problemServiceI.deleteScoringRubric(); return RespBean.ok("删除评分细则成功"); } + @PostMapping("/deleteScoringStandard") - public RespBean deleteScoringStandrd(){ + public RespBean deleteScoringStandrd() { problemServiceI.deleteScoringStandard(); return RespBean.ok("删除评分标准成功"); } + @PostMapping("/findAllProblemByCourseId") - public RespBean findAllProblemByCourseId(@RequestBody PMProblem pmProblem){ + public RespBean findAllProblemByCourseId(@RequestBody PMProblem pmProblem) { // if (pmProblem.getPageNum() < 1 || pmProblem.getPageSize() < 1) // return RespBean.error("参数错误!"); - DataGrid dataGrid= problemServiceI.findProblemByCourseId(pmProblem); - return RespBean.ok("查询作业库成功",dataGrid); + DataGrid dataGrid = problemServiceI.findProblemByCourseId(pmProblem); + return RespBean.ok("查询作业库成功", dataGrid); } + @PostMapping( "/findAllProblemByCourseIdAndClassId") - public RespBean findAllProblemByCourseIdAndClassId(@RequestBody PMProblem pmProblem){ - DataGrid dataGrid= + public RespBean findAllProblemByCourseIdAndClassId(@RequestBody PMProblem pmProblem) { + DataGrid dataGrid = problemServiceI.findProblemByCourseIdAndClassId(pmProblem); - return RespBean.ok("查询作业列表成功",dataGrid); + return RespBean.ok("查询作业列表成功", dataGrid); } + @PostMapping( "/addTime") - public RespBean addTime(@RequestBody PMPostProblem pmPostProblem){ + public RespBean addTime(@RequestBody PMPostProblem pmPostProblem) { int num = - problemServiceI.editSubmitReport(pmPostProblem.getEndTime(),pmPostProblem.getProblemId(),pmPostProblem.getStudentId()); - if(num == 1) + problemServiceI.editSubmitReport(pmPostProblem.getEndTime(), pmPostProblem.getProblemId(), pmPostProblem.getStudentId()); + if (num == 1) return RespBean.ok("加时成功"); else return RespBean.error("加时失败"); } + @PostMapping("/findProblemById") - public RespBean findProblemById(@RequestBody PMProblem pmProblem){ - List problems= + public RespBean findProblemById(@RequestBody PMProblem pmProblem) { + List problems = problemServiceI.findProblemById(pmProblem.getId()); return RespBean.ok("查询作业标题成功", problems.get(0)); } + @PostMapping("/findPostProblem") - public RespBean findPostProblem(@RequestBody PMPostProblem pmPostProblem){ - List postProblems=problemServiceI.findPostProblem(pmPostProblem.getProblemId(),pmPostProblem.getClassId()); - ListpmPostProblems= - new ArrayList<>(); - for(PostProblem postProblem:postProblems){ - PMPostProblem pmPostProblem1= + public RespBean findPostProblem(@RequestBody PMPostProblem pmPostProblem) { + List postProblems = problemServiceI.findPostProblem(pmPostProblem.getProblemId(), pmPostProblem.getClassId()); + List pmPostProblems = + new ArrayList<>(); + for (PostProblem postProblem : postProblems) { + PMPostProblem pmPostProblem1 = new PMPostProblem(); - if(postProblem.getAllow()==0) - pmPostProblem1.setAllow(false); + if (postProblem.getAllow() == 0) + pmPostProblem1.setAllow(false); else pmPostProblem1.setAllow(true); pmPostProblem1.setStartTime(postProblem.getStartTime()); pmPostProblem1.setEndTime(postProblem.getEndTime()); @@ -198,31 +213,34 @@ public class ProblemController { } return RespBean.ok("查询作业标题成功", - pmPostProblems.get(0)); + pmPostProblems.get(0)); } + @PostMapping("/postProblem") - public RespBean postProblem(@RequestBody PMPostProblem pmPostProblem){ - List classList= + public RespBean postProblem(@RequestBody PMPostProblem pmPostProblem) { + List classList = pmPostProblem.getClassList(); - for(Integer classId:classList){ - problemServiceI.postProblem(pmPostProblem,classId); + for (Integer classId : classList) { + problemServiceI.postProblem(pmPostProblem, classId); } return RespBean.ok("发布作业成功"); } + @PostMapping("/updateSetup") - public RespBean updateSetup(@RequestBody PMPostProblem pmPostProblem){ + public RespBean updateSetup(@RequestBody PMPostProblem pmPostProblem) { int num = - problemServiceI.editPostProblem(pmPostProblem.getClassId(),pmPostProblem.getProblemId(),pmPostProblem.getStartTime(),pmPostProblem.getEndTime(),pmPostProblem.getAllow()); - if(num == 1) + problemServiceI.editPostProblem(pmPostProblem.getClassId(), pmPostProblem.getProblemId(), pmPostProblem.getStartTime(), pmPostProblem.getEndTime(), pmPostProblem.getAllow()); + if (num == 1) return RespBean.ok("修改作业设置成功"); else return RespBean.error("修改作业设置失败"); } + //获取作业列表 @GetMapping("/getExamList") - public RespBean getExamList(Integer pageNum,Integer pageSize, HttpServletRequest request) { + public RespBean getExamList(Integer pageNum, Integer pageSize, HttpServletRequest request) { if (pageNum < 1 || pageSize < 1) return RespBean.error("参数错误!"); PMProblem pMproblem = new PMProblem(); @@ -246,37 +264,38 @@ public class ProblemController { problemServiceI.findStatusByStudentIdAndProblems(Integer.parseInt(userId), pMproblems); //分页处理 - DataGrid dataGrid = problemServiceI.dataGrid(pMproblems,pMproblem); + DataGrid dataGrid = problemServiceI.dataGrid(pMproblems, pMproblem); if (dataGrid != null) { - return RespBean.ok("获取作业列表成功!",dataGrid); + return RespBean.ok("获取作业列表成功!", dataGrid); } else { return RespBean.error("获取作业列表失败!"); } } -@PostMapping("findStudentSubmit") -public RespBean findStudentSubmit(@RequestBody PMStudentSubmit pmStudentSubmit){ - DataGrid dataGrid; - if(pmStudentSubmit.getSelectedStatus().equals("weijiao")) - dataGrid= - problemServiceI.findWeijiaoList(pmStudentSubmit); - else dataGrid= - problemServiceI.findYijiaoList(pmStudentSubmit); - return RespBean.ok("获取学生提交报告列表成功!", - dataGrid); -} + + @PostMapping("findStudentSubmit") + public RespBean findStudentSubmit(@RequestBody PMStudentSubmit pmStudentSubmit) { + DataGrid dataGrid; + if (pmStudentSubmit.getSelectedStatus().equals("weijiao")) + dataGrid = + problemServiceI.findWeijiaoList(pmStudentSubmit); + else dataGrid = + problemServiceI.findYijiaoList(pmStudentSubmit); + return RespBean.ok("获取学生提交报告列表成功!", + dataGrid); + } //根据作业id和学生id获取学生当前报告成绩排名 @GetMapping("/getStudentRank") - public RespBean getStudentRank(Integer examId,HttpServletRequest request){ + public RespBean getStudentRank(Integer examId, HttpServletRequest request) { DecodeToken decodeToken = new DecodeToken(request); String UserId = decodeToken.getUserId(); - int userId=Integer.parseInt(UserId); - UReportSubmitted ureportsubmitted= - problemServiceI.findScoreAndRankByIds(examId,userId); + int userId = Integer.parseInt(UserId); + UReportSubmitted ureportsubmitted = + problemServiceI.findScoreAndRankByIds(examId, userId); if (ureportsubmitted != null) { - return RespBean.ok("查询成绩排名成功!",ureportsubmitted); + return RespBean.ok("查询成绩排名成功!", ureportsubmitted); } else { return RespBean.error("查询成绩排名失败!"); } @@ -284,28 +303,25 @@ public RespBean findStudentSubmit(@RequestBody PMStudentSubmit pmStudentSubmit){ //获取当前作业班级排名信息 @GetMapping("/getClassRanks") - public RespBean getClassRanks(Integer pageNum,Integer pageSize,Integer classId,Integer examId){ - if (pageNum < 1 || pageSize < 1) - return RespBean.error("参数错误!"); - UReportSubmitted uReportSubmitted=new UReportSubmitted(); - uReportSubmitted.setPageNum(pageNum); - uReportSubmitted.setPageSize(pageSize); - - List uReportsSubmitted=problemServiceI.findClassRankByIds(examId,classId); - - - -// //分页处理 -// DataGrid dataGrid = problemServiceI.dataGrid(pMproblems,pMproblem); -// + public RespBean getClassRanks(Integer pageNum, Integer pageSize, Integer classId, Integer examId) { + List uReportsSubmitted = problemServiceI.findClassRankByIds(examId, classId); if (uReportsSubmitted != null) { - return RespBean.ok("获取班级排名列表成功!",uReportsSubmitted); + return RespBean.ok("获取班级排名列表成功!", uReportsSubmitted); } else { return RespBean.error("获取班级排名列表失败!"); } - - - } -} + //获取当前作业班级排名信息 + @GetMapping("/getProblemInfo") + public RespBean getProblemInfo(Integer classId, Integer examId) { + List PostProblem = problemServiceI.findPostProblem(examId,classId); + if (!PostProblem.isEmpty()) { + // 直接获取列表中的第一个元素 + PostProblem postProblem = PostProblem.get(0); + return RespBean.ok("获取实验具体信息成功!", postProblem); + } else { + return RespBean.error("获取实验具体信息失败!"); + } + } +} \ No newline at end of file diff --git a/AES/src/main/java/com/example/aes/problem/dao/ProblemDaoI.java b/AES/src/main/java/com/example/aes/problem/dao/ProblemDaoI.java index cf99860..08c4913 100644 --- a/AES/src/main/java/com/example/aes/problem/dao/ProblemDaoI.java +++ b/AES/src/main/java/com/example/aes/problem/dao/ProblemDaoI.java @@ -17,21 +17,31 @@ public interface ProblemDaoI extends BaseDaoI { List findPMProblemStatusesByStudentIdAndProblemsIds(List problemIds, Integer studentId); UReportSubmitted getScoreAndRankByIds(int problemId, int userId); + List getClassRankByIds(int problemId, int classId); public String findProblemByTitle(String title); - public String findProblemByTitle(String title,Integer id); + + public String findProblemByTitle(String title, Integer id); + public List findProblemIdByTitle(String title); + public void addProblem(Problem problem); + public long getAllProblemsNum(int courseId); + List getProblemsByPage(Integer courseId, - Integer classId,String selectedStatus, + Integer classId, String selectedStatus, int page, int rows); - List getProblemsByPage(Integer courseId,String title, - int page, int rows); + List getProblemsByPage(Integer courseId, String title, + int page, int rows); + public List findProblemById(int id); + public boolean editProblem(String title, - String description,Integer id); + String description, Integer id); + public void deleteProblem(Integer id); } + diff --git a/AES/src/main/java/com/example/aes/problem/dao/impl/ProblemDaoImpl.java b/AES/src/main/java/com/example/aes/problem/dao/impl/ProblemDaoImpl.java index b938241..5d88223 100644 --- a/AES/src/main/java/com/example/aes/problem/dao/impl/ProblemDaoImpl.java +++ b/AES/src/main/java/com/example/aes/problem/dao/impl/ProblemDaoImpl.java @@ -289,6 +289,7 @@ public class ProblemDaoImpl extends BaseDaoImpl implements ProblemDaoI{ "delete from Problem where id=" + id; this.executeHql(hql); } + @Override public void addProblem(Problem problem) { // TODO Auto-generated method stub diff --git a/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java b/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java index c341f2e..6bd07fc 100644 --- a/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java +++ b/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java @@ -319,6 +319,8 @@ public class ProblemServiceImpl implements ProblemServiceI { public int editSubmitReport(LocalDateTime addTime,int problemId,int studentId){ return studentSubmitDao.updateAddTime(addTime,problemId,studentId); } + + @Override public DataGrid findProblemByCourseIdAndClassId(PMProblem pmProblem){ DataGrid dg = new DataGrid();