ssm+vue710的线上招聘问答系统的设计与实现
博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1500+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍 翰文编程CSDN博客 翰文编程-CSDN博客
文末下方有源码获取地址
ssm+vue710基于Javaweb的线上招聘问答系统
4.2 功能模块设计
对管理员具体功能的设计结果将以图4.1所示的管理员功能结构图来进行体现。管理员对于线上招聘问答系统操作的功能包括管理公司和用户以及论坛帖子信息,管理招聘岗位,求职意向以及职位招聘信息等。
图4.1 管理员功能结构图
对公司具体功能的设计结果将以图4.2所示的公司功能结构图来进行体现。公司对于线上招聘问答系统操作的功能包括增删改查职位招聘信息,回复职位招聘留言,查看用户简历,管理论坛帖子等。
图4.2 公司功能结构图
对用户具体功能的设计结果将以图4.3所示的用户功能结构图来进行体现。用户对于线上招聘问答系统操作的功能包括查看职位招聘信息,对职位招聘发布留言,查看论坛帖子,评论查看的帖子,查看公司简介,管理个人简历等。
图4.3 用户功能结构图
4.3 数据库设计
用户通过系统的功能操作来进行数据交互,包括数据的添加,数据的更新,数据的删除,数据的查询等基本功能操作,表面上虽然是操作系统界面提供的功能,但是实际上系统的这些数据是在数据库当中进行访问与操作的。目前市场上可供选择的存储数据的数据库有很多,除了简单版的Access之外,还有SQL Server,DB2,Informix,MySQL等关系型数据库可供选择,由于关系型数据库具有固定的表结构,以及对数据一致性要求比较强,所以相比没有固定表结构以及具有灵活的数据格式的非关系型数据库而言,在程序配套数据库的选择中,关系型数据库的使用率更高。本系统选择MySQL来存放数据,其相关理论以及技术在经过了很长时间的发展之后,变得非常成熟,各大网络平台都公开分享其开发源码,而且其对计算机的配置要求很低,不需要过多内存进行安装,很符合本系统对于数据库的选择要求。
4.3.1 数据库E-R图
本节需要对系统中存放在数据库中的数据进行充分分析,对数据的实体,实体特征,联系等进行确定,然后通过概念模型的表示方法即E-R图进行表达,在E-R图绘制工具中,选择椭圆,菱形框,矩形等形状表达实体属性,实体间联系,实体这些信息,使用实线段将这些形状进行连接即可。初步完成E-R图之后,需要进行检查,及时进行有误数据的更改,删除实体间存在的冗余联系,删除E-R图中冗余的数据,最终要展示一个内容准确的E-R图。
(1)公司包括的属性有公司名称,所在行业,联系方式,公司简介等。其属性图如下。
图4.4 公司实体属性图
(2)简历包括的属性有期望工资,工作经历,教育经历,简历名称等。其属性图如下。
图4.5 简历实体属性图
(3)职位招聘包括的属性有薪资待遇,上班地点,联系人等。其属性图如下。
图4.6 职位招聘实体属性图
(4)用户包括的属性有用户头像,性别,手机号等。其属性图如下。
图4.7 用户实体属性图
(5)设计的各实体间关系E-R图如下。
图4.8 实体间关系E-R图
4.3.2 数据库表结构
在指定的数据库里面对数据表进行创建命名,然后设计各个数据表的存储结构,需要对该数据库的操作非常熟悉,并且还需要学习并掌握一定的数据表设计方面的知识,比如数据命名,作为系统的开发人员,为了避免程序运行产生乱码现象以及为了确保系统的正常运行,在对数据表进行命名时,一般都是采用英文名称,同时在对数据表的字段进行编辑时,也是采用英文的方式进行,为了方便今后对数据表的设计内容进行更改或查看,对一些比较重要的字段都会进行中文备注,或者是使用中文进行字段描述。设计期间,也需要对各个字段选择合适的数据类型以及设置匹配的取值范围,当一张数据表设计完成之后,还要对该表的主键进行标注,就是为了确保该数据表的唯一性与独立性。
表4.1 论坛表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
forum_name | 帖子标题 | varchar(200) | 是 |
yonghu_id | 用户 | int(11) | 是 |
gongsi_id | 公司 | int(11) | 是 |
users_id | 管理员 | int(11) | 是 |
forum_content | 发布内容 | text | 是 |
super_ids | 父id | int(11) | 是 |
forum_state_types | 帖子状态 | int(11) | 是 |
insert_time | 发帖时间 | timestamp | 是 |
update_time | 修改时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.2 公司表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
gongsi_name | 公司名称 | varchar(200) | 是 |
hanye_types | 所在行业 | int(11) | 是 |
gongsi_phone | 联系方式 | varchar(200) | 是 |
gongsi_email | 邮箱 | varchar(200) | 是 |
gongsi_photo | 营业执照展示 | varchar(200) | 是 |
gongsi_content | 公司简介 | text | 是 |
gongsi_delete | 逻辑删除 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.3 简历表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 用户 | int(11) | 是 |
jianli_uuid_number | 简历唯一编号 | varchar(200) | 是 |
jianli_name | 简历名称 | varchar(200) | 是 |
jianli_xingming | 姓名 | varchar(200) | 是 |
jianli_types | 求职意向 | int(11) | 是 |
jianli_xinzi | 期望工资 | varchar(200) | 是 |
jianli_xueli | 学历 | varchar(200) | 是 |
jianli_jingli | 工作经历 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
jianli_phone | 手机号 | varchar(200) | 是 |
jianli_photo | 照片 | varchar(200) | 是 |
jianli_address | 位置 | varchar(200) | 是 |
jiaoyu_text | 教育经历 | text | 是 |
shixi_text | 实习或工作经历 | text | 是 |
geren_text | 个人介绍 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.4 公告信息表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
news_name | 公告信息标题 | varchar(200) | 是 |
news_types | 公告信息类型 | int(11) | 是 |
news_photo | 公告信息图片 | varchar(200) | 是 |
insert_time | 公告信息时间 | timestamp | 是 |
news_content | 公告信息详情 | text | 是 |
news_delete | 假删 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.5 职位留言表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
zhaopin_id | 职位 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
zhaopin_liuyan_text | 留言内容 | text | 是 |
reply_text | 回复内容 | text | 是 |
insert_time | 留言时间 | timestamp | 是 |
update_time | 回复时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.6 管理员表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
username | 用户名 | varchar(100) | 否 |
password | 密码 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增时间 | timestamp | 否 |
表4.7 用户表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
yonghu_name | 用户姓名 | varchar(200) | 是 |
yonghu_photo | 头像 | varchar(255) | 是 |
yonghu_phone | 用户手机号 | varchar(200) | 是 |
yonghu_id_number | 用户身份证号 | varchar(200) | 是 |
yonghu_email | 邮箱 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
yonghu_delete | 假删 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.8 职位招聘表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
gongsi_id | 公司 | int(11) | 是 |
zhaopin_name | 招聘信息名称 | varchar(200) | 是 |
zhaopin_photo | 招聘信息照片 | varchar(200) | 是 |
zhaopin_daiyu | 薪资待遇 | varchar(200) | 是 |
zhaopin_address | 上班地点 | varchar(200) | 是 |
lianxiren_name | 联系人 | varchar(200) | 是 |
zhaopin_phone | 招聘电话 | varchar(200) | 是 |
zhaopin_file | 申请表 | varchar(200) | 是 |
zan_number | 赞 | int(111) | 是 |
cai_number | 踩 | int(111) | 是 |
zhaopin_types | 招聘岗位 | int(11) | 是 |
zhaopin_renshu_number | 招聘人数 | int(11) | 是 |
shangxia_types | 是否上架 | int(11) | 是 |
zhaopin_content | 招聘信息详情 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.9 职位收藏表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
zhaopin_id | 职位 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
zhaopin_collection_types | 类型 | int(11) | 是 |
insert_time | 收藏时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
5 系统实现
下面主要是通过功能实现界面截图的形式,并且运用文字来描述功能实现界面的内容。
5.1 管理员功能实现
5.1.1 公司管理
该功能主要用于实现对公司基本信息的管理,公司管理界面的运行效果见图5.1。在此界面,管理员查看公司所在行业,公司的联系方式等信息,公司信息存在错误数据,也需要管理员及时更改,当公司信息失效之后,管理员就需要及时删除。
图5.1 公司管理界面
5.1.2 招聘岗位管理
该功能主要用于实现对招聘岗位基本信息的管理,招聘岗位管理界面的运行效果见图5.2。在此界面,管理员对招聘岗位信息的招聘岗位名称进行登记。对招聘岗位名称存在错误数据的信息进行修改,以及使用删除功能对需要删除的招聘岗位信息进行删除等。
图5.2 招聘岗位管理界面
主要代码
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永不会进入");
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
else if("公司".equals(role))
params.put("gongsiId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = zhaopinService.queryPage(params);
//字典表数据转换
List<ZhaopinView> list =(List<ZhaopinView>)page.getList();
for(ZhaopinView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
ZhaopinEntity zhaopin = zhaopinService.selectById(id);
if(zhaopin !=null){
//entity转view
ZhaopinView view = new ZhaopinView();
BeanUtils.copyProperties( zhaopin , view );//把实体数据重构到view中
//级联表
GongsiEntity gongsi = gongsiService.selectById(zhaopin.getGongsiId());
if(gongsi != null){
BeanUtils.copyProperties( gongsi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setGongsiId(gongsi.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
5.1.3 论坛管理
该功能主要用于实现对论坛帖子基本信息的管理,论坛管理界面的运行效果见图5.3。在此界面,管理员可以修改论坛帖子的标题和论坛帖子的内容,可以删除传播不良信息的论坛帖子,可以通过论坛回复功能及时跟踪论坛回帖信息以及及时删除传播不良信息的回帖数据。
图5.3 论坛管理界面
5.2 公司功能实现
5.2.1 简历查看
简历查看界面的运行效果见图5.4。在此界面,公司查看用户简历,包括查看用户学历,期望工资,位置,教育经历,个人介绍等相关信息,查询简历的时候,需要公司选择查询条件来查询用户简历,如果选择根据学历查询,那么需要公司在学历旁边的查询编辑框中登记学历信息,然后点击查询按钮进行简历查询。
图5.4 简历查看界面