java+SpringBoot设计实现评教系统

作者:qq_1334611189 时间:2023-02-05 13:12:18 

主要功能

共有三个角色:管理员、教师、学生。

管理员功能有:学生管理、教师管理、评教管理、指标管理、课程管理等。

教师功能有:学生管理、指标管理、课程管理。

学生功能有:评教管理。

运行环境

jdk1.8、mysql5.X、maven3.5\3.6、idea

效果图展示

java+SpringBoot设计实现评教系统

java+SpringBoot设计实现评教系统

java+SpringBoot设计实现评教系统

java+SpringBoot设计实现评教系统

java+SpringBoot设计实现评教系统

java+SpringBoot设计实现评教系统

主要代码

教师管理控制层


@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.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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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);

@Autowired
   HttpServletRequest request;

@PostMapping("/wordload")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public Msg saveBusiness(
           @RequestBody BusinessDTO businessDTO
   ) {
       Teacher teacher = (Teacher) request.getSession().getAttribute("teacherInfo");
       return Msg.sqlChange((int) teacherService.saveBusiness(businessDTO, teacher));
   }

//年度述职
   @PostMapping("/upload_year_debriefing")
   @ResponseBody
   public 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")
   @ResponseBody
   public Msg fun11() {
       List<DebriefingYear> list = teacherService.selectDebriefingByYear();

//         把年份排序
       Collections.sort(list, new Comparator<DebriefingYear>() {
           @Override
           public int compare(DebriefingYear o1, DebriefingYear o2) {
               return (int) (o2.getYear() - o1.getYear());
           }
       });
       return Msg.success().add("year", list);
   }

//查询指定年份的年度述职信息
   @GetMapping("/select_debriefing_year_info")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public Msg deleteProject(Long id) {
       teacherService.deleteProject(id);
       return Msg.success();
   }

@PostMapping("/updateSubject")
   @ResponseBody
   public 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);

//修改后状态置 0
           subject.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);
           //修改后状态置 0
           project.setSelectFlag(0);
           project.setVerifyprojectFlag(0);
           project.setReleaseFlag(0);

int i = subjectService.updateSubjectByid(project);
           return Msg.success();

}
   }

@GetMapping("/getSubjectById")
   @ResponseBody
   public 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";
   }
}

登录控制层



@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.ADMIN, Role.SADMIN})
@Controller
@RequestMapping("/admin")
public class AdminController {

private static final Logger LOGGER = LoggerFactory.getLogger(AdminController.class);

@Autowired
   AdminService adminService;

@Autowired
   AdminMapper adminMapper;

@Autowired
   CollegeService collegeService;

@Autowired
   SectionService sectionService;

@Autowired
   SpecialtyService specialtyService;

@Autowired
   ClassService classService;

@Autowired
   TeacherService teacherService;

@Autowired
   StudentService studentService;

@Autowired
   SubjectService subjectService;

@Autowired
   ExcelService excelService;

@Autowired
   SubjectRelationStudentMapper subjectRelationStudentMapper;

@Autowired
   HttpServletRequest request;

@Autowired
   HttpServletResponse response;

@Autowired
   HttpSession 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public Msg getSections(@ModelAttribute("id_institute") long id_institute) {
       return Msg.success().add("sections", sectionService.getSections(id_institute));
   }

@DeleteMapping("/section")
   @ResponseBody
   public Msg delSection(@RequestBody Section section) {
       return Msg.sqlChange((int) sectionService.delSection(section));
   }

@PutMapping("/section")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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")
   @ResponseBody
   public 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);
   }

}

来源:https://blog.csdn.net/m0_59687645/article/details/122124698

标签:java,SpringBoot,评教,系统
0
投稿

猜你喜欢

  • 两个surfaceView实现切换效果

    2021-10-04 15:18:52
  • C语言实现模拟银行系统

    2022-01-17 08:40:27
  • Java Swing实现JTable检测单元格数据变更事件的方法示例

    2022-10-16 19:49:29
  • 全面理解java中的异常处理机制

    2023-10-26 04:08:20
  • java实现ArrayList根据存储对象排序功能示例

    2022-01-24 01:06:05
  • Android ViewPager实现Banner循环播放

    2022-07-16 06:24:03
  • IDEA Ui设计器JFormDesigner 永久激活插件+注册机(亲测一直在用)

    2022-10-23 18:44:46
  • Android常用的图片加载库

    2021-06-04 18:56:30
  • Java实现HDFS文件上传下载

    2022-05-18 15:08:06
  • 详解Springboot自定义异常处理

    2021-11-04 17:15:12
  • Eclipse快速添加get、set方法的操作技巧

    2022-11-20 04:11:59
  • java 教你如何给你的头像添加一个好看的国旗

    2021-11-11 02:53:25
  • Java如何实现Word文档分栏效果

    2023-09-11 00:28:53
  • Android 手写热修复dex实例详解

    2022-11-06 08:01:40
  • 通过实例解析Socket套接字通信原理

    2023-11-02 20:17:35
  • C++ Opencv实现录制九宫格视频

    2023-08-16 04:11:28
  • SpringCloud Config统一配置中心问题分析解决与客户端动态刷新实现

    2023-08-17 17:19:48
  • Java调用linux shell脚本的方法

    2022-03-25 23:09:46
  • MyBatis自定义类型转换器实现加解密

    2023-09-10 20:18:00
  • C#巧用DateTime预设可选的日期范围(如本年度、本季度、本月等)

    2022-09-19 11:06:41
  • asp之家 软件编程 m.aspxhome.com