源码获取:博客首页 "资源" 里下载!

一、项目简述

功能包括:
三角色教师 管理员,学生教务管理系统,包括院系管理,课题综合管理,信息管理,以及差旅管理,学生选题等等。

二、项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringBoot + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等

教师管理控制层:

@Authority(roles = {Role.TEACHER})
@Controller
@RequestMapping("/teacher")
public class TeacherController {@AutowiredTeacherService teacherService;@AutowiredSubjectService 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")@ResponseBodypublic 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 存到 CookieCookie 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic 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")@ResponseBodypublic Msg deleteWork(Long id) {teacherService.deleteWorkById(id);return Msg.success();}//加载报告填写页面@GetMapping("/fillworkapproval")public String fun5(Long id, Model model) throws ParseException {WorkapprovalWithBLOBs workapproval = teacherService.selectWorkById(id);SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");String start = sdf.format(workapproval.getBeginDate());String end = sdf.format(workapproval.getEndDate());String time = start + " - " + end;model.addAttribute("workapproval", workapproval);model.addAttribute("time", time);return "teacher/workapproval/fillwdata";}//上传出差报告@PostMapping("/fill_in_w")@ResponseBodypublic Msg fun7(@RequestParam("id_work") Long idWork, @RequestParam("news") String news, @RequestParam("flag") Integer flag,@RequestParam("file") MultipartFile file) throws IOException {//判断file的值是否为空if (file.isEmpty()) {return Msg.error();}String fileName = file.getOriginalFilename();// 获取上传文件的原名int size = (int) file.getSize();System.out.println(fileName + "-->" + size);File path = new File(ResourceUtils.getURL("target").getPath());String savePath = path.getAbsolutePath() + "\\classes\\static\\model";String saveFileName = savePath + "\\" + fileName;//        String path = "D:/test";//文件保存路径File targetFile = new File(savePath);if (!targetFile.getParentFile().exists()) { //判断文件父目录是否存在targetFile.getParentFile().mkdir();}file.transferTo(new File(targetFile, fileName)); // 开始接受文件Workapprovaldata workapprovaldata = new Workapprovaldata();workapprovaldata.setIdWorkapproval(idWork);workapprovaldata.setNews(news);workapprovaldata.setDatarar(saveFileName);//flag == 0 公有  flag == 1私有workapprovaldata.setFlag(flag);teacherService.insertWordData(workapprovaldata);return Msg.success();}//查看出差报告@GetMapping("/select_work_data")@ResponseBodypublic Msg fun8(Integer pn, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");PageHelper.startPage(pn, 9);List<Workapprovaldata> list = teacherService.selectWorkData(teacher.getIdSection());PageInfo page = new PageInfo(list, 5);return Msg.success().add("dataInfo", page);}//出差附件下载@RequestMapping(value = "/file_download")public ResponseEntity<byte[]> downloadFile(String dataId, HttpServletRequest req, HttpServletResponse response) throws IOException {Workapprovaldata workapprovaldata = null;if (dataId != null) {Long id = Long.valueOf(dataId);workapprovaldata = teacherService.selectWorkDataById(id);}if (workapprovaldata != null) {String filePath = workapprovaldata.getDatarar();//设置文件路径File file = new File(filePath);if (!file.exists()) {file.mkdirs();}String fileName = file.getName();HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.MULTIPART_FORM_DATA);String encodeFilename = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());headers.setContentDispositionFormData("attachment", encodeFilename);return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}return null;}//学期述职@PostMapping("/upload_term_debriefing")@ResponseBodypublic Msg fun9(String year, String term, String teachingTask, String scientificResearch,String otherWork, String winAward, String summary, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");DebriefingWithBLOBs debriefingWithBLOBs = new DebriefingWithBLOBs();debriefingWithBLOBs.setIdTeacher(teacher.getId());debriefingWithBLOBs.setYear(Long.parseLong(year));debriefingWithBLOBs.setTerm(term);debriefingWithBLOBs.setTeachingtask(teachingTask);debriefingWithBLOBs.setAchievementsinscientificresearch(scientificResearch);debriefingWithBLOBs.setOtherwork(otherWork);debriefingWithBLOBs.setWinaward(winAward);debriefingWithBLOBs.setSummary(summary);int flag = teacherService.selectTermDebriefingFlag(teacher.getId(), Long.parseLong(year), term);if (flag == 1) {teacherService.updateTermDebriefing(debriefingWithBLOBs);} else {int i = teacherService.insertTermDebriefing(debriefingWithBLOBs);}return Msg.success();}// 工作量表相关@GetMapping("/wordload")public String wordloadPage() {return "teacher/table/workload";}@GetMapping("/wordloadData")@ResponseBodypublic Msg wordloadData(@RequestParam("year") String year,@RequestParam("trem") String trem) {Teacher teacher = (Teacher) request.getSession().getAttribute("teacherInfo");return Msg.success().add("teacher", teacher).add("workloadDTO", teacherService.getWorkload(teacher.getId(), year, trem));}private static final Logger LOGGER = LoggerFactory.getLogger(TeacherController.class);@AutowiredHttpServletRequest request;@PostMapping("/wordload")@ResponseBodypublic Msg wordloadSave(@RequestBody WorkloadDTO workloadDTO) {Teacher teacher = (Teacher) request.getSession().getAttribute("teacherInfo");
//        LOGGER.info("{}",workloadDTO);teacherService.saveWorkload(workloadDTO, teacher);return Msg.success();}// 教师业务表@GetMapping("/business")public String businessPage() {return "teacher/table/business";}@GetMapping("/businessData")@ResponseBodypublic Msg businessData(@RequestParam("year") String year,@RequestParam("trem") String trem) {Teacher teacher = (Teacher) request.getSession().getAttribute("teacherInfo");return teacherService.getBusiness(teacher.getId(), year, trem).add("teacher", teacher);}@PostMapping("/business")@ResponseBodypublic Msg saveBusiness(@RequestBody BusinessDTO businessDTO) {Teacher teacher = (Teacher) request.getSession().getAttribute("teacherInfo");return Msg.sqlChange((int) teacherService.saveBusiness(businessDTO, teacher));}//年度述职@PostMapping("/upload_year_debriefing")@ResponseBodypublic Msg fun10(String year, String teachingTask, String scientificResearch,String otherWork, String winAward, String summary, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");DebriefingYearWithBLOBs debriefingYear = new DebriefingYearWithBLOBs();debriefingYear.setIdTeacher(teacher.getId());debriefingYear.setYear(Long.parseLong(year));debriefingYear.setTeachingtask(teachingTask);debriefingYear.setAchievementsinscientificresearch(scientificResearch);debriefingYear.setOtherwork(otherWork);debriefingYear.setWinaward(winAward);debriefingYear.setSummary(summary);Long flag = teacherService.selectYearDebriefingFlag(teacher.getId(), Long.parseLong(year));if (flag == 1) {teacherService.updateYearDebriefing(debriefingYear);} else {int i = teacherService.insertYearDebriefing(debriefingYear);}return Msg.success();}//查询年度述职中年份@GetMapping("/select_debriefing_year")@ResponseBodypublic Msg fun11() {List<DebriefingYear> list = teacherService.selectDebriefingByYear();//         把年份排序Collections.sort(list, new Comparator<DebriefingYear>() {@Overridepublic int compare(DebriefingYear o1, DebriefingYear o2) {return (int) (o2.getYear() - o1.getYear());}});return Msg.success().add("year", list);}//查询指定年份的年度述职信息@GetMapping("/select_debriefing_year_info")@ResponseBodypublic Msg fun12(Long year, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");DebriefingYearWithBLOBs debriefingYear = teacherService.selectYearDebriefingInfo(teacher.getId(), year);return Msg.success().add("debriefingInfo", debriefingYear);}//查询学期述职中年份@GetMapping("select_debriefing_term")@ResponseBodypublic Msg fun13() {List<Debriefing> list = teacherService.selectDebriefingTermByYear();List<Long> temp = new ArrayList<>();//去除重复的年份for (Debriefing s : list) {if (!temp.contains(s.getYear())) {temp.add(s.getYear());}}return Msg.success().add("year", temp);}//查询指定年份的学期述职信息@GetMapping("/select_debriefing_term_info")@ResponseBodypublic Msg fun14(Long year, String term, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");DebriefingWithBLOBs debriefing = teacherService.selectTermDebriefingInfo(teacher.getId(), year, term);return Msg.success().add("debriefingInfo", debriefing);}//年度考核@PostMapping("/upload_annual_assessment")@ResponseBodypublic Msg fun15(String personalSummary, String year, String remark, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");AnnualAssessmentWithBLOBs assessment = new AnnualAssessmentWithBLOBs();assessment.setIdTeacher(teacher.getId());assessment.setPersonalsummary(personalSummary);assessment.setYear(year);assessment.setRemark(remark);Long flag = teacherService.selectAnnualAssessmentFlag(teacher.getId(), year);if (flag == 1) {int i = teacherService.updateAnnualAssessment(assessment);} else {int i = teacherService.insertAnnualAssessment(assessment);}return Msg.success();}//年度专业技术人员考核表@PostMapping("/upload_technical_personnel")@ResponseBodypublic Msg fun16(String year, String mainAchievements, String attendance, String rewardsAndPunishments, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");TechnicalPersonnelWithBLOBs technicalPersonnelWithBLOBs = new TechnicalPersonnelWithBLOBs();technicalPersonnelWithBLOBs.setIdTeacher(teacher.getId());technicalPersonnelWithBLOBs.setYear(year);technicalPersonnelWithBLOBs.setMainachievements(mainAchievements);technicalPersonnelWithBLOBs.setAttendance(attendance);technicalPersonnelWithBLOBs.setRewardsandpunishments(rewardsAndPunishments);Long flag = teacherService.selectTechnicalPersonnelFlag(teacher.getId(), Long.parseLong(year));if (flag == 1) {int i = teacherService.updateTechnicalPersonnel(technicalPersonnelWithBLOBs);} else {int i = teacherService.insertTechnicalPersonnel(technicalPersonnelWithBLOBs);}return Msg.success();}//查询年度考核年份@GetMapping("/select_annual_assessment")@ResponseBodypublic Msg fun17(HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");List<AnnualAssessment> list = teacherService.selectAnnualAssessmentByYear(teacher.getId());if (list.isEmpty()) {return Msg.fail();} else {return Msg.success().add("year", list);}}//查询指定年度考核信息@GetMapping("/select_annualassessment_year_info")@ResponseBodypublic Msg fun18(Long year, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");AnnualAssessmentWithBLOBs assessment = teacherService.selectAnnualAssessmentInfo(teacher.getId(), year);return Msg.success().add("assessmentInfo", assessment);}//查询度专业技术人员考核表年份@GetMapping("/select_technical_personnel_year")@ResponseBodypublic Msg fun18(HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");List<TechnicalPersonnel> list = teacherService.selectTechnicalPersonnelByYear(teacher.getId());if (list.isEmpty()) {return Msg.fail();} else {return Msg.success().add("year", list);}}//查询度专业技术人员考核表信息@GetMapping("/select_technicalpersonnel_year_info")@ResponseBodypublic Msg fun19(Long year, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");TechnicalPersonnelWithBLOBs technicalPersonnelWithBLOBs = teacherService.selectTechnicalPersonnelInfo(teacher.getId(), year);return Msg.success().add("technicalPersonnel", technicalPersonnelWithBLOBs);}// 毕业设计内容// 加载上传课题页面@GetMapping("/upload_topic_page")public String uploadTopic(ModelMap modelMap, HttpSession httpSession) {TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo");List<Projecttype> projecttypes = teacherService.select_allProjecttype();List<Projectsource> projectsources = teacherService.select_allProjectsource();List<Specialty> specialties = teacherService.select_allSpecialty(teacher.getIdSection());modelMap.addAttribute("projecttypes", projecttypes);modelMap.addAttribute("projectsources", projectsources);modelMap.addAttribute("specialties", specialties);return "teacher/graduation/upload";}// 上传课题@PostMapping("/up_project")@ResponseBodypublic Msg fun20(String projectName, Long idProjecttype, Long idProjectsource, String marchspecialty, String teachernames, @RequestParam("file") MultipartFile file, HttpServletRequest request, HttpSession httpSession) throws IOException {if (file == null) {return Msg.fail().add("msg","文件上传失败");}if(teacherService.selectProjectByName(projectName).size()>0){System.out.println("上传失败");return Msg.fail().add("msg","课题名已存在");}Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");ServletContext servletContext = request.getSession().getServletContext();String uploadFileName = file.getOriginalFilename(); // 获取上传文件的原名System.out.println(uploadFileName);uploadFileName = uploadFileName.substring(uploadFileName.lastIndexOf(File.separator) + 1);System.out.println(uploadFileName);File path = new File(ResourceUtils.getURL("target").getPath());String savePath =path.getAbsolutePath() + File.separator+"classes+"+File.separator+"static"+File.separator+"model"+File.separator + teacher.getId();String saveFileName = savePath +File.separator + uploadFileName;File dirs = new File(savePath);//判断路径是否存在,如果不存在就创建一个if (!dirs.exists()) {dirs.mkdirs();}file.transferTo(new File(dirs, uploadFileName)); // 开始接受文件System.out.println(teachernames);ProjectWithBLOBs project = new ProjectWithBLOBs();project.setProjectname(projectName);project.setIdProjecttype(idProjecttype);project.setIdProjectsource(idProjectsource);project.setIdTeacher(teacher.getId());project.setFilepath(saveFileName);project.setMarchspecialty(marchspecialty.trim());project.setTeachernames(teachernames);project.setSelectcount(0);project.setSelectFlag(0);project.setVerifyprojectFlag(0);project.setReleaseFlag(0);int i = teacherService.insert_project(project);return Msg.success();}//查看自己的课题发布记录@GetMapping("/cxmyProject")public String fun21(ModelMap modelMap, HttpSession httpSession)  {TeacherWithBLOBs teacher = (TeacherWithBLOBs) httpSession.getAttribute("teacherInfo");List<Projecttype> projecttypes = teacherService.select_allProjecttype();List<Projectsource> projectsources = teacherService.select_allProjectsource();List<Specialty> specialties = teacherService.select_allSpecialty(teacher.getIdSection());modelMap.addAttribute("projecttypes", projecttypes);modelMap.addAttribute("projectsources", projectsources);modelMap.addAttribute("specialties", specialties);List<Project> projects = teacherService.selectTeacherProject(teacher.getName());for (int i = 0; i < projects.size(); i++) {if (projects.get(i).getVerifyprojectFlag() == 0) projects.get(i).setProjectZT("未审核");else if (projects.get(i).getVerifyprojectFlag() == 1) projects.get(i).setProjectZT("审核未通过");else projects.get(i).setProjectZT("审核通过");}modelMap.addAttribute("Myproject", projects);return "teacher/graduation/section_xq/index";}// 发布或取消发布已审核通过的课题@PostMapping("/fb_project")@ResponseBodypublic String fun8(Long project_id, String pd,HttpSession httpSession) {int s = Integer.parseInt(pd);teacherService.updateProjectFB(project_id, s);if (s == 0) {teacherService.deleteSelectedAll(project_id);teacherService.updateProjectCount(project_id);}Map<String, String> map = new HashMap<String, String>();map.put("pd", "" + 1);return JSONObject.toJSONString(map);}@PostMapping("del_project")@ResponseBodypublic Msg deleteProject(Long id) {teacherService.deleteProject(id);return Msg.success();}@PostMapping("/updateSubject")@ResponseBodypublic Msg updateProject(Long id, String projectName, Long idProjecttype, Long idProjectsource, String marchspecialty, String teachernames, @RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, HttpSession httpSession) throws IOException {//拼接 teacherNames 字段TeacherWithBLOBs teacher = (TeacherWithBLOBs) request.getSession().getAttribute("teacherInfo");String teacherName = teacher.getName();if (teachernames == null || teachernames.trim().length() == 0) {teachernames = teacherName;} else {teachernames = teacherName + "&" + teachernames;}SubjectWithBLOBs subject = null;//文件大小 为 0 则表示 文件没上传long size = file.getSize();//不更新课题文件情况if (file == null || size == 0) {subject = new SubjectWithBLOBs();subject.setId(id);subject.setProjectname(projectName);subject.setIdProjecttype(idProjecttype);subject.setIdProjectsource(idProjectsource);subject.setMarchspecialty(marchspecialty);subject.setTeachernames(teachernames);//修改后状态置 0subject.setSelectFlag(0);subject.setVerifyprojectFlag(0);subject.setReleaseFlag(0);subjectService.updateSubjectByid(subject);return Msg.success();} else {//获取课题SubjectWithBLOBs subject1 = subjectService.getSubjectByID(id);//获取课题路径String oldPath = subject1.getFilepath();File oldFile = new File(oldPath);//如果文件存在则删除if (oldFile.exists()) {//删除成功if (oldFile.delete()) {} else {return Msg.fail();}}ServletContext servletContext = request.getSession().getServletContext();String uploadFileName = file.getOriginalFilename(); // 获取上传文件的原名uploadFileName = uploadFileName.substring(uploadFileName.lastIndexOf(File.separator) + 1);File path = new File(ResourceUtils.getURL("target").getPath());
//            String savePath = path.getAbsolutePath() + "\\classes\\static\\model\\" + teacher.getId();
//            String saveFileName = savePath + "\\" + uploadFileName;String savePath =path.getAbsolutePath() + File.separator+"classes+"+File.separator+"static"+File.separator+"model"+File.separator + teacher.getId();String saveFileName = savePath +File.separator + uploadFileName;File dirs = new File(savePath);//判断路径是否存在,如果不存在就创建一个if (!dirs.exists()) {dirs.mkdirs();}file.transferTo(new File(dirs, uploadFileName)); // 开始接受文件SubjectWithBLOBs project = subject1;project.setProjectname(projectName);project.setIdProjecttype(idProjecttype);project.setIdProjectsource(idProjectsource);project.setFilepath(saveFileName);project.setMarchspecialty(marchspecialty.trim());project.setTeachernames(teachernames);//修改后状态置 0project.setSelectFlag(0);project.setVerifyprojectFlag(0);project.setReleaseFlag(0);int i = subjectService.updateSubjectByid(project);return Msg.success();}}@GetMapping("/getSubjectById")@ResponseBodypublic Msg getss(Long id) {SubjectWithBLOBs subject = subjectService.getSubjectByID(id);System.out.println(subject);subject.setFilepath(subject.getFilepath().substring(subject.getFilepath().lastIndexOf("\\") + 1));String[] teachers = subject.getTeachernames().split("&");String teacher2 = "";if (teachers.length >= 2) {teacher2 = teachers[teachers.length - 1];}subject.setTeachernames(teacher2);return Msg.success().add("subject", subject);}//查看自己所在教研室的课题发布记录@GetMapping("/cxallProject")public String fun7(ModelMap modelMap, HttpSession httpSession) {Teacher teacher = (Teacher) httpSession.getAttribute("teacherInfo");List<Project> projects = teacherService.selecSectionProject(teacher.getSectionName());for (int i = 0; i < projects.size(); i++) {if (projects.get(i).getVerifyprojectFlag() == 0) projects.get(i).setProjectZT("未审核");else if (projects.get(i).getVerifyprojectFlag() == 1) projects.get(i).setProjectZT("审核未通过");else projects.get(i).setProjectZT("审核通过");}modelMap.addAttribute("allproject", projects);return "teacher/graduation/section_xq/subjectinfoto";}
}

学生管理控制层:

@Authority(roles = {Role.STUDENT})
@Controller
@RequestMapping("/student")
public class StudentController {private static final Logger LOGGER = LoggerFactory.getLogger(StudentController.class);@Autowiredprivate StudentService studentService;@Autowiredprivate HttpServletRequest request;@Autowiredprivate LoginServiceImpl loginService;@AutowiredIndexServiceImpl indexService;@AutowiredAdminService adminService;@AutowiredTopicsService topicsService;//Session过期时间private final Integer SAVE_TIME = 60*60*24;@GetMapping("/login")public String login(){return "student/login";}@PostMapping(value = "/login")@ResponseBodypublic String login(String name, String pwd, Model model, HttpServletResponse response) {name = name.trim();List<Student> student = studentService.selectByName(name);if (student.size() >= 1) {if (student.get(0).getPwd().equals(pwd)) {request.getSession().setAttribute("student",student.get(0));request.getSession().setMaxInactiveInterval(SAVE_TIME);User user = new User();//-1表示为超管user.setId(1L);user.setRole("student");user.setUserName(name);//生成Token 存到 CookieCookie cookie = new Cookie("token", TokenUtil.createToken(user));//该Cookie无法被js读取cookie.setHttpOnly(true);cookie.setPath("/");response.addCookie(cookie);model.addAttribute("student", student.get(0));return "200";}else {return "0";}} else {return "300";}}@RequestMapping("/index")public String index(Model model, HttpSession httpSession) {Student student = (Student) request.getSession().getAttribute("student");Subject project = indexService.indexinfo(student.getId());String str = null;Long flag = null;if (project == null) {model.addAttribute("projectName", "未选课题");model.addAttribute("flag", "未选题");model.addAttribute("teacher", "无");httpSession.removeAttribute("");} else {httpSession.setAttribute("XZproject", project.getProjectname());model.addAttribute("XZproject", project.getProjectname());model.addAttribute("projectName", project.getProjectname());flag = indexService.projectselectedstuflag(student.getId());if (flag == 0L) {str = "未选题";} else if (flag == 1L) {str = "选题待审核";} else if (flag == 2L) {str = "选题未通过";} else if (flag == 3L) {str = "选题通过";}model.addAttribute("flag", str);model.addAttribute("teacher", project.getTeachernames());request.getSession().setAttribute("filePath",project.getFilepath());}//用来判断当前页是否为首页model.addAttribute("path","1");//判断是否修改了个人信息
//        request.getSession().setAttribute("modifyFlag",0);return "student/index";}/*** 查看个人信息*/@RequestMapping("/studentinfo")public String studentinfo(Model model) {Student student = (Student) request.getSession().getAttribute("student");MyClass idclass = indexService.studentinfo(student.getIdClass());model.addAttribute("tclass", idclass);return "student/studentinfo";}/*** 将查看的个人信息放到信息修改页面*/@RequestMapping("/modifyinfo")public String modifyinfo(Model model) {Student student = (Student) request.getSession().getAttribute("student");MyClass idclass = indexService.studentinfo(student.getIdClass());model.addAttribute("tclass", idclass);return "student/modifyinfo";}/*** 修改个人信息* 根据班级(className)修改**//*@RequestMapping(value = "/modifyinfodao", method = RequestMethod.PUT)@ResponseBodypublic String modifyinfodao(Student student, String className, Model model) {Student Tstudent = (Student) request.getSession().getAttribute("student");MyClass Tclass = indexService.selectByclassName(className);int count = -1;student.setIdClass(Tclass.getId());System.out.println("******"+Tstudent.toString());System.out.println("******"+student.toString());if (student.getStunum().equals(Tstudent.getStunum())) {student.setStunum(null);}if (student.getIdClass().equals(Tstudent.getIdClass())) {student.setIdClass(null);}if (student.getName().equals(Tstudent.getName())) {student.setName(null);}if (student.getGender().equals(Tstudent.getGender())) {student.setGender(null);}if (student.getGender() == null && student.getName() == null && student.getIdClass() == null && student.getStunum() == null) {} else {student.setId(Tstudent.getId());count = indexService.updateBymodifyinfo(student);student = indexService.selectByid(Tstudent.getId());model.addAttribute("student", student);}if (count > 0) {request.getSession().setAttribute("student",student);request.getSession().setAttribute("modifyFlag",1);return "200";} else {request.getSession().setAttribute("modifyFlag",0);return "201";}}*//***   跳转页面(修改密码)*/@RequestMapping("/changepsw")public String changepsw() {return "student/changepsw";}/*** 200修改成功* 201对不起密码错误* 202对不起输入框为空* 203新密码不一致* 204修改失败*/@RequestMapping(value = "/changepassword", method = RequestMethod.PUT)@ResponseBodypublic String changepswdao(String oldpassword, String newpassword, String newpassword1) {if(!verifypassword(newpassword)){return "206";}if(!verifypassword(newpassword1)){return "206";}Student student = (Student) request.getSession().getAttribute("student");Student studentdao = loginService.selectByName(student.getUsername());int result;if (newpassword.equals(newpassword1) && !newpassword.equals("") && !newpassword1.equals("")) {if (studentdao.getPwd().equals(oldpassword)) {if(oldpassword.equals(newpassword)){return "205";}else{result = indexService.updatepassword(newpassword, student.getId());if (result > 0) {return "200";}else{return "204";}}} else {return "201";}} else if (newpassword.equals("") && newpassword1.equals("")) {return "202";}return "203";}//密码验证public boolean verifypassword(String password){if(password.length() < 6 || password.length() > 16){return false;}for(int i = 0;i < password.length();i++){if(!(password.charAt(i)>='A' && password.charAt(i)<='Z')){if(!(password.charAt(i)>='a' && password.charAt(i)<='z')){if(!(password.charAt(i)>='0' && password.charAt(i)<='9')){return false;}}}}return true;}//退出//清除Session数据@RequestMapping("/exit")public String exit(HttpServletResponse response,HttpSession httpSession) {
//        httpSession.setAttribute("XZproject", null);
//       清除SessionEnumeration em = request.getSession().getAttributeNames();while(em.hasMoreElements()){request.getSession().removeAttribute(em.nextElement().toString());}//将Cookie 中的token 置空Cookie cookie = new Cookie("token", null);cookie.setPath("/");response.addCookie(cookie);return "student/login";}/*** 查看班级选报信息*/@RequestMapping("/classinfo")public String classinfo(Model model,HttpSession httpSession) {Student student = (Student) request.getSession().getAttribute("student");removeSession();List<Static_student> list =  adminService.select_student(null, null, student.getIdClass(), null, null);System.out.println(list);model.addAttribute("list", list);return "student/classinfo";}/*** 查看课题*/@RequestMapping("/topics")public String Topics(Model model,HttpSession httpSession) {Student student = (Student) request.getSession().getAttribute("student");removeSession();List<topicsinfo> topicsinfolist = topicsService.topics(student.getIdClass());System.out.println(topicsinfolist);model.addAttribute("topicsinfolist", topicsinfolist);return "student/topicsinfo";}/*** 课题具体信息*/@RequestMapping("/topicsto")public String Topicsto(Long project_id,int selectFlag,String projectName, Model model, HttpSession httpSession) {List<topicsto> topicstos = topicsService.topicsinfo(project_id);Student student = (Student) request.getSession().getAttribute("student");Long flag = topicsService.state(student);Long flagto = topicsService.flag(project_id);if (flagto != 0) {flag = 3L;}model.addAttribute("selectFlag",selectFlag);model.addAttribute("flag", flag);model.addAttribute("topicstos", topicstos);model.addAttribute("projectName", projectName);model.addAttribute("project_id", project_id);model.addAttribute("XZproject", httpSession.getAttribute("XZproject"));return "student/topicsinfoto";}/*** 选报课题*/@AutowiredSubjectselectedMapper subjectselectedMapper;@RequestMapping("/enroll")@ResponseBodypublic String enroll(Long project_id, HttpSession httpSession) {String projectName = topicsService.selectprojectname(project_id);Student student = (Student) request.getSession().getAttribute("student");List<Subjectselected> subjectselected = subjectselectedMapper.selectBystudentid(student.getId());if(subjectselected.size() == 0){studentService.updateselectnumAdd(projectName);topicsService.insertproject(projectName, student.getId());httpSession.setAttribute("XZproject", projectName);return "200";}else {return "201";}}/*** 取消选报*/@RequestMapping("/cancel")@ResponseBody()public String cancel(Long project_id, Model model, HttpSession httpSession) {System.out.println(1);String projectName = topicsService.selectprojectname(project_id);Student student = (Student) request.getSession().getAttribute("student");List<Subjectselected> subjectselected = subjectselectedMapper.selectBystudentid(student.getId());if (subjectselected != null && subjectselected.size() != 0 && subjectselected.get(0).getStuselectFlag() != 3&& project_id.equals(subjectselected.get(0).getIdProject())) {topicsService.deleteprojectselectedid(student.getId());httpSession.removeAttribute("XZproject");model.addAttribute("XZproject", null);httpSession.setAttribute("XZproject", null);studentService.updateselectnumReduce(projectName);return "200";} else {return "203";}}/*** 清除session中存的项目名*/public void removeSession(){Student student = (Student) request.getSession().getAttribute("student");Subject project = indexService.indexinfo(student.getId());if(project==null){request.getSession().removeAttribute("XZproject");}}}

登录控制层:

@Controller
public class LoginController {private static final Logger LOGGER = LoggerFactory.getLogger(LoginController.class);@AutowiredAdminService adminService;@GetMapping("/cs")public String cs() {return "cs";}@GetMapping("/login")public String login() {return "login";}@PostMapping("/login")@ResponseBodypublic Msg login(String name, String pwd, HttpSession httpSession) {name = name.trim();
//        LOGGER.info("{}--{}",name,pwd);return adminService.login(name, pwd, httpSession);}
}

源码获取:博客首页 "资源" 里下载!

Java项目:教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)相关推荐

  1. 基于javaweb+mysql的教务管理系统(java+JSP+Spring+SpringBoot+layui+maven)

    一.项目简述 功能包括: 三角色教师 管理员,学生教务管理系统,包括院系管理,课题综合管理,信息管理,以及差旅管理,学生选题等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + ...

  2. 基于javaweb+mysql的教务管理系统(java+jsp+spring+springboot+layui)

    基于javaweb+mysql的教务管理系统(java+jsp+spring+springboot+layui) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/mye ...

  3. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  4. Java项目:宿舍管理系统(java+jsp+SSM+Spring+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能:包括学生管理,班级管理,宿舍管理,人员信息维 护.维修登记,卫生管理,访客管理等等. 二.项目运行 环境配置: Jdk1 ...

  5. Java项目:养老院管理系统(java+SpringBoot+thymeleaf+HTML+Js+mysql)

    源码获取:博客首页 "资源" 里下载! 项目介绍 基于springboot的养老院管理系统,本系统为后台管理系统,分为三个角色,分别是超级管理员.管理员.用户. 超级管理员.管理员 ...

  6. Java项目:图书管理系统(java+JSP+layui+bootstrap+Servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 使用jsp+servlet.layui.mysql完成的图书馆系统,包含用户图书借阅.图书管理员.系统管理员界面,功能齐全. ...

  7. Java项目:养老院管理系统(java+Spring Boot + SpringMVC + MyBatis+HTML+CSS+JavaScrip+ Layui+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 关注公众号,带你学Java 项目介绍 : Spring Boot + SpringMVC + MyBatis+ Mysql + druid ...

  8. Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)

    源码获取:博客首页 "资源" 里下载! 项目介绍: 基于jsp+mysql+Spring+mybatis的SSM健身房管理系统 运行环境: jdk 1.8 IDE环境: Eclip ...

  9. Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 房屋租赁管理系统是一款方便快捷,易操作的租房和各种物业收费的管理系统,该系统官网包含着用户和管理员分类登录,减少了 ...

最新文章

  1. jQuery-Ajax
  2. 第一阶段:前端开发_Mysql——多表查询
  3. 裸板烧写 bootloader
  4. webpack初学笔记 之 小案例篇demo1
  5. mysql 服务无法启动 没有报告任何错误_My SQL学习之路(一)
  6. kali mysql停止服务器_从零开始:手把手教你黑客入门攻破服务器并获取ROOT权限...
  7. word2vec词向量训练及中文文本类似度计算
  8. pandas 使用把dataframe变为series
  9. 全新的移动界面设计素材
  10. python中∧_python中xor是什么意思
  11. java:求解二元一次方程(小程序)
  12. iSlide系列教程视频简介——PPT的简化神器
  13. win11关闭微软拼音输入法中英文切换
  14. 最优服务次序问题 水 NOJ1254
  15. D - New Year Snowmen(优先队列+贪心)
  16. Mac突然中文输入法框不见了??
  17. 淘宝放大镜插件(vue-piczoom)
  18. Ubuntu下图片转pdf和pdf合并
  19. html制作不均匀表格,HTML自定义JUnit报告不均匀表格对齐
  20. requests基操/爬取调用百度翻译

热门文章

  1. python全栈开发基础【第十七篇】面向对象反射和内置方法
  2. SVN版本控制系统使用
  3. Oracle数据库一些操作信息
  4. UIImage 各种处理(分类)
  5. Cacti安装详细步骤
  6. Log控制台打印设置
  7. FWFT FIFO读操作注意
  8. Xt800、DEFY自带号码归属地更新包,更新至2013.4【数据总数278360条】
  9. git获取指定release版本代码
  10. PHP也玩并发,巧用curl 并发减少后端访问时间