diff --git a/AES-front/src/api/admin.js b/AES-front/src/api/admin.js index 4bf2f29..e773456 100644 --- a/AES-front/src/api/admin.js +++ b/AES-front/src/api/admin.js @@ -26,4 +26,9 @@ export default { editPassword: (data) => request.post('/adminusers/editPassword', data), deleteAdminuser: (data) => request.post('/adminusers/deleteAdminuser', data), addAssistant: (data) => request.post('/adminusers/addAssistant', data), + findAllAdminusers: (data) => request.post('/adminusers/findAllAdminusers', data), + editTeacherStatus: (data) => request.post('/adminusers/editTeacherStatus', data), + getAdminuserById: (data) => request.post('/adminusers/getAdminuserById', data), + editAdminuser: (data) => request.post('/adminusers/editAdminuser', data), + addAdminuser: (data) => request.post('/adminusers/addAdminuser', data), } diff --git a/AES-front/src/views/admin/teacher/teacher-add.vue b/AES-front/src/views/admin/teacher/teacher-add.vue index e949476..f5bb85d 100644 --- a/AES-front/src/views/admin/teacher/teacher-add.vue +++ b/AES-front/src/views/admin/teacher/teacher-add.vue @@ -87,8 +87,8 @@ const teacherInfoValue = ref({ no:'', role:'teacher', email:'', - active:1, - schoolId:userStore.getSchoolId(), + active:1 + // schoolId:userStore.getSchoolId(), }); const passwordsMatch = computed(() => teacherInfoValue.value.password=== teacherInfoValue.value.confirmPassword); const teacherInfoRef = ref(null) diff --git a/AES-front/src/views/admin/teacher/teacher-list.vue b/AES-front/src/views/admin/teacher/teacher-list.vue index 94acca7..5459dad 100644 --- a/AES-front/src/views/admin/teacher/teacher-list.vue +++ b/AES-front/src/views/admin/teacher/teacher-list.vue @@ -43,7 +43,7 @@ const router = useRouter() const options=ref([]) const loading = ref(true) const teacherList = - ref([{tcId:"1",account:"zzp",no:21313357,name:"教师1",role:"teacher",email:"zzp@163.com",status:true}]) + ref([]) const rules=ref(null) const paginationReactive = reactive({ page: 1, @@ -183,8 +183,7 @@ const onPasswordClass = async (classId)=>{ } } const onEditClass = async (classId)=>{ - // const {id} = classId - const id=1 + const {id} = classId await router.push({name: 'TeacherEdit', params: {clId: id}}) } const onDeleteClass = async (classId)=>{ diff --git a/AES/src/main/java/com/example/aes/global/model/PageBean.java b/AES/src/main/java/com/example/aes/global/model/PageBean.java new file mode 100644 index 0000000..1bd5649 --- /dev/null +++ b/AES/src/main/java/com/example/aes/global/model/PageBean.java @@ -0,0 +1,98 @@ +package com.example.aes.global.model; + +public class PageBean implements java.io.Serializable{ + // 班级id + private int id; + private int examId; + private int pageNum; + private int pageSize; + private int userId; + private int schoolId; + private int teacherId; + + //传入班级id,获取该班的截止时间限制 + private int classId; + + private String name; + + public PageBean(){} + + public PageBean(int examId, int pageNum, int pageSize, int userId) { + this.examId = examId; + this.pageNum = pageNum; + this.pageSize = pageSize; + this.userId = userId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getExamId() { + return examId; + } + + public void setExamId(int examId) { + this.examId = examId; + } + + public int getPageNum() { + return pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public int getSchoolId() { + return schoolId; + } + + public void setSchoolId(int schoolId) { + this.schoolId = schoolId; + } + + public int getTeacherId() { + return teacherId; + } + + public void setTeacherId(int teacherId) { + this.teacherId = teacherId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getClassId() { + return classId; + } + + public void setClassId(int classId) { + this.classId = classId; + } +} diff --git a/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java b/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java index 13f6a66..224e14b 100644 --- a/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java +++ b/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java @@ -2,6 +2,7 @@ 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.AssistantClass; import com.example.aes.user.model.DataGrid; @@ -52,7 +53,51 @@ public class AdminusersController { else return RespBean.ok("无该账号信息"); } + // 管理员修改状态 + @PostMapping("/editTeacherStatus") + public RespBean editTeacherStatus(@RequestBody UAdminusers uAdminusers, HttpServletRequest request){ + DecodeToken decodeToken = new DecodeToken(request); + String role = decodeToken.getRole(); + if(role.equals("admin")){ + String account = uAdminusers.getAccount(); + String status = uAdminusers.getStatus(); + boolean result = adminusersServiceI.updateStatusByaccount(account, status); + if(result) + return RespBean.ok("修改状态成功"); + else + return RespBean.ok("修改状态失败"); + } + return RespBean.error("不具备权限"); + } + @PostMapping("/getAdminuserById") + public RespBean getAdminuserById(@RequestBody PMAdminusers pmadminusers) // 获取单个用户的信息 + { + PMAdminusers adminuser = adminusersServiceI + .getAdminuserById(pmadminusers.getId()); + return RespBean.ok("查询用户成功", adminuser); + } + @PostMapping("/editAdminuser") + public RespBean editAdminuser(@RequestBody PMAdminusers pmadminusers) // 编辑教师信息,能够改变的是name,role,email + { + boolean result = adminusersServiceI.editAdminuser(pmadminusers); + if (result == true) { + return RespBean.ok("修改信息成功"); + } else { + return RespBean.error("修改信息失败"); + } + } + @PostMapping("/addAdminuser") + public RespBean addAdminuser(@RequestBody PMAdminusers pmadminusers) // 添加教师 + { + pmadminusers.setSessionId(pmadminusers.getSessionId().substring(64)); + boolean result = adminusersServiceI.addAdminuser(pmadminusers); + if (result == true) { + return RespBean.ok("添加教师成功"); + } else { + return RespBean.error("添加教师失败"); + } + } @PostMapping("/deleteAdminuser") public RespBean deleteAdminuser(@RequestBody PMAdminusers pmadminusers) // 删除教师 { @@ -96,6 +141,15 @@ public class AdminusersController { return RespBean.error("查询教师信息失败"); } } + @PostMapping("/findAllAdminusers") + public RespBean findAllAdminusers(@RequestBody PageBean pageBean) { + if(pageBean.getPageNum() < 1 || pageBean.getPageSize() < 1) + return RespBean.error("参数错误"); + DataGrid chapters = adminusersServiceI + .findAllAdminusers(pageBean.getName(),pageBean.getPageNum(), pageBean.getPageSize()); + return RespBean.ok("查询所有用户成功", chapters); + } + @PostMapping("/signTeacher") public RespBean signTeacher(@RequestBody PMAdminusers pmadminusers) // 注册教师 { 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 11c971e..b97f479 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 @@ -18,5 +18,10 @@ public interface AdminusersDaoI extends BaseDaoI { public boolean deleteAdminuser(PMAdminusers pmadminusers); // 删除教师 public boolean addAssistant(PMAdminusers pmadminusers); // 添加助教 public Adminusers findAssistantByno(String no); + public List findAllAdminusersPage(String name, int pageNum, int pageSize); + public long findAllAdminusersNum(String name); + public boolean updateStatusByaccount(String account, String status); + public boolean editAdminuser(PMAdminusers pmadminusers); // 编辑教师信息 + public boolean addAdminuser(PMAdminusers pmadminusers); // 添加教师 } 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 d42ee78..be67f21 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 @@ -242,7 +242,111 @@ public class AdminusersDaoImpl extends BaseDaoImpl implements } else return null; } + @Override + public List findAllAdminusersPage(String name, int pageNum, int pageSize){ + StringBuilder hql = new StringBuilder(); + hql.append("from Adminusers where role='teacher'"); + if(!name.equals("")){ + hql.append(" and name like '%" + name + "%'"); + } + hql.append(" order by id asc"); +// String hql = "from Adminusers where role='teacher'"; + List adminusersList = this.find(hql.toString(), pageNum, pageSize); + List pmadminusersList = new ArrayList(); + for (int i = 0; i < adminusersList.size(); i++) { + Adminusers adminusers = adminusersList.get(i); +// School s = schoolDao.get(School.class, adminusers.getSchoolId()); + PMAdminusers p = new PMAdminusers(); + p.setId(adminusers.getId()); + p.setName(adminusers.getName()); +// p.setSchoolId(adminusers.getSchoolId()); +// p.setSchoolname(s.getName()); + p.setAccount(adminusers.getAccount()); + p.setRole(adminusers.getRole()); + p.setEmail(adminusers.getEmail()); + p.setStatus(adminusers.getStatus()); + p.setNo(adminusers.getNo()); + pmadminusersList.add(p); + } +// Collections.sort(pmadminusersList, new Comparator() { +// @Override +// public int compare(PMAdminusers p1, PMAdminusers p2) { +// // Convert names to pinyin and compare +// return comparePinyin(p1.getName(), p2.getName()); +// } +// }); + return pmadminusersList; + } + + @Override + public long findAllAdminusersNum(String name){ + StringBuilder hql = new StringBuilder(); + hql.append("select count(*) from Adminusers where role='teacher'"); + if(!name.equals("")){ + hql.append(" and name like '%" + name + "%'"); + } + return this.count(hql.toString()).longValue(); + } - + @Override + public boolean updateStatusByaccount(String account, String status){ + String hql = "update Adminusers set status=:status where account=:account"; + Query q = this.getCurrentSession().createQuery(hql); + q.setParameter("account", account); + q.setParameter("status", status); + int result = q.executeUpdate(); + if (result > 0) + return true; + else + return false; + } + @Override + public boolean editAdminuser(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + String hql = "update Adminusers set name=:name,role=:role,email=:email,no=:no where id=:id"; + Query q = this.getCurrentSession().createQuery(hql); + String name = pmadminusers.getName(); + String role = pmadminusers.getRole(); + String email = pmadminusers.getEmail(); + String no = pmadminusers.getNo(); + int id = pmadminusers.getId(); + q.setParameter("name", name); + q.setParameter("role", role); + q.setParameter("email", email); + q.setParameter("id", id); + q.setParameter("no", no); + int result = q.executeUpdate(); + if (result > 0) + return true; + else + return false; + } + @Override + public boolean addAdminuser(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + String hql = "from Adminusers where account=:account"; + Query q = this.getCurrentSession().createQuery(hql); + q.setParameter("account", pmadminusers.getAccount()); + List list = q.list(); // 如果账号以及存在,则不能添加 + if (list.size() == 0) { + Adminusers adminuser = new Adminusers(); + adminuser.setAccount(pmadminusers.getAccount()); + adminuser.setPassword(pmadminusers.getSessionId()); + adminuser.setPwd(pmadminusers.getPassword()); + adminuser.setName(pmadminusers.getName()); + adminuser.setRole(pmadminusers.getRole()); + adminuser.setEmail(pmadminusers.getEmail()); + adminuser.setActive(pmadminusers.getActive()); +// adminuser.setSchoolId(pmadminusers.getSchoolId()); + adminuser.setNo(pmadminusers.getNo()); + adminuser.setStatus("通过"); + Integer result = (Integer) this.save(adminuser); + if (result != null) + return true; + else + return false; + } else + return false; + } } diff --git a/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java b/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java index adcc431..203d94f 100644 --- a/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java +++ b/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java @@ -22,5 +22,9 @@ public interface AdminusersServiceI { public boolean deleteAminuser(PMAdminusers pmadminusers); // 删除教师 public PMAdminusers findAssistantByno(String no);//根据工号查找助教 public boolean addAssistant(PMAdminusers pmadminusers); // 添加助教 + public DataGrid findAllAdminusers(String name,int pageNum, int pageSize); + public boolean updateStatusByaccount(String account, String status); + public boolean editAdminuser(PMAdminusers pmadminusers); // 编辑教师信息 + public boolean addAdminuser(PMAdminusers pmadminusers); // 添加教师 } diff --git a/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java b/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java index 946aa70..1dd7b44 100644 --- a/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java +++ b/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java @@ -211,6 +211,35 @@ public class AdminusersServiceImpl implements AdminusersServiceI { // TODO Auto-generated method stub return adminusersDao.addAssistant(pmadminusers); } + @Override + public DataGrid findAllAdminusers(String name, int pageNum, int pageSize) { + DataGrid dg = new DataGrid(); + long totalLines = adminusersDao.findAllAdminusersNum(name); + List pmAdminusersList = adminusersDao.findAllAdminusersPage(name, pageNum, pageSize); + dg.setTotal(totalLines); + dg.setPageSize(pageSize); + dg.setTotalPages((long) (Math.ceil((double) dg.getTotal() / (double) dg.getPageSize()))); + dg.setPageNum(pageNum); + dg.setCurrentPageLineNum(pmAdminusersList.size()); + dg.setList(pmAdminusersList); + // TODO Auto-generated method stub + return dg; + } + @Override + public boolean updateStatusByaccount(String account, String status){ + return adminusersDao.updateStatusByaccount(account, status); + } + @Override + public boolean editAdminuser(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + return adminusersDao.editAdminuser(pmadminusers); + } + @Override + public boolean addAdminuser(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + return adminusersDao.addAdminuser(pmadminusers); + } + @Override public PMAdminusers findAssistantByno(String no){ Adminusers adminusers =