Spring+SpringMVC+Mybatis+Bootstrap+Mysql实现的简单的务务管理系统,这个项目相对教适合学习和手,这个只有后台没有前台页面,项目的所有代码注释,该项目使用包名规范,代码干净,无BUG,所有的功能都经过严格的,这个项目使用到了Maven使用下载jar包,所以运行该项目要配置好maven环境。系统分为三个部分:
管理员、教师和,管理员:课程管理、学院管理、教师管理、管理、修改密码等。教师:批改学生。学生:选课、退课、课等。
运行环境:windows/Linux、jdk1.8、mysql5.7、idea、Maven、Tomcat7.0/8.5微软。
登录控制层:
@Controller public class LoginController { private static final Logger LOGGER = LoggerFactory.getLogger(LoginController.class); @Autowired AdminService adminService; @GetMapping("/cs") public String cs() { return "cs"; } @GetMapping("/login") public String login() { return "login"; } @PostMapping("/login") @ResponseBody public Msg login(String name, String pwd, HttpSession httpSession) { name = name.trim(); // LOGGER.info("{}--{}",name,pwd); return adminService.login(name, pwd, httpSession); } }
老师角色控制层:
@Authority(roles = {Role.TEACHER}) @Controller @RequestMapping("/teacher") public class TeacherController { @Autowired TeacherService teacherService; @Autowired SubjectService subjectService; @RequestMapping(value = {"", "/loginPage"}) public String loginPage() { return "teacher/login"; } @GetMapping("/index") public String homePage() { return "teacher/public-teacher-index"; } @GetMapping("/updatePwd") public String updatePwd() { return "teacher/teacherInfo/updatePwd"; } @GetMapping("/teacherInfo") public String teacherInfo() { return "teacher/teacherInfo/teacherinfo"; } @GetMapping("/modifyinfo") public String modifyInfo() { return "teacher/teacherInfo/updateinfo"; } @GetMapping("/workapprovalinfo") public String workInfo() { return "teacher/workapproval/winfo"; } @GetMapping("/workapprovaldata") public String workData() { return "teacher/workapproval/wdata"; } @GetMapping("/seeworkdata") public String seeWorkData() { return "teacher/workapproval/seewdata"; } //填写表格页面 @GetMapping("/term_debriefing") public String termDebriefing() { return "teacher/fillouttable/termdebriefing"; } @GetMapping("/year_debriefing") public String yearDebriefing() { return "teacher/fillouttable/yeardebriefing"; } @GetMapping("/annual_assessment") public String annualAssessment() { return "teacher/fillouttable/annualassessment"; } @GetMapping("/work_load") public String workLoad() { return "teacher/fillouttable/workload"; } @GetMapping("/technical_personnel") public String technicalPersonnel() { return "teacher/fillouttable/technicalpersonnel"; } @GetMapping("/term_business") public String termBusiness() { return "teacher/fillouttable/termbusiness"; } //查看表格页面 @GetMapping("/show_year_debriefing") public String showYearDebriefing() { return "teacher/showtable/yeardebriefing"; } @GetMapping("/show_term_debriefing") public String showTermDebriefing() { return "teacher/showtable/termdebriefing"; } @GetMapping("/show_annual_assessment") public String showAnnualAssessment() { return "teacher/showtable/annualassessment"; } @GetMapping("/show_technical_personnel") public String showTechnicalPersonnel() { return "teacher/showtable/technicalpersonnel"; } @GetMapping("/show_workload") public String showWorkLoad() { return "teacher/showtable/workload"; } @GetMapping("/exit") public String exit(HttpServletResponse response) { //将Cookie 中的token 置空 Cookie cookie = new Cookie("token", null); cookie.setPath("/"); response.addCookie(cookie); return "redirect:/"; } //打印页面 @GetMapping("/print_term_debriefing") public String printYearDebriefing(Long year, String term, Model model) { model.addAttribute("year", year); model.addAttribute("term", term); return "teacher/showtable/print/termdebriefing"; } @GetMapping("/print_year_debriefing") public String printTermDebriefing(Long year, Model model) { model.addAttribute("year", year); return "teacher/showtable/print/yeardebriefing"; } @GetMapping("/login") @ResponseBody public Msg login(String name, String pwd, HttpSession httpSession, HttpServletResponse response) throws ParseException { name = name.trim(); int flag = teacherService.teacherDL(name, pwd); if (flag == 200) { User user = new User(); //-1表示为超管 user.setId(0L); user.setRole("teacher"); user.setUserName(name); //生成Token 存到 Cookie Cookie cookie = new Cookie("token", TokenUtil.createToken( user )); //该Cookie无法被js读取 cookie.setHttpOnly(true); cookie.setPath("/"); response.addCookie(cookie); Teacher teacher = teacherService.selectTeacher(name); httpSession.setAttribute("teacherInfo", teacher); httpSession.setMaxInactiveInterval(3600); } return Msg.success().add("info", flag); } //教师信息修改 //修改教师密码 @PostMapping("/teacherupdetpwd") @ResponseBody public Msg fun6(String oldpwd, String newpwd, HttpSession httpSession) { Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo"); int flag = teacherService.teacherUpdetpwd(teacher.getUsername(), oldpwd, newpwd); return Msg.success().add("flag", flag); } //修改教师信息 @PostMapping("/teacherupdeteinfo") @ResponseBody public Msg updateinfo(String name, String gender, HttpSession httpSession) { TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo"); teacher.setName(name); teacher.setGender(gender); teacherService.teacherupdateInfo(teacher); return Msg.success(); } //教师出差模块 //查询所有教师出差申请信息 @GetMapping("/select_work_all") @ResponseBody public Msg fun1(HttpSession httpSession) { TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo"); List<WorkapprovalWithBLOBs> list = teacherService.selectTeacherWorkAll(teacher.getId()); return Msg.success().add("workinfo", list); } //查询申请成功教师出差申请 @GetMapping("/select_work_success") @ResponseBody public Msg fun2(HttpSession httpSession) { TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo"); List<WorkapprovalWithBLOBs> list = teacherService.selectWorkSuccess(teacher.getId()); return Msg.success().add("workinfo", list); } //查询申请失败教师出差申请 @GetMapping("/select_work_failed") @ResponseBody public Msg fun3(HttpSession httpSession) { TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo"); List<WorkapprovalWithBLOBs> list = teacherService.selectWorkFailed(teacher.getId()); return Msg.success().add("workinfo", list); } //查询已提交教师出差申请 @GetMapping("/select_work_submitted") @ResponseBody public Msg fun4(HttpSession httpSession) { TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo"); List<WorkapprovalWithBLOBs> list = teacherService.selectWorkSubmitted(teacher.getId()); return Msg.success().add("workinfo", list); } //删除申请失败的教师出差 @PostMapping("/delete_work") @ResponseBody public Msg deleteWork(Long id) { teacherService.deleteWorkById(id); return Msg.success(); } //加载报告填写页面 @GetMapping("/fillworkapproval") public String fun5(Long id, Model model) throws ParseException { WorkapprovalWithBLOBs workapproval = teacherService.s