基于Java+SpringBoot+vue+element实现毕业就业招聘系统
Posted java李杨勇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Java+SpringBoot+vue+element实现毕业就业招聘系统相关的知识,希望对你有一定的参考价值。
🍅 作者简介:CSDN特邀作者✌、博客专家✌、java领域优质创作者💪
🍅关注公众号【java李杨勇】 简历模板、学习资料、面试题库等都给你💪
前言介绍:
随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。高校毕业生就业管理系统,主要的模块包括首页、个人中心、学生管理、辅导员管理、企业管理、招聘信息管理、应聘信息管理、毕业去向管理、就业知识管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。要想实现高校毕业生就业管理系统的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的信息,并由此分析得出的关联信息等大量的数据都由数据库管理。本文中数据库服务器端采用了mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。本系统的开发使获取高校毕业生就业管理系统信息能够更加方便快捷,同时也使高校毕业生就业管理系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作。
项目设计:
高校毕业生就业管理系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在不受时间、地点的限制来使用这个系统。高校毕业生就业管理系统工作原理图,如图
图系统工作原理图
系统架构图属于系统设计阶段,系统架构图只是这个阶段一个产物,系统的总体架构决定了整个系统的模式,是系统的基础。高校毕业生就业管理系统的整体结构设计
功能截图:
系统首页:首页可以查看首页、企业、招聘信息、就业知识、公告信息、个人中心、后台管理等信息进行详细操作
登录注册:管理员、学生、辅导员和企业四个角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息
企业信息:
企业详情:
招聘信息:在招聘信息页面中可以查看企业名称、企业账号、岗位名称、上班地点、上班时间、薪资待遇、招聘人数、联系方式、点击次数、任职要求、企业介绍等信息
招聘信息详情:
招聘信息详情公司介绍
用户填写应聘信息:管理员或企业收到应聘信息进行审核、审核后在用户端可以看到
企业账号登录审核通过后进行面试:
学生用户查看应聘信息
就业知识:在就业知识页面中可以查看标题、分类、图片、相关资料、视频等信息
在就业知识可以对文件进行下载以及视频的观看。
以及评论和文件内容的查看
线下宣讲会:
公告信息:
公告详情:
个人中心:
管理员后台管理:管理员登录进入系统之后,就可以对所有的信息进行查看,可以查看到首页、个人中心、学生管理、辅导员管理、企业管理、招聘信息管理、应聘信息管理、毕业去向管理、就业知识管理、系统管理等,并且还可以对其进行相应的操作管理
企业管理:在企业管理页面中可以对索引、企业账号、企业名称、企业地址、负责人、联系方式、邮箱、企业图片、附件等信息进行详情,修改或删除等操作
招聘信息:
应聘信息:
毕业去向:
就业知识:
线下宣讲会:
系统公告以及轮播图等管理:
代码实现:
/**
* 招聘信息
* 后端接口
* @author
* @email
* @date 2022-03-05 23:00:18
*/
@RestController
@RequestMapping("/zhaopinxinxi")
public class ZhaopinxinxiController
@Autowired
private ZhaopinxinxiService zhaopinxinxiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,ZhaopinxinxiEntity zhaopinxinxi,
HttpServletRequest request)
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("qiye"))
zhaopinxinxi.setQiyezhanghao((String)request.getSession().getAttribute("username"));
EntityWrapper<ZhaopinxinxiEntity> ew = new EntityWrapper<ZhaopinxinxiEntity>();
PageUtils page = zhaopinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhaopinxinxi), params), params));
return R.ok().put("data", page);
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,ZhaopinxinxiEntity zhaopinxinxi, HttpServletRequest request)
EntityWrapper<ZhaopinxinxiEntity> ew = new EntityWrapper<ZhaopinxinxiEntity>();
PageUtils page = zhaopinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhaopinxinxi), params), params));
return R.ok().put("data", page);
/**
* 列表
*/
@RequestMapping("/lists")
public R list( ZhaopinxinxiEntity zhaopinxinxi)
EntityWrapper<ZhaopinxinxiEntity> ew = new EntityWrapper<ZhaopinxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( zhaopinxinxi, "zhaopinxinxi"));
return R.ok().put("data", zhaopinxinxiService.selectListView(ew));
/**
* 查询
*/
@RequestMapping("/query")
public R query(ZhaopinxinxiEntity zhaopinxinxi)
EntityWrapper< ZhaopinxinxiEntity> ew = new EntityWrapper< ZhaopinxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( zhaopinxinxi, "zhaopinxinxi"));
ZhaopinxinxiView zhaopinxinxiView = zhaopinxinxiService.selectView(ew);
return R.ok("查询招聘信息成功").put("data", zhaopinxinxiView);
/**
* 后端详情
*/
@RequestMapping("/info/id")
public R info(@PathVariable("id") Long id)
ZhaopinxinxiEntity zhaopinxinxi = zhaopinxinxiService.selectById(id);
zhaopinxinxi.setClicknum(zhaopinxinxi.getClicknum()+1);
zhaopinxinxiService.updateById(zhaopinxinxi);
return R.ok().put("data", zhaopinxinxi);
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/id")
public R detail(@PathVariable("id") Long id)
ZhaopinxinxiEntity zhaopinxinxi = zhaopinxinxiService.selectById(id);
zhaopinxinxi.setClicknum(zhaopinxinxi.getClicknum()+1);
zhaopinxinxiService.updateById(zhaopinxinxi);
return R.ok().put("data", zhaopinxinxi);
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ZhaopinxinxiEntity zhaopinxinxi, HttpServletRequest request)
zhaopinxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhaopinxinxi);
zhaopinxinxiService.insert(zhaopinxinxi);
return R.ok();
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody ZhaopinxinxiEntity zhaopinxinxi, HttpServletRequest request)
zhaopinxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhaopinxinxi);
zhaopinxinxiService.insert(zhaopinxinxi);
return R.ok();
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody ZhaopinxinxiEntity zhaopinxinxi, HttpServletRequest request)
//ValidatorUtils.validateEntity(zhaopinxinxi);
zhaopinxinxiService.updateById(zhaopinxinxi);//全部更新
return R.ok();
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids)
zhaopinxinxiService.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<ZhaopinxinxiEntity> wrapper = new EntityWrapper<ZhaopinxinxiEntity>();
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("qiye"))
wrapper.eq("qiyezhanghao", (String)request.getSession().getAttribute("username"));
int count = zhaopinxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
数据库设计:
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表4-1:企业
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
addtime | timestamp | 创建时间 | |
qiyezhanghao | varchar | 200 | 企业账号 |
mima | varchar | 200 | 密码 |
qiyemingcheng | varchar | 200 | 企业名称 |
qiyedizhi | varchar | 200 | 企业地址 |
fuzeren | varchar | 200 | 负责人 |
lianxifangshi | varchar | 200 | 联系方式 |
youxiang | varchar | 200 | 邮箱 |
qiyetupian | varchar | 200 | 企业图片 |
qiyezizhi | varchar | 200 | 企业资质 |
yingyexukezheng | varchar | 200 | 营业许可证 |
sfsh | varchar | 200 | 是否审核 |
shhf | longtext | 4294967295 | 审核回复 |
表:公告信息
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
addtime | timestamp | 创建时间 | |
title | varchar | 200 | 标题 |
introduction | longtext | 4294967295 | 简介 |
picture | varchar | 200 | 图片 |
content | longtext | 4294967295 | 内容 |
表:就业知识
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
addtime | timestamp | 创建时间 | |
biaoti | varchar | 200 | 标题 |
fenlei | varchar | 200 | 分类 |
tupian | varchar | 200 | 图片 |
xiangguanziliao | varchar | 200 | 相关资料 |
shipin | varchar | 200 | 视频 |
wenzhangneirong | longtext | 4294967295 | 文章内容 |
表:辅导员
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
addtime | timestamp | 创建时间 | |
fudaoyuangonghao | varchar | 200 | 辅导员工号 |
mima | varchar | 200 | 密码 |
fudaoyuanxingming | varchar | 200 | 辅导员姓名 |
xingbie | varchar | 200 | 性别 |
lianxidianhua | varchar | 200 | 联系电话 |
jiaoshiyouxiang | varchar | 200 | 教师邮箱 |
表:招聘信息
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
addtime | timestamp | 创建时间 | |
qiyemingcheng | varchar | 200 | 企业名称 |
qiyezhanghao | varchar | 200 | 企业账号 |
qiyetupian | varchar | 200 | 企业图片 |
gangweimingcheng | varchar | 200 | 岗位名称 |
shangbandidian | varchar | 200 | 上班地点 |
shangbanshijian | varchar | 200 | 上班时间 |
xinzidaiyu | int | 薪资待遇 | |
zhaopinrenshu | int | 招聘人数 | |
lianxifangshi | varchar | 200 | 联系方式 |
qiyejieshao | longtext | 4294967295 | 企业介绍 |
renzhiyaoqiu | longtext | 4294967295 | 任职要求 |
sfsh | varchar | 200 | 是否审核 |
shhf | longtext | 4294967295 | 审核回复 |
clicknum | int | 点击次数 |
表:配置文件
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
name | varchar | 100 | 配置参数名称 |
value | varchar | 100 | 配置参数值 |
表:应聘信息
字段名称 | 类型 | 长度 | 字段说明 |
id | bigint | 主键 | |
addtime | timestamp | 创建时间 | |
qiyemingcheng | varchar | 200 | 企业名称 |
gangweimingcheng | varchar | 200 | 岗位名称 |
xinzidaiyu | varchar | 200 | 薪资待遇 |
qiyezhanghao | varchar | 200 | 企业账号 |
xueshengzhanghao | varchar | 200 | 学生账号 |
xueshengxingming | varchar | 200 | 学生姓名 |
lianxifangshi | varchar | 200 | 联系方式 |
jianlitoudi | varchar | 200 | 简历投递 |
yingpinriqi | datetime | 应聘日期 | |
sfsh | varchar | 200 | 是否审核 |
shhf | longtext | 4294967295 | 审核回复 |
论文报告:
获取源码:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号获取联系方式👇🏻👇🏻👇🏻
打卡 文章 更新 223/ 365天
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻
以上是关于基于Java+SpringBoot+vue+element实现毕业就业招聘系统的主要内容,如果未能解决你的问题,请参考以下文章
Vue项目安装流程(vue+ele+mongodb+axios)
Java+MySQL 基于Springboot+vue的旧物置换网站#毕业设计
Java+MySQL 基于Springboot+vue的疫情网课管理系统#毕业设计
Java+MySQL基于Springboot+vue的酒店民宿管理系统前后台#毕业设计