博主主页猫头鹰源码

博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

项目介绍:

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

项目功能:

开发完成一个涉及教师基本信息、学习经历、承担的科研项目以及论文、著作等成果的管理信息系统,满足对项目、成果信息的查询、汇总等需求。系统分为教师和管理员两个角色

教师
登录注册,修改密码,退出系统
查看修改个人基本信息
增删改自己的学习经历,科研项目和论文、著作成果并提交管理员进行审核

管理员
人才管理:显示所有教师的信息,统计教师的人数,增删改查教师信息
科研管理:显示所有的科研项目以及论文、著作等成果信息,并进行统计,增删改查信息
科研审核:审核通过,审核不通过;审核不通过,退回教师那,教师可以进行编辑修改,重新提交审核
可以看到所有教师的科研项目和论文、著作成果并进行查询

模型:

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

 

数据库表结构文档:

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

系统包含技术:

后端:SSM/springboot
前端:layui,js,css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
tomcat版本:tomcat8

部分截图说明:

下面是登录

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

管理员-首页

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

管理员-人才管理

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

 

 管理员-科研项目管理

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

 管理员-著作成果管理

基于springboot的教师科研信息管理系统(含ssm版本)_开发语言_07

 管理员-论文管理

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

教师-论文维护

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

教师-新增科研项目

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

部分代码:

拦截器

@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;
        }
    }

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

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