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

一、项目简述

功能包括: 管理员可以增删改查教材、教材商、入库教材、用户(用 户包括学生和教师)可以对教材商、教材进行。xcel的导入 导出操作。教U阿以领取入库的教材,可以退还教材。学 生只能在对应的教师那里领取教材,并且可以退还教材、 查询自己已经领取的教材。并且对已领教材付款等等。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + 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.ADMIN, Role.SADMIN})
@Controller
@RequestMapping("/admin")
public class AdminController {private static final Logger LOGGER = LoggerFactory.getLogger(AdminController.class);@AutowiredAdminService adminService;@AutowiredAdminMapper adminMapper;@AutowiredCollegeService collegeService;@AutowiredSectionService sectionService;@AutowiredSpecialtyService specialtyService;@AutowiredClassService classService;@AutowiredTeacherService teacherService;@AutowiredStudentService studentService;@AutowiredSubjectService subjectService;@AutowiredExcelService excelService;@AutowiredSubjectRelationStudentMapper subjectRelationStudentMapper;@AutowiredHttpServletRequest request;@AutowiredHttpServletResponse response;@AutowiredHttpSession session;@ModelAttribute("id_institute")public long getRoleInfo() {User user = (User) request.getAttribute("user");
//        LOGGER.info("USER:{}",user);if (user != null) {if (user.getRole().equals("admin")) {Institute institute = collegeService.selectCollege(adminMapper.selectByPrimaryKey(user.getId()).getIdInstitute());return institute.getId();}if (user.getRole().equals("sadmin")) {return -1;}return 0;} else {return 0;}}//   admin index page   子管首页@GetMapping(value = {"", "/index"})public String index() {User user = (User) request.getAttribute("user");
//        LOGGER.info("index user:{}",user);//这部分还是用了session存储部分信息 后续可能修改//根据 user的id 判断 渲染页面if (user.getId() == -1) {LOGGER.info("超级管理员登录");session.setAttribute("instituteName", "超级管理员");session.setAttribute("ROLE", "sadmin");session.setAttribute("username", user.getUserName());return "admin/public-admin-index";}Institute institute = collegeService.selectCollege(adminMapper.selectByPrimaryKey(user.getId()).getIdInstitute());System.out.println(institute.getInstituteName());session.setAttribute("instituteName", institute.getInstituteName());session.setAttribute("ROLE", "admin");session.setAttribute("username", user.getUserName());return "admin/public-admin-index";}//    exit      退出登录@GetMapping("/exit")public String exit(HttpSession httpSession) {//将Cookie 中的token 置空Cookie cookie = new Cookie("token", null);cookie.setPath("/");response.addCookie(cookie);return "login";}
// login 在单独Controller//    updatePwd     更新密码@GetMapping("/updatePwd")public String updatePwd() {return "admin/updatePwd";}@PostMapping("/updatePwd")@ResponseBodypublic Msg updatePwd(@RequestBody Admin admin,HttpSession httpSession) {User user = (User) request.getAttribute("user");adminService.updatePwdByUserName(user.getUserName(),admin.getPwd());return Msg.success();}//    教研室@GetMapping("/SectionManagement")public String section() {return "admin/Department/SectionManagement";}@GetMapping("/sections")@ResponseBodypublic Msg getSections(@ModelAttribute("id_institute") long id_institute) {return Msg.success().add("sections", sectionService.getSections(id_institute));}@DeleteMapping("/section")@ResponseBodypublic Msg delSection(@RequestBody Section section) {return Msg.sqlChange((int) sectionService.delSection(section));}@PutMapping("/section")@ResponseBodypublic Msg updateSection(@RequestBody @Validated Section section, @ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) sectionService.updateSection(section, section.getSectionName(), id_institute));}@PostMapping("/section")@ResponseBodypublic Msg addSection(@RequestBody @Validated Section section, @ModelAttribute("id_institute") long id_institute) {return Msg.sqlChange((int) sectionService.addSection(section, id_institute));}//    专业方向@GetMapping("/SpecialtyManagement")public String specialty() {return "admin/Department/SpecialtyManagement";}@GetMapping("/specialtys")@ResponseBodypublic Msg getSpecialtys(@RequestParam Integer offset,@RequestParam(required = false) Long sectionId,@RequestParam(required = false) String keyWord,@ModelAttribute("id_institute") long id_institute) {long total = specialtyService.getSpecialtyCount(offset, keyWord, sectionId, id_institute);return Msg.success().add("specialtys", specialtyService.getSpecialtys(offset, keyWord, sectionId, id_institute)).add("total", total);}@ResponseBody@DeleteMapping("/specialty")public Msg delSpecialty(@RequestBody Specialty specialty,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) specialtyService.delSpecialty(specialty, id_institute));}@ResponseBody@PutMapping("/specialty")public Msg putSpecialty(@RequestBody @Validated({Update.class}) Specialty specialty,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) specialtyService.putSpecialty(specialty, id_institute));}@ResponseBody@PostMapping("/specialty")public Msg postSpecialty(@RequestBody @Validated({Add.class}) Specialty specialty,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) specialtyService.postSpecialty(specialty, id_institute));}//    班级@GetMapping("/ClassManagement")public String Class() {return "admin/Department/ClassManagement";
//    //获取管理员的 学院id
//    public static Long getIdInstitute(ModelMap modelMap) {
//        Subadmin subadmin = (Subadmin) modelMap.get("admin");
//        return subadmin.getIdInstitute();
//    }}@ResponseBody@GetMapping("/classes")public Msg getClasses(@RequestParam("offset") Integer offset,@RequestParam(required = false) Long specialtyId,@RequestParam(required = false) String keyWord,@ModelAttribute("id_institute") long id_institute) {long total = classService.getClassesCount(offset, keyWord, specialtyId, id_institute);return Msg.success().add("classes", classService.getClasses(offset, keyWord, specialtyId, id_institute)).add("total", total);}@ResponseBody@DeleteMapping("/class")public Msg delClass(@RequestBody MyClass myClass,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) classService.delClass(myClass, id_institute));}@ResponseBody@PutMapping("/class")public Msg putClass(@RequestBody @Validated({One.class}) MyClass myClass,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) classService.putClass(myClass, id_institute));}@ResponseBody@PostMapping("/class")public Msg postClass(@RequestBody @Validated({One.class}) MyClass myClass,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) classService.postClass(myClass, id_institute));}//    课题综合管理@GetMapping("/SourceManagement")public String source() {return "admin/Subject/SourceManagement";}@ResponseBody@GetMapping("/sources")public Msg getSources() {return Msg.success().add("sources", subjectService.selectSubjectSources());}@ResponseBody@PostMapping("/source")public Msg addSource(@RequestBody @Validated SubjectSource source) throws MyException {return Msg.sqlChange((int) subjectService.insertSubjectSource(source.getSourcename()));}@ResponseBody@DeleteMapping("/source")public Msg delSource(@RequestBody SubjectSource source) throws MyException {return Msg.sqlChange(subjectService.delSubjectSource(source.getId()));}@ResponseBody@PutMapping("/source")public Msg updateSource(@RequestBody @Validated SubjectSource source) {return Msg.sqlChange(subjectService.updateSubjectSource(source));}//课题类型@GetMapping("/TypeManagement")public String subjectType() {return "admin/Subject/TypeManagement";}@ResponseBody@GetMapping("/sujecttypes")public Msg getType() {return Msg.success().add("sujecttypes", subjectService.selectSubjectTypes());}@ResponseBody@PostMapping("/sujecttype")public Msg addType(@RequestBody @Validated SubjectType type) throws MyException {return Msg.sqlChange((int) subjectService.insertSubjectType(type.getTypename()));}@ResponseBody@DeleteMapping("/sujecttype")public Msg delType(@RequestBody SubjectType type) throws MyException {return Msg.sqlChange(subjectService.delSubjectType(type.getId()));}@ResponseBody@PutMapping("/sujecttype")public Msg updateType(@RequestBody @Validated SubjectType type) {return Msg.sqlChange(subjectService.updateSubjectType(type));}//课题管理@GetMapping("/SubjectManagement")public String Subject() {return "admin/Subject/SubjectManagement";}@ResponseBody@GetMapping("/subjects")public Msg getSubjects(@RequestParam Integer offset,@RequestParam(required = false) Long sectionId,@RequestParam(required = false) String keyWord,@ModelAttribute("id_institute") long id_institute) {long total = subjectService.selectSubjectsCount(offset, keyWord, sectionId, id_institute);return Msg.success().add("subjects", subjectService.selectSubjects(offset, keyWord, sectionId, id_institute)).add("total", total);}@ResponseBody@PostMapping("/subject")public Msg addSubject(@RequestBody @Validated(Add.class) SubjectWithBLOBs subject,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) subjectService.insertSubject(subject, id_institute));}@ResponseBody@DeleteMapping("/subject")public Msg delSubject(@RequestBody SubjectWithBLOBs subject,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange(subjectService.delSubject(subject, id_institute));}@ResponseBody@PutMapping("/subject")public Msg updateSubject(@RequestBody @Validated(Update.class) SubjectWithBLOBs subject,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange(subjectService.updateSuject(subject, id_institute));}//get学生选题的状态@GetMapping("/SRS")@ResponseBodypublic Msg getSelectSubjected(@ModelAttribute("id_institute") long id_institute) {System.out.println(subjectService.getSelectSubjected(null, id_institute));return Msg.success().add("SRS", subjectService.getSelectSubjected(null, id_institute));}//get 选某个课题的所有学生@GetMapping("/studentsBySubject")@ResponseBodypublic Msg getStuentBySubject(@RequestParam("id") Long id,@ModelAttribute("id_institute") long id_institute) {return subjectService.getStuentBySubject(id, id_institute);}//    教师管理 增删改查@GetMapping("/TeacherManagement")public String teacher() {return "admin/BasicInfo/TeacherManagement";}@ResponseBody@GetMapping("/teachers")public Msg getTeachers(@RequestParam Integer offset,@RequestParam(required = false) Long sectionId,@RequestParam(required = false) String keyWord,@ModelAttribute("id_institute") long id_institute) {long total = teacherService.selectTeachersCount(offset, keyWord, sectionId, id_institute);return Msg.success().add("teachers", teacherService.selectTeachers(offset, keyWord, sectionId, id_institute)).add("total", total);}@ResponseBody@DeleteMapping("/teacher")public Msg delTeacher(@RequestBody TeacherWithBLOBs teacher,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) teacherService.delTeacher(teacher, id_institute));}@ResponseBody@PostMapping("/teacher")public Msg addTeacher(@RequestBody @Validated(Add.class) TeacherWithBLOBs teacher,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) teacherService.addTeacher(teacher, id_institute));}@ResponseBody@PutMapping("/teacher")public Msg updateTeacher(@RequestBody @Validated({Update.class}) TeacherWithBLOBs teacher,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) teacherService.updateTeacher(teacher, id_institute));}//教师批量教师导入@PostMapping("/TeacherExcel")@ResponseBodypublic Msg addTeacherExcel(@RequestParam("excel") MultipartFile excelFile,@ModelAttribute("id_institute") long id_institute) throws MyException, IOException {return excelService.teacherExcelImport(excelFile, id_institute);}//教师批量导入模板@GetMapping("/TeacherExcelDemo")public void getTeacherExcelDemo(HttpServletResponse response) throws IOException {excelService.teacherExcelDownload(response);}//    学生管理@GetMapping("/StudentManagement")public String student() {return "admin/BasicInfo/StudentManagement";}@ResponseBody@GetMapping("/students")public Msg getStudents(@RequestParam Integer offset,@RequestParam(required = false) Long classId,@RequestParam(required = false) Long specialtyId,@RequestParam(required = false) String keyWord,@ModelAttribute("id_institute") long id_institute) throws MyException {long total = studentService.selectStudentsCount(offset, keyWord, classId, specialtyId, id_institute);return Msg.success().add("students", studentService.selectStudents(offset, keyWord, classId, specialtyId, id_institute)).add("total", total);}@ResponseBody@DeleteMapping("/student")public Msg delStudent(@RequestBody StudentWithBLOBs student,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) studentService.delStudent(student, id_institute));}@ResponseBody@PostMapping("/student")public Msg addStudent(@RequestBody @Validated(Add.class) StudentWithBLOBs student,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) studentService.addStudent(student, id_institute));}@ResponseBody@PutMapping("/student")public Msg updateStudent(@RequestBody @Validated({Update.class}) StudentWithBLOBs student,@ModelAttribute("id_institute") long id_institute) throws MyException {return Msg.sqlChange((int) studentService.updateStudent(student, id_institute));}//    批量导入模板@GetMapping("/StudentExcelDemo")public void getStudentExcelDemo(HttpServletResponse response) throws IOException {excelService.studentExcelDownload(response);}//批量学生导入@PostMapping("/StudentExcel")@ResponseBodypublic Msg addStudentExcel(@RequestParam("excel") MultipartFile excelFile,@ModelAttribute("id_institute") long id_institute) throws MyException, IOException {return excelService.studentExcelImport(excelFile, id_institute);}//    生成一览表//课题一览表@GetMapping("/SubjectExcel")public void getSubjectExcel(HttpServletResponse response,HttpServletRequest request,@ModelAttribute("id_institute") long id_institute) throws IOException {excelService.subjectExcelDownload(response, request, id_institute);}}

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

Java项目:教材管理系统(java+SSM+jsp+mysql+maven)相关推荐

  1. 基于javaweb+jsp的小区物业管理系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的小区物业管理系统(java+SSM+jsp+mysql+maven) 一.项目简述 功能包括: 分为管理员及普通业主角色,业主信息,社区房屋,维护 管理,社区车辆,社区投诉 ...

  2. 基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven) 主要技术:java springmvc mybatis mysql tomcat js jquery js ...

  3. 基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven) 一.项目简述 功能包括: 在线点餐,评论,购物车,下单,支付,管理员,店家多 商家管理,后台评论管理,订单 ...

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

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

  5. Java项目:养老院管理系统(java+SSM+BootStrap+jsp+Maven+mysql)

    源码获取:博客首页 "资源" 里下载! 养老院管理系统 该系统主要功能室养老院系统,采用mvc三层架构 1.采用技术书spring.springmvc.mybatis.maven等 ...

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

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

  7. Java项目:汽车出租管理系统(java+SSM+JSP+jquery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目包含管理员.用户.技术人员.工作人员等四种角色: 管理员角色包含以下功能: 管理员登录,员工管理,车辆管理,公告管理,图 ...

  8. Java项目:酒店管理系统(java+SSM+Maven+LayUI+mysql)

    源码获取:博客首页 "资源" 里下载! 酒店管理系统-温情小筑后台管理系统 系统概要 项目主要功能包括: 住客管理:住客入住.住客列表: 房间管理:房间列表.添加房间.修改房间状态 ...

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

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

最新文章

  1. Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found (required by /usr/anaconda3/bin/)
  2. FBL3N/FBL3H/FAGLL03/FAGLL03H的区别
  3. 生活随笔[2005-06-06]
  4. 台式电脑如何设置开机密码_网络安全小黑板|如何设置开机密码
  5. SQL Server 性能调优(方法论)
  6. UML类图画法及类之间几种关系
  7. 7-20 打印九九口诀表 (15 分)
  8. Linux创始人Linus Torvalds怒怼Intel:正视问题而不是搞公关才是正事
  9. 09 动态数组和数据
  10. 【51Nod1773】A国的贸易 解题报告
  11. python基础===字符串的制表,换行基础操作
  12. 误删除了Oracle的dbf文件后的解决方法
  13. 帆软报表帮助文档_给大家分享一款值得推荐的免费好用的web报表插件
  14. JS自动弹出广告窗口
  15. android转发短信到邮箱,利用短信通知的方式在Tasker中实现收到Android手机短信自动转发到邮箱...
  16. Verilog设计遇到了Congestion问题怎么办?
  17. Java中Date转Long 和Long转Date
  18. 001-STM32+BC26/260Y基本控制篇(自建物联网平台)--基础知识-MQTT协议
  19. 帆软报表列表_FineReport报表软件数据填报功能详述
  20. ELF文件格式;ELF文件是什么,里面包含什么内容

热门文章

  1. C++ 和C 语言混合代码导致的问题
  2. Docker将容器制作成镜像并提交到远程仓库
  3. NOIP2018TG 初赛复习
  4. hdu 2199 Can you solve this equation? 二分
  5. NPOI导Excel样式设置
  6. sysbench的安装和做性能测试
  7. linux 安装输入法
  8. TOP语句与Order By语句
  9. 【C++】【六】约瑟夫问题
  10. google breakpad native crash分析工具