diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index ea252bf..1f7028e 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,7 +1,7 @@ - + mysql.8 true com.mysql.cj.jdbc.Driver @@ -13,5 +13,17 @@ $ProjectFileDir$ + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306/aes + + + + + + $ProjectFileDir$ + \ No newline at end of file diff --git a/AES-front/src/api/admin.js b/AES-front/src/api/admin.js index e773456..0652627 100644 --- a/AES-front/src/api/admin.js +++ b/AES-front/src/api/admin.js @@ -31,4 +31,7 @@ export default { getAdminuserById: (data) => request.post('/adminusers/getAdminuserById', data), editAdminuser: (data) => request.post('/adminusers/editAdminuser', data), addAdminuser: (data) => request.post('/adminusers/addAdminuser', data), + findAllClassPage: (data) => request.post('/classes/findAllClassPage', data), + findAllShoolsInAdminusers: () => request.post('/school/findAllShoolsInAdminusers'), + deleteClass: (data) => request.post('/classes/deleteClass', data), } diff --git a/AES-front/src/views/admin/class/class-list.vue b/AES-front/src/views/admin/class/class-list.vue index 24bd62d..7a458bb 100644 --- a/AES-front/src/views/admin/class/class-list.vue +++ b/AES-front/src/views/admin/class/class-list.vue @@ -246,6 +246,7 @@ const queryByPage = async (currentPage)=>{ classList.value=list.map((item,i)=>{return item;}) } catch (err) { + console.error("发生错误:", err); } finally { loading.value = false; } diff --git a/AES/src/main/java/com/example/aes/global/component/RedisTest.java b/AES/src/main/java/com/example/aes/global/component/RedisTest.java new file mode 100644 index 0000000..0c394bd --- /dev/null +++ b/AES/src/main/java/com/example/aes/global/component/RedisTest.java @@ -0,0 +1,25 @@ +package com.example.aes.global.component; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +public class RedisTest { + private final StringRedisTemplate stringRedisTemplate; + + public RedisTest(StringRedisTemplate stringRedisTemplate) { + this.stringRedisTemplate = stringRedisTemplate; + } + + @PostConstruct + public void testRedisConnection() { + try { + stringRedisTemplate.opsForValue().set("testKey", "Hello Redis"); + String value = stringRedisTemplate.opsForValue().get("testKey"); + System.out.println("Redis 连接成功,获取到的值: " + value); + } catch (Exception e) { + System.err.println("Redis 连接失败: " + e.getMessage()); + } + } +} 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 69b0303..4a98349 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 @@ -1,7 +1,9 @@ package com.example.aes.user.controller; import com.example.aes.global.model.DecodeToken; +import com.example.aes.global.model.PageBean; import com.example.aes.global.model.RespBean; +import com.example.aes.user.model.DataGrid; import com.example.aes.user.model.Json; import com.example.aes.user.model.PMClasses; import com.example.aes.user.service.ClassesServiceI; @@ -66,5 +68,43 @@ public class ClassesController{ else return RespBean.error(j.getMsg(), j.getObj()); } + @PostMapping("/findAllClassPage") + public RespBean findAllClassPage(@RequestBody PageBean pageBean, HttpServletRequest request) { + if (pageBean.getPageNum() < 1 || pageBean.getPageSize() < 1) + return RespBean.error("参数错误!"); + + DecodeToken decodeToken=new DecodeToken(request); + Integer teacherId = Integer.parseInt(decodeToken.getUserId()); + String userRole = decodeToken.getRole(); + if(userRole.equals("admin")){ + if(pageBean.getTeacherId()!=0) + teacherId = pageBean.getTeacherId(); + else + teacherId = 0; + } + + PMClasses pmClasses = new PMClasses(); + pmClasses.setTeacherId(teacherId); + + if ( teacherId == 0){ + DataGrid dataGrid = classesServiceI.findClassesByConditionPage(pmClasses, pageBean.getPageNum(), pageBean.getPageSize()); + return RespBean.ok("查询所有班级信息成功", dataGrid); + }else{ + DataGrid dataGrid = classesServiceI.findClassesByConditionPage(teacherId, userRole,pageBean.getPageNum(), pageBean.getPageSize()); + return RespBean.ok("查询所有班级信息成功", dataGrid); + } + } + @PostMapping("/deleteClass") + public RespBean deleteClass(@RequestBody PMClasses pmclasses) { + int id = pmclasses.getId(); + + boolean result = classesServiceI.deleteClass(id); + if (result == true) { + return RespBean.ok("删除班级成功", result); + } else { + return RespBean.error("删除班级失败", result); + } + } + } diff --git a/AES/src/main/java/com/example/aes/user/dao/AdminusersDaoI.java b/AES/src/main/java/com/example/aes/user/dao/AdminusersDaoI.java index b97f479..70f0187 100644 --- a/AES/src/main/java/com/example/aes/user/dao/AdminusersDaoI.java +++ b/AES/src/main/java/com/example/aes/user/dao/AdminusersDaoI.java @@ -5,6 +5,7 @@ import com.example.aes.user.model.Adminusers; import com.example.aes.user.model.PMAdminusers; import java.util.List; +import java.util.Map; public interface AdminusersDaoI extends BaseDaoI { @@ -23,5 +24,5 @@ public interface AdminusersDaoI extends BaseDaoI { public boolean updateStatusByaccount(String account, String status); public boolean editAdminuser(PMAdminusers pmadminusers); // 编辑教师信息 public boolean addAdminuser(PMAdminusers pmadminusers); // 添加教师 - + public Map findTeachersByteacherIdList(String teacherIdList); } 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 e6925b4..fc6feb6 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 @@ -17,7 +17,7 @@ public interface ClassesDaoI extends BaseDaoI { public List findAllClass(); // 查询所有班级 -// public List findAllClassPage(int pageNum, int pageSize); + public List findAllClassPage(int pageNum, int pageSize); public long findAllClassNum(int teacherId, String role); diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java index be67f21..51582db 100644 --- a/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java +++ b/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java @@ -349,4 +349,15 @@ public class AdminusersDaoImpl extends BaseDaoImpl implements } else return false; } + @Override + public Map findTeachersByteacherIdList(String teacherIdList){ + String hql = "from Adminusers where id in " + "(" + teacherIdList + ")"; + List adminusersList = this.find(hql); + Map adminusersMap = new HashMap<>(); + for (int i = 0; i < adminusersList.size(); i++){ + Adminusers adminusers = adminusersList.get(i); + adminusersMap.put(adminusers.getId().toString(), adminusers.getName()); + } + return adminusersMap; + } } 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 77cb05b..94b5470 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 @@ -893,40 +893,40 @@ public class ClassesDaoImpl extends BaseDaoImpl implements ClassesDaoI return this.find(hql); } -// @Override -// public List findAllClassPage(int pageNum, int pageSize){ -// String hql = "from Classes"; -// Query query = this.getCurrentSession().createQuery(hql); -// List classesList = query.setFirstResult((pageNum - 1) * pageSize).setMaxResults(pageSize).list(); -// List pmClassesList = new ArrayList<>(); -// // 封装teachetId -// Map teacherMap = new HashMap<>(); -// for (int i = 0; i < classesList.size(); i++){ -// Classes classes = classesList.get(i); -// teacherMap.put("'" + classes.getTeacherId().toString() + "'", ""); -// } -// // 批量查询teacherName -// String teacherString = String.join(",", teacherMap.keySet()); -// Map teachersMap = adminusersDao.findTeachersByteacherIdList(teacherString); -// for(int i=0;i findAllClassPage(int pageNum, int pageSize){ + String hql = "from Classes"; + Query query = this.getCurrentSession().createQuery(hql); + List classesList = query.setFirstResult((pageNum - 1) * pageSize).setMaxResults(pageSize).list(); + List pmClassesList = new ArrayList<>(); + // 封装teachetId + Map teacherMap = new HashMap<>(); + for (int i = 0; i < classesList.size(); i++){ + Classes classes = classesList.get(i); + teacherMap.put("'" + classes.getTeacherId().toString() + "'", ""); + } + // 批量查询teacherName + String teacherString = String.join(",", teacherMap.keySet()); + Map teachersMap = adminusersDao.findTeachersByteacherIdList(teacherString); + for(int i=0;i findAllClass(); // -// public DataGrid findClassesByConditionPage(int teacherId, String role, int pageNum, int pageSize); + + public DataGrid findClassesByConditionPage(int teacherId, String role, int pageNum, int pageSize); + + public DataGrid findClassesByConditionPage(PMClasses pmclasses, int pageNum, int pageSize); // // // @@ -23,7 +26,7 @@ public interface ClassesServiceI { // // public boolean editClassMessage(int id, String className, int teacherId, int advance, int late, int reject, String weektime, Date first_week_monday); // 修改班级信息 // -// public boolean deleteClass(int id); // 删除班级 + public boolean deleteClass(int id); // 删除班级 // // public List findClassStudentsById(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 f37696b..588ac1f 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 @@ -2,9 +2,7 @@ package com.example.aes.user.service.impl; import com.example.aes.user.dao.ClassesDaoI; import com.example.aes.user.dao.ClassstudentsDaoI; -import com.example.aes.user.model.Classes; -import com.example.aes.user.model.Json; -import com.example.aes.user.model.PMClasses; +import com.example.aes.user.model.*; import com.example.aes.user.service.ClassesServiceI; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -63,5 +61,64 @@ public void setclassstudentsDao(ClassstudentsDaoI classstudentsDao) { } return json; } + @Override + public DataGrid findClassesByConditionPage(int teacherId, String role, int pageNum, int pageSize){ + DataGrid dg = new DataGrid(); + long totalLines; + List pmClassesList; + + totalLines = classesDao.findAllClassNum(teacherId, role); + pmClassesList = classesDao.findClassesByConditionPage(teacherId,role, pageNum, pageSize); + if (pmClassesList == null) { + return null; + } else{ + // 设置总的记录行数 + dg.setTotal(totalLines); + // 设置每页显示多少行 + dg.setPageSize(pageSize); + // 设置总的页数,总页数 = (总行数/每页显示多少行)向上取整 + dg.setTotalPages((long) (Math.ceil((double) dg.getTotal() / (double) dg.getPageSize()))); + // 设置当前显示第几页 + dg.setPageNum(pageNum); + // 设置当前页的数据行数量 + dg.setCurrentPageLineNum(pmClassesList.size()); + // 设置当前页的所有数据行 + dg.setList(pmClassesList); + return dg; + } + } + @Override + public DataGrid findClassesByConditionPage(PMClasses pmclasses, int pageNum, int pageSize){ + DataGrid dg = new DataGrid(); + long totalLines; + totalLines = classesDao.findClassesByConditionPageNum(pmclasses); + List pmClassesList = classesDao.findClassesByConditionPage(pmclasses, pageNum, pageSize); + dg.setTotal(totalLines); + dg.setPageSize(pageSize); + dg.setTotalPages((long) (Math.ceil((double) dg.getTotal() / (double) dg.getPageSize()))); + dg.setPageNum(pageNum); + dg.setCurrentPageLineNum(pmClassesList.size()); + dg.setList(pmClassesList); + return dg; + + } + @Override + public boolean deleteClass(int id) { + // 删除ExamClass关联数据,目前没有examclass +// +// List ecList = examClassesDao.getExamclassesByClassId(id); +// if(ecList != null && !ecList.isEmpty()){ +// for(Examclasses ec : ecList) +// examClassesDao.delete(ec); +// } + //删除ClassStudents关联数据 + List csList = classstudentsDao.getClassStudentsByClassId(id); + if(csList != null && !csList.isEmpty()){ + for(Classstudents cs : csList) + classstudentsDao.delete(cs); + } + + return classesDao.deleteClass(id); + } } diff --git a/AES/src/main/resources/application.properties b/AES/src/main/resources/application.properties index a42417e..488fc4f 100644 --- a/AES/src/main/resources/application.properties +++ b/AES/src/main/resources/application.properties @@ -40,4 +40,7 @@ spring.main.allow-circular-references=true spring.servlet.multipart.max-file-size=50MB spring.servlet.multipart.max-request-size=50MB -spring.main.allow-bean-definition-overriding=true \ No newline at end of file +spring.main.allow-bean-definition-overriding=true + +spring.jackson.serialization-inclusion=non_null +#??null? \ No newline at end of file diff --git a/AES/src/main/resources/spring-hibernate.xml b/AES/src/main/resources/spring-hibernate.xml index dc01bb0..1ffddf7 100644 --- a/AES/src/main/resources/spring-hibernate.xml +++ b/AES/src/main/resources/spring-hibernate.xml @@ -124,7 +124,7 @@ - +