基于springboot的教师科研信息管理系统(含ssm版本)

简介: 该系统创作于2022年3月,分为两个版本,springboot和ssm整合,数据库设计详细。数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:教师、科研、论文管理、科研管理等。

项目介绍:



该系统创作于2022年3月,分为两个版本,springboot和ssm整合,数据库设计详细。数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:教师、科研、论文管理、科研管理等。


项目功能:



开发完成一个涉及教师基本信息、学习经历、承担的科研项目以及论文、著作等成果的管理信息系统,满足对项目、成果信息的查询、汇总等需求。系统分为教师和管理员两个角色
教师
登录注册,修改密码,退出系统
查看修改个人基本信息
增删改自己的学习经历,科研项目和论文、著作成果并提交管理员进行审核
管理员
人才管理:显示所有教师的信息,统计教师的人数,增删改查教师信息
科研管理:显示所有的科研项目以及论文、著作等成果信息,并进行统计,增删改查信息
科研审核:审核通过,审核不通过;审核不通过,退回教师那,教师可以进行编辑修改,重新提交审核
可以看到所有教师的科研项目和论文、著作成果并进行查询


模型:



9d16bbbb646740a884c622e129f1c2e9.png


数据库表结构文档:



1e847ca66cb94818be5fe60645649ad9.png


系统包含技术:



后端:SSM/springboot

前端:layui,js,css等,html页面

开发工具:idea

数据库:mysql 5.7

JDK版本:jdk1.8

tomcat版本:tomcat8


部分截图说明:



下面是登录


6f4078756f5e4b87a293a8a922184897.png


管理员-首页


104206bc2271444fb9993c826f254ada.png


管理员-人才管理


693fecc8139c4d8aa6ccdbb21ff80a7e.png


管理员-科研项目管理


cc02a3bf21f44a4bb19f07c0713f157b.png


管理员-著作成果管理


7dea7dc5cf41462e998f4b2eb711ca29.png


管理员-论文管理


40f3153546c74789881864e271e13ea2.png


教师-论文维护


98714447284c4e39b260453162c1dff2.png


教师-新增科研项目


49733216781947caa1fe5a3587700f2a.png


部分代码:



拦截器


@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        if(session.getAttribute("userInfo") != null){
            return true;
        }
        // 不符合条件的给出提示信息,并转发到主页面
        request.setAttribute("msg", "您还没有登录,请先登录!");
        request.getRequestDispatcher("/logout").forward(request, response);
        //返回true通过,返回false拦截
        return false;
    }


登录


  /**
   * 进入首页
   */
  @RequestMapping(value = "/index")
  public String index(HttpSession session) {
    String type = (String)session.getAttribute("type");
    if(type==null || type.equals("")){
      return "login";
    }
    if(type.equals("01")){
      Admin admin = (Admin)session.getAttribute("userInfo");
      if(admin==null){
        return "login";
      }
    }
    if(type.equals("02")){
      Teacher teacher = (Teacher)session.getAttribute("userInfo");
      if(teacher==null){
        return "login";
      }
    }
    return "index";
  }
  /**
   * 进入个人中心
   */
  @RequestMapping(value = "/profile")
  public String profile() {
    return "profile";
  }
  /**
   * 登录
   * 将提交数据(username,password)写入Admin对象
   */
  @RequestMapping(value = "/login")
  @ResponseBody
  public String login(String username, String password, String type, Model model, HttpSession session) {
    Map mp = new HashMap();
    mp.put("username",username);
    mp.put("password",password);
    if(username.equals("") || password.equals("")){
      return "202";
    }
    if(type.equals("01")){
      List<Admin> admins = adminService.queryFilter(mp);
      if(admins!=null && admins.size()==1){
        session.setAttribute("userInfo", admins.get(0));
        session.setAttribute("type", "01");
      }else{
        return "201";
      }
    }else{
      List<Teacher> teachers = teacherService.queryFilter(mp);
      if(teachers!=null && teachers.size()==1){
        session.setAttribute("userInfo", teachers.get(0));
        session.setAttribute("type", "02");
      }else{
        return "201";
      }
    }
    return "200";
  }


论文操作


/**进入列表页面*/
    @GetMapping("/paper")
    public String userIframe(Model model, HttpServletRequest request){
        HttpSession session = request.getSession();
        String type = (String)session.getAttribute("type");
        if(type.equals("02")){
            Teacher teacher = (Teacher)session.getAttribute("userInfo");
            Map mps = new HashMap();
            mps.put("id",teacher.getId());
            List<Teacher> teacherList = teacherService.queryFilter(mps);
            model.addAttribute("teacherList",teacherList);
        }else{
            List<Teacher> teacherList = teacherService.findAll();
            model.addAttribute("teacherList",teacherList);
        }
        return "PaperList";
    }
    /**列表数据*/
    @GetMapping("/list")
    @ResponseBody
    public PageResultVo findPaper(Paper paper, Integer limit, Integer page, HttpServletRequest request){
        HttpSession session = request.getSession();
        String type = (String)session.getAttribute("type");
        if(type.equals("02")){
            Teacher teacher = (Teacher)session.getAttribute("userInfo");
            paper.setTid(String.valueOf(teacher.getId()));
        }
        PageHelper.startPage(page,limit);
        List<Paper> paperList = paperService.selectByCondition(paper);
        PageInfo<Paper> pages = new PageInfo<>(paperList);
        return JsonData.table(paperList,pages.getTotal());
    }
    /**
     * 文件上传
     */
    @RequestMapping(value = "/uploadFile")
    @ResponseBody
    public JSONObject uploadFile(HttpServletRequest request) throws IOException {
        JSONObject jsonObject = new JSONObject();
        try {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            //使用UUID给图片重命名,并去掉四个“-”
            // 获取上传的文件
            MultipartFile multiFile = multipartRequest.getFile("file");
            SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
            String name = sf.format(new Date());
            //获取文件的扩展名
            String ext = FilenameUtils.getExtension(multiFile.getOriginalFilename());
            //以绝对路径保存重名命后的图片
            multiFile.transferTo(new File(fileUpload+"/"+name + "." + ext));
            jsonObject.put("code",name + "." + ext);
            return jsonObject;
        } catch (Exception e) {
            e.printStackTrace();
            jsonObject.put("code", 0);
            return jsonObject;
        }
    }



以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~


相关文章
|
11月前
|
存储 Java 关系型数据库
ssm151大学生就业信息管理系统+jsp(文档+源码)_kaic
大学生就业信息管理系统基于现代经济快速发展和信息化技术的升级,旨在通过软件工具提升数据管理效率。该系统利用SSM框架、Java语言和Mysql数据库开发,实现数据的科学化、规范化与自动化管理。系统界面简洁美观,功能模块布局合理,提供高效的数据处理能力,并注重数据安全。通过此系统,管理者能够快速处理大量信息,提高工作效率,同时确保数据的安全性和可靠性。关键词:大学生就业信息管理系统;SSM框架;Mysql;自动化。
|
12月前
|
Java 关系型数据库 MySQL
ssm027学校运动会信息管理系统(文档+源码)_kaic
本文介绍了基于B/S结构的学校运动会信息管理系统开发过程。该系统采用JSP技术和MySQL数据库,确保了系统的安全性和稳定性。系统界面友好、操作简便,涵盖系统概述、分析、设计、数据库设计和测试等环节,实现了学校运动会信息管理的重要功能。经过测试,系统运行稳定,操作便捷,具备全面的功能、良好的可扩展性和维护性,有效提升了运动会信息管理的效率和准确性。关键词:学校运动会信息管理;B/S结构;JSP技术;MYSQL数据库。
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
957 37
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的医院门诊信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的医院门诊信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
144 1
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的高校教师工作量管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的高校教师工作量管理系统附带文章源码部署视频讲解等
133 1
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的高校教师工作量管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的高校教师工作量管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
307 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的党建信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的党建信息管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
182 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的旅游民宿信息管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的旅游民宿信息管理系统附带文章源码部署视频讲解等
261 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的旅游信息管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的旅游信息管理系统附带文章源码部署视频讲解等
173 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的高校科研信息管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的高校科研信息管理系统附带文章源码部署视频讲解等
134 0

热门文章

最新文章