From 793e29afbb7b2af9d7defdaf83aabf5cc8a3223c Mon Sep 17 00:00:00 2001
From: musteven <1009173794@qq.com>
Date: Sun, 6 Apr 2025 21:51:48 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E6=88=90=E7=BB=A9=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E7=95=8C=E9=9D=A2=E5=BD=BB=E5=BA=95=E5=AE=8C=E6=88=90?=
=?UTF-8?q?=EF=BC=8C=E7=BE=8E=E5=8C=96=E5=B7=A5=E4=BD=9C=E5=90=8E=E7=BB=AD?=
=?UTF-8?q?=E5=BC=80=E5=B1=95=E3=80=82=20=E5=90=88=E5=B9=B6=E5=A4=84?=
=?UTF-8?q?=E7=90=86=E4=BA=86=E9=83=A8=E5=88=86=E5=86=B2=E7=AA=81=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
AES-front/src/api/user.js | 4 +
AES-front/src/utils/common/common.js | 17 ++-
AES-front/src/views/user/exam-list/index.vue | 3 +-
AES-front/src/views/user/route.js | 2 +-
.../score-rank/components/class-score.vue | 99 ++++++++++++-
.../score-rank/components/personal-rank.vue | 17 ++-
AES-front/src/views/user/score-rank/index.vue | 4 +-
.../problem/controller/ProblemController.java | 27 ++++
.../example/aes/problem/dao/ProblemDaoI.java | 2 +-
.../aes/problem/dao/impl/ProblemDaoImpl.java | 130 +++++++++++++++++-
.../aes/problem/model/UReportSubmitted.java | 4 +
.../service/Impl/ProblemServiceImpl.java | 21 +--
.../aes/problem/service/ProblemServiceI.java | 5 +-
.../user/controller/ClassesController.java | 16 ++-
.../com/example/aes/user/dao/ClassesDaoI.java | 3 +
.../aes/user/dao/impl/ClassesDaoImpl.java | 9 ++
.../com/example/aes/user/model/DataGrid.java | 2 +-
.../aes/user/service/ClassesServiceI.java | 2 +
.../user/service/impl/ClassesServiceImpl.java | 5 +
AES/src/main/resources/application.properties | 2 +-
20 files changed, 332 insertions(+), 42 deletions(-)
diff --git a/AES-front/src/api/user.js b/AES-front/src/api/user.js
index 9797a05..7df3bcb 100644
--- a/AES-front/src/api/user.js
+++ b/AES-front/src/api/user.js
@@ -22,10 +22,14 @@ export default {
//°༶Ïà¹Ø
takeClassByInviteCode: (data) => request.post('/classes/takeClassByInviteCode', data), //¼ÓÈë°༶
+ getClassStudents:(config) =>
+ request.get('/classes/getClassStudents',(config) ),//»ñȡѧÉúËùÔڰ༶ÈËÊý
//×÷ҵÌâĿ²¿·Ö
getExamList: (config) => request.get('/problem/getExamList',config),//ѧÉú»ñȡ×÷ҵÁбí
getStudentRank:(config) => request.get('/problem/getStudentRank', config),//»ñȡѧÉúµ±ǰ±¨¸æ³ɼ¨ÅÅÃû
+ getClassRanks:(config) => request.get('/problem/getClassRanks', config),//»ñȡµ±ǰ±¨¸æ°༶ÅÅÃû
+
}
diff --git a/AES-front/src/utils/common/common.js b/AES-front/src/utils/common/common.js
index 78e0116..16edd46 100644
--- a/AES-front/src/utils/common/common.js
+++ b/AES-front/src/utils/common/common.js
@@ -19,11 +19,20 @@ export function formatDateTimeNoSecond(time = undefined, format = 'YYYY-MM-DD HH
export function formatDate(date = undefined, format = 'YYYY-MM-DD') {
return formatDateTime(date, format)
}
-export function formatTimestamp(timestamp){
- if (timestamp) {
- const date = new Date(timestamp);
+export function formatTimestamp(timestampArray) {
+ if (timestampArray && Array.isArray(timestampArray) && timestampArray.length >= 5) {
+ const year = timestampArray[0];
+ const month = timestampArray[1];
+ const day = timestampArray[2];
+ const hours = timestampArray[3];
+ const minutes = timestampArray[4];
+ const seconds = timestampArray.length > 5 ? timestampArray[5] : 0; // 如果有秒数则使用,否则默认为0
+
+ // 创建Date对象时,月份需要减1,因为JavaScript的月份是从0开始的
+ const date = new Date(year, month - 1, day, hours, minutes, seconds);
+
return date.getFullYear() + '-' +
- ('0' + (date.getMonth() + 1)).slice(-2) + '-' +
+ ('0' + (date.getMonth()+1)).slice(-2) + '-' +//这里再加回来
('0' + date.getDate()).slice(-2) + ' ' +
('0' + date.getHours()).slice(-2) + ':' +
('0' + date.getMinutes()).slice(-2) + ':' +
diff --git a/AES-front/src/views/user/exam-list/index.vue b/AES-front/src/views/user/exam-list/index.vue
index 5e9c96d..008e2fa 100644
--- a/AES-front/src/views/user/exam-list/index.vue
+++ b/AES-front/src/views/user/exam-list/index.vue
@@ -60,8 +60,9 @@ const onViewScore = (exam) => {//点击成绩控件的逻辑
// }
const examId = exam.id
+ const classId = exam.classId
- router.push({ name: 'UserScoreAndRank', params: { examId }, query: { fromclient: false } });
+ router.push({ name: 'UserScoreAndRank', params: { examId,classId }, query: { fromclient: false } });
// switch (trainingViewScore) {
// case 'NewScorePage': // 直接转向成绩排名页面
diff --git a/AES-front/src/views/user/route.js b/AES-front/src/views/user/route.js
index ceea9d3..d252591 100644
--- a/AES-front/src/views/user/route.js
+++ b/AES-front/src/views/user/route.js
@@ -127,7 +127,7 @@ export default {
},
{
name: 'UserScoreAndRank',
- path: 'score-rank/:examId',
+ path: 'score-rank/:examId/:classId',
component: () => import('./score-rank/index.vue'),
meta: {
title: '作业成绩',
diff --git a/AES-front/src/views/user/score-rank/components/class-score.vue b/AES-front/src/views/user/score-rank/components/class-score.vue
index 5f29802..03894f1 100644
--- a/AES-front/src/views/user/score-rank/components/class-score.vue
+++ b/AES-front/src/views/user/score-rank/components/class-score.vue
@@ -1,11 +1,106 @@
- 此处布置班级排名表格
+
+
+ 班级排名
+
+
+
+
+
+
+
+
-
\ No newline at end of file
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 476347f..3019195 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
@@ -6,7 +6,7 @@
个人成绩:
成绩:{{ score }}
-
排名:{{ rank }}
+
排名:{{ rank }}/{{ totalStudents }}
@@ -17,9 +17,11 @@ import api from '@/api/user';
import {useRoute} from 'vue-router';
const route = useRoute()
const examId = route.params.examId;
+const classId = route.params.classId;
const title = ref(""); // 从API获取的作业名称
const score = ref(0); // 个人得分
const rank = ref(0); // 个人排名
+const totalStudents = ref(0); // 班级总人数
const paginationReactive = reactive({
page: 1,
@@ -45,18 +47,25 @@ const columns = [
// ... 列配置
];
-// 查询个人成绩的函数
+// 左侧查询个人成绩的函数
const queryExamScores = async () => {
+ //查询个人排名
const res = await api.getStudentRank({
params: { examId }
});
+ //查询班级总人数
+ const res1 = await api.getClassStudents({
+ params: { classId }
+ });
+
title.value = res.data.title; // 更新作业名称
score.value = res.data.score; // 更新个人得分
rank.value = res.data.rank; // 更新个人排名
-
-
+ console.log(res1);
+ totalStudents.value = res1.data;// 更新班级总人数
};
+
// 行键函数
const rowKey = (rowData) => {
return rowData.id;
diff --git a/AES-front/src/views/user/score-rank/index.vue b/AES-front/src/views/user/score-rank/index.vue
index 129082e..b51109d 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 40%; /* UserPersonalRank 占据 40% 的空间 */
+ flex: 0 0 20%; /* UserPersonalRank 占据 40% 的空间 */
/* 其他样式,例如 padding, margin 等 */
}
.class-score {
- flex: 0 0 60%; /* ClassScore 占据 60% 的空间 */
+ flex: 0 0 80%; /* ClassScore 占据 60% 的空间 */
/* 其他样式,例如 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 4fc9e69..dd55b24 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
@@ -270,4 +270,31 @@ public RespBean findStudentSubmit(@RequestBody PMStudentSubmit pmStudentSubmit){
return RespBean.error("查询成绩排名失败!");
}
}
+
+ //获取当前作业班级排名信息
+ @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);
+//
+ if (uReportsSubmitted != null) {
+ return RespBean.ok("获取班级排名列表成功!",uReportsSubmitted);
+ } else {
+ return RespBean.error("获取班级排名列表失败!");
+ }
+
+
+
+ }
+
}
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 28b2fe3..cf99860 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,7 +17,7 @@ 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);
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 2b53082..aad0e9a 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
@@ -6,7 +6,10 @@ import com.example.aes.problem.model.Problem;
import com.example.aes.problem.model.*;
import com.example.aes.problem.model.ReportSubmitted;
import com.example.aes.user.dao.BaseDaoI;
+import com.example.aes.user.dao.ClassesDaoI;
+import com.example.aes.user.dao.ClassstudentsDaoI;
import com.example.aes.user.dao.impl.BaseDaoImpl;
+import com.example.aes.user.model.Classstudents;
import org.hibernate.Query;
import org.hibernate.Session;
import com.ibm.jvm.trace.format.api.TraceContext;
@@ -26,10 +29,16 @@ import java.util.Objects;
@Repository("ProblemDao")
public class ProblemDaoImpl extends BaseDaoImpl implements ProblemDaoI{
+ private ClassesDaoI classesDao;
@Autowired
private JdbcTemplate jdbcTemplate;
+ @Autowired
+ public void setClassesDao(ClassesDaoI classesDao) {
+ this.classesDao = classesDao;
+ }
+
@Override
public List findProblemsByClassIds(List classIds) {
// 检查classIds是否为空或没有元素
@@ -37,7 +46,7 @@ public class ProblemDaoImpl extends BaseDaoImpl implements ProblemDaoI{
return Collections.emptyList();
}
- String sql = "SELECT pr.id AS Id, pp.startTime AS startTime, pp.endTime AS endTime, " +
+ String sql = "SELECT pr.id AS Id, pp.startTime AS startTime, pp.endTime AS endTime, pp.classId AS classId," +
"pr.title AS title, pr.description AS description " +
"FROM postproblem pp " +
"JOIN problem pr ON pp.problemId = pr.id " +
@@ -96,9 +105,9 @@ public class ProblemDaoImpl extends BaseDaoImpl implements ProblemDaoI{
}
- @Override //根据作业id和学生id获取学生当前报告成绩排名
+ @Override //根据作业id和学生id获取学生当前报告成绩与排名等信息
public UReportSubmitted getScoreAndRankByIds(int problemId, int userId) {
-
+ //此部分获得该学生确定的个人报告成绩和报告名称信息
String sql = "SELECT sr.*, p.title " +
"FROM submitreport sr " +
"JOIN problem p ON sr.problemId = p.id " +
@@ -110,8 +119,119 @@ public class ProblemDaoImpl extends BaseDaoImpl implements ProblemDaoI{
new BeanPropertyRowMapper<>(UReportSubmitted.class)
);
- // 查询假定只有唯一一条数据,返回第一条记录
- return queryResults.isEmpty() ? null : queryResults.get(0);
+ //以下部分负责计算统计该报告在同班内排名信息
+
+ // 获取与当前用户同班级的所有同学信息
+ List classmates = classesDao.findClassStudentsByClassId(userId);
+
+ // 获取同班同学以及当前用户的报告成绩
+ List classReports = new ArrayList<>();
+ for (Classstudents classmate : classmates) {
+ String classmateSql = "SELECT sr.score,sr.studentId,sr.problemId " +
+ "FROM submitreport sr " +
+ "WHERE sr.studentId = ? AND sr.problemId = ?";
+ List classmateReports = jdbcTemplate.query(
+ classmateSql,
+ new Object[]{classmate.getUserId(), problemId},
+ new BeanPropertyRowMapper<>(UReportSubmitted.class)
+ );
+ classReports.addAll(classmateReports);
+ }
+
+ float temp = 0;
+ // 处理默认分数为空的情况,将它们视为0分
+ classReports.forEach(report -> {
+ if (report.getScore() == null) {
+ report.setScore(temp);
+ }
+ });
+
+ // 根据成绩进行排序
+ classReports.sort((r1, r2) -> r2.getScore().compareTo(r1.getScore()));
+
+ // 计算排名,处理同分同排名的情况
+ int rank = 1;
+ Float lastScore = null; // 用于记录上一个分数
+ for (UReportSubmitted report : classReports) {
+ // 如果当前分数与上一个分数不同,则更新排名
+ if (lastScore == null || !lastScore.equals(report.getScore())) {
+ rank = classReports.indexOf(report) + 1;
+ }
+ // 如果找到了当前用户的报告,则设置排名并退出循环
+ if (report.getStudentId() == userId) {
+ report.setRank(rank);
+ break;
+ }
+ lastScore = report.getScore(); // 更新上一个分数
+ }
+
+ // 查询假定只有唯一一条数据,返回第一条记录,并设置排名
+ UReportSubmitted userReport = queryResults.isEmpty() ? null : queryResults.get(0);
+ if (userReport != null) {
+ // 设置计算出的排名
+ userReport.setRank(rank);
+ }
+
+ return userReport;
+ }
+
+ @Override //根据作业id和班级id获取当前班级作业排名信息列表
+ public List getClassRankByIds(int problemId, int classId) {
+
+ // 获取与当前用户同班级的所有同学信息
+ List classmates = classesDao.findClassStudentsByClassId(classId);
+ // 从 classmates 列表中提取出所有的 userId
+ List studentIds = classmates.stream()
+ .map(Classstudents::getUserId)
+ .collect(Collectors.toList());
+ // 获取所有学生的报告成绩
+ List classReports = new ArrayList<>();
+ for (Integer studentId : studentIds) {
+ String sql = "SELECT sr.score, sr.studentId, sr.problemId " +
+ "FROM submitreport sr " +
+ "WHERE sr.studentId = ? AND sr.problemId = ?";
+ List reports = jdbcTemplate.query(
+ sql,
+ new Object[]{studentId, problemId},
+ new BeanPropertyRowMapper<>(UReportSubmitted.class)
+ );
+ classReports.addAll(reports);
+ }
+
+ // 处理默认分数为空的情况,将它们视为0分
+ classReports.forEach(report -> {
+ if (report.getScore() == null) {
+ report.setScore(0f);
+ }
+ });
+
+ // 根据成绩进行排序
+ classReports.sort((r1, r2) -> r2.getScore().compareTo(r1.getScore()));
+
+ // 计算排名,处理同分同排名的情况
+ int rank = 1;
+ Float lastScore = null;
+ for (UReportSubmitted report : classReports) {
+ if (lastScore == null || !lastScore.equals(report.getScore())) {
+ rank = classReports.indexOf(report) + 1;
+ }
+ report.setRank(rank);
+ lastScore = report.getScore();
+ }
+
+ // 查询学号
+ for (UReportSubmitted report : classReports) {
+ String studentNoSql = "SELECT u.studentNo FROM users u WHERE u.id = ?";
+ String studentNo = jdbcTemplate.queryForObject(
+ studentNoSql,
+ new Object[]{report.getStudentId()},
+ String.class
+ );
+ report.setStudentNo(studentNo);
+ }
+
+ // 返回包含所有信息的列表
+ return classReports;
}
diff --git a/AES/src/main/java/com/example/aes/problem/model/UReportSubmitted.java b/AES/src/main/java/com/example/aes/problem/model/UReportSubmitted.java
index cd5bba7..9667811 100644
--- a/AES/src/main/java/com/example/aes/problem/model/UReportSubmitted.java
+++ b/AES/src/main/java/com/example/aes/problem/model/UReportSubmitted.java
@@ -10,4 +10,8 @@ public class UReportSubmitted extends ReportSubmitted implements java.io.Seriali
String StudentNo;//学号
int rank;//排名
+
+ // 排名列表分页
+ private int pageNum;
+ private int pageSize;
}
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 681f1e1..110a4b1 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
@@ -2,15 +2,10 @@ package com.example.aes.problem.service.Impl;
import com.example.aes.problem.dao.*;
import com.example.aes.problem.model.*;
-import com.example.aes.problem.model.*;
import com.example.aes.problem.service.ProblemServiceI;
import com.example.aes.user.dao.AdminusersDaoI;
import com.example.aes.user.dao.ClassesDaoI;
import com.example.aes.user.model.DataGrid;
-import com.example.aes.user.model.Classstudents;
-import com.example.aes.user.model.Course;
-import com.example.aes.user.model.PMCourse;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -181,6 +176,12 @@ public class ProblemServiceImpl implements ProblemServiceI {
return uReportSubmitted;
}
+ @Override //根据作业id和班级id获取学生当前报告成绩排名
+ public List findClassRankByIds(int problemId, int classId) {
+ List uReportSubmitted = problemDao.getClassRankByIds(problemId, classId);
+ return uReportSubmitted;
+ }
+
@Override
public List findStandardIdNoProblemId(){
return scoringStandardDao.getStandardIdNoProblemIdDesc();
@@ -519,7 +520,7 @@ public class ProblemServiceImpl implements ProblemServiceI {
pmStudentSubmit.setStudentNo((String) p[1]);
pmStudentSubmit.setReadTime((LocalDateTime) p[2]);
pmStudentSubmit.setSubmissionStatus((String) p[3]);
- pmStudentSubmitList.add(pmStudentSubmit);
+ pmStudentSubmitList.add(pmStudentSubmit);
}
}
@@ -537,14 +538,6 @@ public class ProblemServiceImpl implements ProblemServiceI {
pmStudentSubmit.setFinalScore((float) p[4]);
pmStudentSubmitList.add(pmStudentSubmit);
- PMProblem pmProblem=new PMProblem();
- pmProblem.setId(problem.getId());
- pmProblem.setCourseId(problem.getCourseId());
- pmProblem.setAdminuserId(problem.getAdminuserId());
- pmProblem.setTeacherName(adminusersDao.findTeacherNameByTeacherId(problem.getAdminuserId()));
- pmProblem.setTitle(problem.getTitle());
- pmProblem.setDescription(problem.getDescription());
- pmp.add(pmProblem);
}
}
}
diff --git a/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java b/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java
index f0ca182..4e4b343 100644
--- a/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java
+++ b/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java
@@ -41,8 +41,9 @@ public interface ProblemServiceI {
public void findStatusByStudentIdAndProblems(Integer studentId, List pMproblems);
- UReportSubmitted findScoreAndRankByIds(int ProblemId, int userId);
- public List findPostProblem(int problemId,int classId);
+ public UReportSubmitted findScoreAndRankByIds(int ProblemId, int userId);
+ public List findClassRankByIds(int problemId, int classId);
+ public List findPostProblem(int problemId,int classId);
public int editPostProblem( int classId,
int problemId,
LocalDateTime startTime,LocalDateTime endTime,boolean allow);
diff --git a/AES/src/main/java/com/example/aes/user/controller/ClassesController.java b/AES/src/main/java/com/example/aes/user/controller/ClassesController.java
index dfd0b99..391c244 100644
--- a/AES/src/main/java/com/example/aes/user/controller/ClassesController.java
+++ b/AES/src/main/java/com/example/aes/user/controller/ClassesController.java
@@ -9,10 +9,7 @@ import com.example.aes.user.model.*;
import com.example.aes.user.service.ClassesServiceI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@@ -221,4 +218,15 @@ public class ClassesController{
else return RespBean.ok("查找班级成功", classstudentsList);
}
+ @GetMapping("/getClassStudents")// 根据班级id查找所在班级人数
+ public RespBean getClassStudents(@RequestParam("classId") int classId)
+ {
+ List classstudentsList = classesServiceI.getClassStudentsByClassId(classId);
+ int counts = classstudentsList.size();
+ if (classstudentsList == null || classstudentsList.isEmpty()) { // 如果列表为空,返回错误信息
+ return RespBean.error("没有找到相关班级及人数");
+ }
+ else return RespBean.ok("查找成功", counts);
+ }
+
}
diff --git a/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java b/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java
index 56d842c..92ea1f9 100644
--- a/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java
+++ b/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java
@@ -47,4 +47,7 @@ public interface ClassesDaoI extends BaseDaoI {
public ListfindClassIdByStudentId(int studentId);//根据班级id查找学生id
public List findClassByCourseId(int courseId);
public List findClassById(int classId);
+
+ public List findClassStudentsByClassId(int classId);
+
}
diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java
index 9a024a3..a440211 100644
--- a/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java
+++ b/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java
@@ -575,5 +575,14 @@ public class ClassesDaoImpl extends BaseDaoImpl implements ClassesDaoI
return this.find(hql);
}
+ @Override
+ public List findClassStudentsByClassId(int classId) {
+ // 直接根据classId查询出该班级的所有学生信息
+ String hqlForClassStudents = "from Classstudents c where c.classId = :classId";
+ Query qForClassStudents = this.getCurrentSession().createQuery(hqlForClassStudents);
+ qForClassStudents.setParameter("classId", classId);
+ return qForClassStudents.list();
+ }
+
}
diff --git a/AES/src/main/java/com/example/aes/user/model/DataGrid.java b/AES/src/main/java/com/example/aes/user/model/DataGrid.java
index 44f352b..50d1da8 100644
--- a/AES/src/main/java/com/example/aes/user/model/DataGrid.java
+++ b/AES/src/main/java/com/example/aes/user/model/DataGrid.java
@@ -7,7 +7,7 @@ import java.util.ArrayList;
import java.util.List;
@Data
-public class DataGrid implements java.io.Serializable {
+public class DataGrid extends com.example.aes.problem.model.DataGrid implements java.io.Serializable {
private static final long serialVersionUID = 1538274527426L;
diff --git a/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java b/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java
index c64a46c..440b707 100644
--- a/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java
+++ b/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java
@@ -29,4 +29,6 @@ public interface ClassesServiceI {
public List findClassIdByStudentId(int studentId); // 根据学生id查找班级id
public List findClassByCourseId(int courseId);
+
+ List getClassStudentsByClassId(int classId);// 根据学生id查找所在班级人数
}
diff --git a/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java b/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java
index 55978dd..35bf3db 100644
--- a/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java
+++ b/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java
@@ -253,4 +253,9 @@ public void setclassstudentsDao(ClassstudentsDaoI classstudentsDao) {
return classesDao.findClassByCourseId(courseId);
}
+ @Override
+ public List getClassStudentsByClassId(int classId) {
+ return classesDao.findClassStudentsByClassId(classId);
+ }
+
}
diff --git a/AES/src/main/resources/application.properties b/AES/src/main/resources/application.properties
index 488fc4f..e82f2c8 100644
--- a/AES/src/main/resources/application.properties
+++ b/AES/src/main/resources/application.properties
@@ -5,7 +5,7 @@ server.port=8082
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
jdbc_url=jdbc:mysql://localhost:3306/aes?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=True
jdbc_username=root
-jdbc_password=123456
+jdbc_password=13661744518xh
#spring.datasource.url=jdbc:mysql://localhost:3306/aes?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=True
#spring.datasource.username=root
#spring.datasource.password=123456