【源码论文】基于SSM的高校就业实习管理系统JAVA.VUE

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档

⚠️文末联系方式获取完整资料⚠️

 

4 系统设计

4.1系统功能结构设计图

本次系统所涉及到的有关的功能,都是用功能结构图来简洁和清晰的表示出来,功能结构图就是能够把比较复杂的功能结构用图的形式清晰的描绘下来,并且为后续的设计以及测试等模块提供了明确的方向,在构思功能结构图的时候,便可以给设计的过程带来一定的思维导向,不至于在设计过程中有所遗漏,可以尽可能的明确系统所涉及到的功能。

系统的功能结构图如图3-1所示。

图 4-1系统功能结构图

4.2数据库设计

4.2.1数据库设计原则

学习程序设计,如果要了解数据库管理系统或者是根据需求而制定的系统接口,就必须创建一种数据库管理系统的模式,用来保存数据资料,这样当在应用编程过程中时候,就不需要再向操作系统页面上加载信息,进而增加了整个系统的工作效率。信息库管理系统中保存着许多数据,应该说是一个管理信息系统建设的中心和基础,而信息库管理系统也为管理信息系统建设提出了新增、删除、更改和搜索的操作功能,使管理信息系统建设能够迅速地查询所需要的数据,而不会直接从程序代码中查找。信息库管理系统通过将信息表的各个组成部分按照特定的方法准确地合并,排序和组成信息库管理系统。

通过对高校就业管理系统的主要功能信息进行规划并分为若干功能实体信息,实体信息将使用E-R图加以表示,本系统的主要功能实体图如图4-2、图4-3、图4-4、图4-5所示。

图4-2实习就业实体图

图4-3信息更改申请实体图

图4-4补办申请实体图

图4-5正式就业实体图

系统E-R图如下图所示:

图4-5系统E-R图

4.2.2 数据表设计

在关系数据E-R图中,分析并创建数据表,数据表用来记录信息,数据表关系由多个数据表组成,下面介绍的是数据表各个字段信息如下表所示。

表4-1:信息更改申请

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

yuanxizhanghao

varchar

200

院系账号

yuanxi

varchar

200

banji

varchar

200

shenqingleixing

varchar

200

shenqingshijian

date

genggaineirong

longtext

4294967295

genggaiwenjian

varchar

200

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-2:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-3:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-4:实习就业

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

yuanxizhanghao

varchar

200

院系账号

yuanxi

varchar

200

banji

varchar

200

shixihetong

varchar

200

shixigangwei

varchar

200

shixigongsi

varchar

200

shixixinzi

float

shixikaishi

date

shixijieshu

date

beizhu

varchar

200

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-5:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-6:补办申请

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

yuanxizhanghao

varchar

200

院系账号

yuanxi

varchar

200

banji

varchar

200

shenqingshijian

date

bubancailiao

varchar

200

bubanneirong

longtext

4294967295

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-7:毕业生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

mima

varchar

200

密码

xueshengxingming

varchar

200

学生姓名

xingbie

varchar

200

性别

touxiang

varchar

200

头像

xueshengshouji

varchar

200

学生手机

yuanxizhanghao

varchar

200

yuanxi

varchar

200

banji

varchar

200

jiuyezhuangtai

varchar

200

表4-8:正式就业

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

yuanxizhanghao

varchar

200

院系账号

yuanxi

varchar

200

banji

varchar

200

qianyueleixing

varchar

200

qianyuegongsi

varchar

200

qianyuegangwei

varchar

200

qianyueshijian

date

qianyuehetong

varchar

200

zhengshixinzi

float

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-9:院系教师

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxizhanghao

varchar

200

院系账号

mima

varchar

200

密码

jiaoshixingming

varchar

200

教师姓名

yuanxi

varchar

200

xingbie

varchar

200

性别

zhaopian

varchar

200

照片

lianxidianhua

varchar

200

联系电话

表4-10:院系

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxi

varchar

200

院系

5系统详细设计

5.1系统登录实现

系统登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-1所示。                               

图5-1 系统登录界面

5.2管理员模块实现

管理员进入主页面,主要功能包括对首页、个人中心、院系教师管理、毕业生管理、院系管理、正式就业管理、实习就业管理、信息更改申请管理、补办申请管理等进行操作。管理员主页面如图5-2所示:

图5-2 管理员主界面

管理员点击院系教师管理。进入院系教师页面输入院系账号、教师姓名、联系电话和选择院系可以查询,新增、删除或导出院系教师详细信息,并进行查看详情,修改或删除操作。如图5-3所示:

图5-3院系教师管理界面

管理员点击毕业生管理。进入毕业生页面输入学号、学生姓名、选择性别和选择就业状态可以查询、新增、删除或导出毕业生详细信息,包括院系就业人数统计,并进行查看详情,修改或删除操作。如图5-4所示:

图5-4毕业生管理界面

管理员点击正式就业管理。进入正式就业页面输入学号、选择签约类型和选择是否通过可以对正式就业详细信息进行查询、删除、导出、签约类型统计、正式岗位薪资统计、院系正式就业人数和每月就业人数查看,并进行查看详情,修改或删除操作。如图5-5所示:

图5-5正式就业管理界面

管理员点击实习就业管理。进入实习就业页面输入学号和选择是否通过可以查询、删除或导出实习就业详细信息,包括实习岗位薪资统计,并进行详情,修改或删除操作。如图5-6所示:

图5-6实习就业管理界面

5.3院系教师管理实现

院系教师进入系统可以对首页、个人中心、毕业生管理、正式就业管理、实习就业管理、信息更改申请管理、补办申请管理等功能进行操作。院系教师主页面如图5-7所示:

图5-7院系教师主界面

院系教师点击毕业生管理。进入毕业生页面输入学号、学生姓名、选择性别和选择就业状态可以查询、删除或导出毕业生详细信息,并进行查看详情,修改和删除等操作。如图5-8所示:

图5-8毕业生管理界面

院系教师点击正式就业管理。进入正式就业页面输入学号、选择签约类型和选择是否通过可以对正式就业详细信息进行查询、删除、导出、签约类型统计、正式岗位薪资统计、院系正式就业人数和每月就业人数查看,并进行查看详情,修改和删除等操作。如图5-9所示:

图5-9正式就业管理界面

院系教师点击实习就业管理。进入实习就业页面输入学号和选择是否通过可以查询、删除或导出实习就业详细信息,包括实习岗位薪资统计,并进行详情,修改或删除等操作。如图5-10所示:

图5-10实习就业管理界面

院系教师点击信息更改申请管理。进入信息更改申请页面输入学号、选择申请类型和选择是否通过可以查询或删除信息更改申请详细信息,并进行详情,修改或删除等操作。如图5-11所示:

图5-11信息更改申请管理界面

院系教师点击补办申请管理。进入补办申请页面输入学号、补办材料和选择是否通过可以查询或删除补办申请详细信息,并进行详情,修改或删除操作。如图5-12所示:

图5-12补办申请管理界面

5.4毕业生管理实现

毕业生进入系统可以对首页、个人中心、正式就业管理、实习就业管理、信息更改申请管理、补办申请管理等功能进行操作。毕业生主页面如图5-13所示:

图5-13毕业生主界面

毕业生教师点击实习就业管理。进入实习就业页面输入学号和选择是否通过可以查询、新增或删除实习就业详细信息,并进行详情、更改申请或删除操作。如图5-14所示:

图5-14实习就业管理界面

代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值