源码获取:博客首页 "资源" 里下载!
主要有三个角色:分别是 管理员、学生、教师。
管理员权限:学生、教师管理 专业、课程、班级、学院、年级管理、供应商、教材出入库管理、个人信息管理、付款记录等
学生:领取教材、教材缴费、教材退货等。
老师:领取教材并发放,退书等。
管理员账号: 20130323 密码:123456 学生和教师在user表Id为登录账号
运行环境:windows/Linux均可、jdk1.8、mysql5.7、idea/eclipse均可。
学生管理控制层:
@Controller
@RequestMapping(value = "/student")
public class StudentController {
@Resource(name = "courseServiceImpl")
private CourseService courseService;
@Resource(name = "studentServiceImpl")
private StudentService studentService;
@Resource(name = "selectedCourseServiceImpl")
private SelectedCourseService selectedCourseService;
@RequestMapping(value = "/showCourse")
public String stuCourseShow(Model model, Integer page) throws Exception {
List<CourseCustom> list = null;
//页码对象
PagingVO pagingVO = new PagingVO();
//设置总页数
int countCouse = courseService.getCountCouse();
pagingVO.setTotalCount(countCouse);
if (page == null || page == 0) {
pagingVO.setToPageNo(1);
list = courseService.findByPaging(1);
} else {
pagingVO.setToPageNo(page);
list = courseService.findByPaging(page);
}
model.addAttribute("countCouse",countCouse);
model.addAttribute("courseList", list);
model.addAttribute("pagingVO", pagingVO);
return "student/showCourse";
}
// 选课操作
@RequestMapping(value = "/stuSelectedCourse")
public String stuSelectedCourse(int id) throws Exception {
//获取当前用户名
Subject subject = SecurityUtils.getSubject();
String username = (String) subject.getPrincipal();
SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();
selectedCourseCustom.setCourseid(id);
selectedCourseCustom.setStudentid(Integer.parseInt(username));
SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom);
if (s == null) {
selectedCourseService.save(selectedCourseCustom);
} else {
throw new CustomException("该门课程你已经选了,不能再选");
}
return "redirect:/student/selectedCourse";
}
// 退课操作
@RequestMapping(value = "/outCourse")
public String outCourse(int id) throws Exception {
Subject subject = SecurityUtils.getSubject();
String username = (String) subject.getPrincipal();
SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();
selectedCourseCustom.setCourseid(id);
selectedCourseCustom.setStudentid(Integer.parseInt(username));
selectedCourseService.remove(selectedCourseCustom);
return "redirect:/student/selectedCourse";
}
// 已选课程
@RequestMapping(value = "/selectedCourse")
public String selectedCourse(Model model) throws Exception {
//获取当前用户名
Subject subject = SecurityUtils.getSubject();
StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());
List<SelectedCourseCustom> list=new ArrayList<>();
if(studentCustom!=null){
list = studentCustom.getSelectedCourseList();
}
model.addAttribute("selectedCourseList", list);
model.addAttribute("selectedCourseCount",list.size());
return "student/selectCourse";
}
// 已修课程
@RequestMapping(value = "/overCourse")
public String overCourse(Model model) throws Exception {
//获取当前用户名
Subject subject = SecurityUtils.getSubject();
StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());
List<SelectedCourseCustom> list =new ArrayList<>();
if(studentCustom!=null){
list = studentCustom.getSelectedCourseList();
}
model.addAttribute("selectedCourseList", list);
model.addAttribute("checkedCourseCount",list.size());
return "student/overCourse";
}
//修改密码
@RequestMapping(value = "/passwordRest")
public String passwordRest() throws Exception {
return "student/passwordRest";
}
//搜索课程
@RequestMapping(value = "selectCourse", method = {RequestMethod.POST})
private String selectCourse(String findByName, Model model) throws Exception {
List<CourseCustom> list = courseService.findByName(findByName);
model.addAttribute("name",findByName==null?"":findByName);
model.addAttribute("courseList", list);
return "student/showCourse";
}
}
教师管理控制层:
@Controller
@RequestMapping(value = "/teacher")
public class TeacherController {
@Resource(name = "teacherServiceImpl")
private TeacherService teacherService;
@Resource(name = "courseServiceImpl")
private CourseService courseService;
@Resource(name = "selectedCourseServiceImpl")
private SelectedCourseService selectedCourseService;
// 显示我的课程
@RequestMapping(value = "/showCourse")
public String stuCourseShow(Model model) throws Exception {
Subject subject = SecurityUtils.getSubject();
String username = (String) subject.getPrincipal();
List<CourseCustom> list = courseService.findByTeacherID(Integer.parseInt(username));
model.addAttribute("courseList", list);
return "teacher/showCourse";
}
// 显示我的课程
@RequestMapping(value = "/selectCourse")
public String selectCourse(String findByName,Model model) throws Exception {
Subject subject = SecurityUtils.getSubject();
String username = (String) subject.getPrincipal();
if(findByName==null){
findByName="";
}
List<CourseCustom> list = courseService.findByTeacherIdAndCourseName(Integer.parseInt(username),findByName);
model.addAttribute("courseList", list);
model.addAttribute("name",findByName);
return "teacher/showCourse";
}
// 显示成绩
@RequestMapping(value = "/gradeCourse")
public String gradeCourse(Integer id, Model model) throws Exception {
if (id == null) {
return "";
}
List<SelectedCourseCustom> list = selectedCourseService.findByCourseID(id);
model.addAttribute("selectedCourseList", list);
return "teacher/showGrade";
}
// 打分
@RequestMapping(value = "/mark", method = {RequestMethod.GET})
public String markUI(SelectedCourseCustom scc, Model model) throws Exception {
SelectedCourseCustom selectedCourseCustom = selectedCourseService.findOne(scc);
model.addAttribute("selectedCourse", selectedCourseCustom);
return "teacher/mark";
}
// 打分
@RequestMapping(value = "/mark", method = {RequestMethod.POST})
public String mark(SelectedCourseCustom scc) throws Exception {
selectedCourseService.updataOne(scc);
return "redirect:/teacher/gradeCourse?id="+scc.getCourseid();
}
//修改密码
@RequestMapping(value = "/passwordRest")
public String passwordRest() throws Exception {
return "teacher/passwordRest";
}
}
登录管理控制层:
@Controller
public class LoginController {
//登录跳转
@RequestMapping(value = "/login", method = {RequestMethod.GET})
public String loginUI() throws Exception {
return "../../login";
}
//登录表单处理
@RequestMapping(value = "/login", method = {RequestMethod.POST})
public String login(Userlogin userlogin) throws Exception {
//Shiro实现登录
UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),
userlogin.getPassword());
Subject subject = SecurityUtils.getSubject();
//如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
subject.login(token);
if (subject.hasRole("admin")) {
return "redirect:/admin/showStudent";
} else if (subject.hasRole("teacher")) {
return "redirect:/teacher/showCourse";
} else if (subject.hasRole("student")) {
return "redirect:/student/showCourse";
}
return "/login";
}
}
源码获取:博客首页 "资源" 里下载!