基于java+springboot+vue的卓越导师双选系统

项目介绍

如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让导师选择信息的管理模式进行升级,也为了更好的维护导师选择信息,卓越导师双选系统的开发运用就显得很有必要。并且通过开发卓越导师双选系统,不仅可以让所学的SpringBoot框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。

卓越导师双选系统根据调研,确定管理员管理学员,导师,管理项目信息,管理项目提交,管理指导项目信息。导师管理导师选择信息,管理项目,管理项目提交并对学员提交的项目进行指导。学员选择导师,查看项目,提交已完成的项目文件,查看导师对项目的指导信息。

借助于卓越导师双选系统这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对导师选择信息实施规范化处理,让导师选择信息通过电子的方式进行保存,无论是管理人员检索导师选择信息,维护导师选择信息都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。

4.2功能结构设计
这部分内容使用结构图这样的工具,显示设计结果,设计的管理员功能见下图。管理员管理学员,导师,管理项目信息,管理项目提交,管理指导项目信息。
在这里插入图片描述
这部分内容使用结构图这样的工具,显示设计结果,设计的导师功能见下图。导师管理导师选择信息,管理项目,管理项目提交并对学员提交的项目进行指导。
在这里插入图片描述
这部分内容使用结构图这样的工具,显示设计结果,设计的学员功能见下图。学员选择导师,查看项目,提交已完成的项目文件,查看导师对项目的指导信息。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SpringBoot
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net

系统实现

5.1管理员功能实现
5.1.1 导师信息管理
实现管理员权限的导师信息管理功能,其运行效果见下图。管理员修改导师所教科目信息,电话,邮箱,教师姓名等信息,可以删除指定的导师信息。
在这里插入图片描述

图5-1 导师信息管理页面

5.1.2 导师选择统计报表
实现管理员权限的导师选择统计报表功能,其运行效果见下图。管理员查看导师选择统计报表信息,查看选择各位导师的学员人数信息。
在这里插入图片描述

图5-2 导师选择统计报表页面

5.1.3 学员管理
实现管理员权限的学员管理功能,其运行效果见下图。管理员查看学员信息,对学员的资料进行修改,查询,删除等操作。
在这里插入图片描述

图5-3 学员管理页面

5.2导师功能实现
5.2.1 项目信息管理
实现导师权限的项目信息管理功能,其运行效果见下图。导师新增项目,上传项目文件,修改项目信息,在本页面删除指定的项目信息。
在这里插入图片描述

图5-4 项目信息管理页面

5.2.2 项目提交管理
实现导师权限的项目提交管理功能,其运行效果见下图。导师下载学员提交的已完成的项目文件,导师点击指导项目按钮可以对学员提交的项目进行指导。
在这里插入图片描述

图5-5 项目提交管理页面

5.3 学员功能实现
5.3.1 导师信息管理
实现学员权限的导师信息管理功能,其运行效果见下图。学员查看导师所教科目,邮箱以及电话等信息,可以点击右侧的选择导师按钮对该导师进行选择。
在这里插入图片描述

图5-6 导师信息管理页面

5.3.2 项目信息管理
实现学员权限的项目信息管理功能,其运行效果见下图。学员查看项目信息,在规定时间内完成导师布置的项目,并在当前页面提交已完成的项目文件。
在这里插入图片描述

图5-7 项目信息管理页面

5.3.3 指导项目查看
实现学员权限的指导项目查看功能,其运行效果见下图。学员查看导师对自己提交的项目的指导信息。
在这里插入图片描述

图5-8 指导项目查看页面

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.XiangmuxinxiEntity;
import com.entity.view.XiangmuxinxiView;

import com.service.XiangmuxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 项目信息
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/xiangmuxinxi")
public class XiangmuxinxiController {
    @Autowired
    private XiangmuxinxiService xiangmuxinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,XiangmuxinxiEntity xiangmuxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xueyuan")) {
			xiangmuxinxi.setXuehao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("daoshi")) {
			xiangmuxinxi.setGonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
		PageUtils page = xiangmuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmuxinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,XiangmuxinxiEntity xiangmuxinxi, 
		HttpServletRequest request){
        EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
		PageUtils page = xiangmuxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmuxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( XiangmuxinxiEntity xiangmuxinxi){
       	EntityWrapper<XiangmuxinxiEntity> ew = new EntityWrapper<XiangmuxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( xiangmuxinxi, "xiangmuxinxi")); 
        return R.ok().put("data", xiangmuxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(XiangmuxinxiEntity xiangmuxinxi){
        EntityWrapper< XiangmuxinxiEntity> ew = new EntityWrapper< XiangmuxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( xiangmuxinxi, "xiangmuxinxi")); 
		XiangmuxinxiView xiangmuxinxiView =  xiangmuxinxiService.selectView(ew);
		return R.ok("查询项目信息成功").put("data", xiangmuxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        XiangmuxinxiEntity xiangmuxinxi = xiangmuxinxiService.selectById(id);
        return R.ok().put("data", xiangmuxinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        XiangmuxinxiEntity xiangmuxinxi = xiangmuxinxiService.selectById(id);
        return R.ok().put("data", xiangmuxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
    	xiangmuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xiangmuxinxi);
        xiangmuxinxiService.insert(xiangmuxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
    	xiangmuxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xiangmuxinxi);
        xiangmuxinxiService.insert(xiangmuxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody XiangmuxinxiEntity xiangmuxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(xiangmuxinxi);
        xiangmuxinxiService.updateById(xiangmuxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        xiangmuxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<XiangmuxinxiEntity> wrapper = new EntityWrapper<XiangmuxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xueyuan")) {
			wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("daoshi")) {
			wrapper.eq("gonghao", (String)request.getSession().getAttribute("username"));
		}

		int count = xiangmuxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

论文参考

在这里插入图片描述

目 录
第一章 绪论 1
1.1 选题背景 1
1.2 选题意义 1
1.3 研究内容 2
第二章 开发环境 3
2.1 SpringBoot框架 3
2.2 JSP技术 3
2.3 MYSQL数据库 4
第三章 系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2操作可行性 5
3.1.3经济可行性 5
3.2系统流程分析 6
3.3系统性能分析 9
3.3.1数据完整性 9
3.3.2系统可扩展性 10
3.3.3系统安全性 10
3.4系统功能分析 10
第四章 系统设计 14
4.1 系统设计思想 14
4.2功能结构设计 15
4.3数据库设计 17
4.3.1 数据库E-R图 17
4.3.2 数据库表结构 20
第五章 系统实现 24
5.1管理员功能实现 24
5.1.1 导师信息管理 24
5.1.2 导师选择统计报表 24
5.1.3 学员管理 25
5.2导师功能实现 26
5.2.1 项目信息管理 26
5.2.2 项目提交管理 27
5.3 学员功能实现 27
5.3.1 导师信息管理 27
5.3.2 项目信息管理 28
5.3.3 指导项目查看 28
第六章 系统测试 29
6.1系统测试的特点 29
6.2 系统功能测试 29
6.2.1 用户登录测试 29
6.2.2 导师信息查询功能测试 30
6.3 系统测试结果 30
结 论 31
致 谢 32
参考文献 33

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q_2781179521

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值