基于javaweb的人才求职招聘管理系统(java+springboot+freemarker+jpa+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的人才求职招聘管理系统(java+SpringBoot+FreeMarker+JPA+Mysql)

项目介绍

基于SpringBoot框架开发的求职招聘管理系统。 本项目分三种角色:管理员、招聘人员、求职者。 用户可以以两种身份注册登录,一种是求职者,另一种是招聘者。 求职者可以浏览查询公司信息、职位信息,并且可以填写自己的简历,然后给自己心仪的职位投递简历。招聘者可以填写自己公司的信息,然后进行认证申请, 申请通过后,就可以进行发布职位,接收求职者投递来简历,并且进行审核和通知。 除此之外,该项目还附带后台管理功能,管理员可以登录后台管系统,进行职位类别添加、管理用户信息、通过审核来更改公司、职位的状态等。 项目功能:注册(引入邮箱验证码功能)、登录、修改密码、按条件查询、填写我的简历、填写公司信息、投递简历、发布职位、接收简历等等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  4.数据库:MySql 5.7版本; 5.是否Maven项目:是;

技术栈

SpringBoot + FreeMarker + JPA

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application-dev.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,项目运行成功后,在浏览器中输入网址: http://localhost:8082/home/index/index 访问的是网站首页面 http://localhost:8082/admin/system/login 访问的是后台管理页面

管理员控制类:

/**

  • 管理员控制类

*/

@RequestMapping(“/admin/admin”)

@Controller

public class AdminController {

@Autowired

private AdminService adminService;

@Autowired

private OperaterLogService operaterLogService;

/**

  • 后台管理员管理

  • @param model

  • @return

*/

@RequestMapping(value=“/my_info”,method=RequestMethod.GET)

public String myInfo(Model model){

return “admin/admin/my_info”;

/**

  • 后台管理员信息列表

  • @param request

  • @param page

  • @return

*/

@RequestMapping(value=“/my_info_list”,method=RequestMethod.POST)

@ResponseBody

public Map<String, Object> myInfoList(HttpServletRequest request,Page page){

Map<String, Object> ret = new HashMap<String, Object>();

Admin admin = (Admin) request.getSession().getAttribute(SessionConstant.SESSION_ADMIN_LOGIN_KEY);

List findList = adminService.findAdminList(admin.getId(),page.getOffset(), page.getRows());

ret.put(“rows”, findList);

ret.put(“total”, 1);

return ret;

/**

  • 管理员信息修改处理

  • @param admin

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.POST)

@ResponseBody

public Result edit(Admin admin)

if(admin == null)

return Result.error(CodeMsg.DATA_ERROR);

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(admin);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

//判断有无接收到对应管理员的id

if(admin.getId() == null || admin.getId().longValue() <= 0)

return Result.error(CodeMsg.USER_EDIT_ID_EMPTY);

Admin findAdmin = adminService.find(admin.getId());

//将提交的管理员信息指定字段复制到已存在的admin对象findAdmin中,该方法会覆盖新字段内容

BeanUtils.copyProperties(admin, findAdmin, “id”,“createTime”,“updateTime”);

//进行修改操作

if(adminService.save(findAdmin) == null)

return Result.error(CodeMsg.USER_EDIT_ERROR);

//添加操作日志

OperaterLog operaterLog = new OperaterLog();

operaterLog.setOperator(“【”+findAdmin.getAdminName()+“】:”);

operaterLog.setContent(“修改了管理员信息:【”+findAdmin+“】。”);

operaterLogService.save(operaterLog);

return Result.success(true);

用户管理控制层:

/**

  • 后端用户管理控制器

*/

@RequestMapping(“/admin/user”)

@Controller

public class UserController {

@Autowired

private UserService userService;

@Autowired

private ResumeService resumeService;

@Autowired

private WorkExperienceService workExperienceService;

@Autowired

private WorkShowService workShowService;

@Autowired

private ProjectExperienceService projectExperienceService;

@Autowired

private ExpectWorkService expectWorkService;

@Autowired

private EducationBackgroundService educationBackgroundService;

@Autowired

private CompanyService companyService;

@Autowired

private PositionService PositionService;

/**

  • 后台用户管理信息页面

  • @param model

  • @return

*/

@RequestMapping(value=“/user_info”,method=RequestMethod.GET)

public String myInfo(Model model){

return “admin/admin/user_info”;

/**

  • 后台用户信息列表

  • @param request

  • @param page

  • @return

*/

@RequestMapping(value=“/user_info_list”,method=RequestMethod.POST)

@ResponseBody

public Map<String, Object> userInfoList(HttpServletRequest request,Page page){

Map<String, Object> ret = new HashMap<String, Object>();

List findAllUserList = userService.findAllUserList(page.getOffset(), page.getRows());

ret.put(“rows”, findAllUserList);

ret.put(“total”, userService.total());

return ret;

/**

  • 删除用户

  • @param id

  • @return

*/

@RequestMapping(value=“/delete”,method=RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

User user = userService.find(id);

try {

if(user.getType() == 1) {

//如果用户身份是招聘者

Company findCompany = companyService.findByUserId(id);

if(findCompany != null) {

//删除该用户认证的公司下所有简历

List findResumeList = resumeService.findByCompanyId(findCompany.getId());

for(Resume resume : findResumeList) {

resumeService.delete(resume.getId());

//删除该用户认证的公司下所有职位

List findPositionList = PositionService.findPositionByCompanyId(findCompany.getId());

for(Position position : findPositionList) {

PositionService.delete(position.getId());

//删除该用户所属公司

companyService.delete(findCompany.getId());

if(user.getType() == 0) {

//如果用户身份是应聘者

//删除该用户的所有简历

List findResume = resumeService.findByUserId(id);

for(Resume resume : findResume) {

resumeService.delete(resume.getId());

//删除该用户的工作经验

WorkExperience findWorkExperience = workExperienceService.findWorkExperienceByUserId(id);

if(findWorkExperience != null) {

workExperienceService.delete(findWorkExperience.getId());

//删除该用户的作品展示

WorkShow findWorkShow = workShowService.findWorkShowByUserId(id);

if(findWorkShow != null) {

workShowService.delete(findWorkShow.getId());

//删除该用户的项目经验

ProjectExperience findProjectExperience = projectExperienceService.findProjectExperienceByUserId(id);

if(findProjectExperience != null) {

projectExperienceService.delete(findProjectExperience.getId());

//删除该用户的期望工作

ExpectWork findExpectWork = expectWorkService.findExpectWorkByUserId(id);

if(findExpectWork != null) {

expectWorkService.delete(findExpectWork.getId());

//删除该用户的教育背景

EducationBackground findEducationBackground = educationBackgroundService.findEducationBackgroundByUserId(id);

if(findEducationBackground != null) {

educationBackgroundService.delete(findEducationBackground.getId());

//最后删除该用户

userService.delete(id);

}catch(Exception e){

e.printStackTrace();

return Result.error(CodeMsg.FOREIGN_KEY_RESTRAIN);

return Result.success(true);

后端公司管理控制器:

/**

*后端公司管理控制器

*/

@RequestMapping(“/admin/company”)

@Controller

public class CompanyController {

@Autowired

private CompanyService companyService;

@Autowired

private ResumeService resumeService;

@Autowired

private PositionService positionService;

/**

  • 后台公司管理信息页面

  • @param model

  • @return

*/

@RequestMapping(value=“/list”,method=RequestMethod.GET)

public String list(Model model){

return “admin/company/list”;

/**

  • 获取后台公司信息列表

  • @param request

  • @param page

  • @return

*/

@RequestMapping(value=“/list”,method=RequestMethod.POST)

@ResponseBody

public Map<String, Object> list(@RequestParam(name=“state”,required=false,defaultValue=“”) String state,Page page){

Map<String, Object> ret = new HashMap<String, Object>();

if(!StringUtil.isEmpty(state)) {

//如果state不为空

List findCompanyList = companyService.findCompanyList(state, page.getOffset(), page.getRows());

ret.put(“rows”, findCompanyList);

ret.put(“total”, companyService.getCompanyTotal(state));

}else {

//如果state为空

List findAllCompanyList = companyService.findAllCompanyList(page.getOffset(), page.getRows());

ret.put(“rows”, findAllCompanyList);

ret.put(“total”, companyService.total());

return ret;

/**

  • 改变公司状态

  • @param request

  • @param page

  • @return

*/

@RequestMapping(value=“/change_state”,method=RequestMethod.POST)

@ResponseBody

public Result changeState(Company company){

if(company == null) {

return Result.error(CodeMsg.DATA_ERROR);

Company findCompany = companyService.find(company.getId());

findCompany.setState(company.getState());

if(companyService.save(findCompany) == null) {

return Result.error(CodeMsg.COMPANY_CHANGE_STATE_ERROR);

return Result.success(true);

/**

*删除公司

  • @param request

  • @param page

  • @return

*/

@RequestMapping(value=“/delete”,method=RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

try {

List findResumeList = resumeService.findByCompanyId(id);

//先删除该公司所有的简历

for(Resume resume : findResumeList) {

resumeService.delete(resume.getId());

//再删除该公司所有职位

List findPositionList = positionService.findPositionByCompanyId(id);

for(Position position : findPositionList) {

positionService.delete(position.getId());

//最后删除公司

companyService.delete(id);

}catch(Exception e) {

e.printStackTrace();

return Result.error(CodeMsg.FOREIGN_KEY_RESTRAIN);

return Result.success(true);


基于javaweb的人才求职招聘管理系统(java+springboot+freemarker+jpa+mysql)相关推荐

  1. 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  2. 基于javaweb的私人牙科诊所病历管理系统(java+jsp+css+javascript+mysql)

    基于javaweb的私人牙科诊所病历管理系统(java+jsp+css+javascript+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

  3. 基于javaweb的超市收银管理系统(java+SSM+HTML+maven+mysql)

    基于javaweb的超市收银管理系统(java+SSM+HTML+maven+mysql) 一.项目简述 本系统主要实现的功能有:收银.报表.用户管理.商品管理.销售管理.进货退货管理.仓库管 理等等 ...

  4. 基于javaweb的房地产客户关系管理系统(java+jsp+javascript+servlet+mysql)

    基于javaweb的房地产客户关系管理系统(java+jsp+javascript+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  5. 基于javaweb的crm客户关系管理系统(java+springboot+echarts+freemarker+layui+mysql)

    基于javaweb的crm客户关系管理系统(java+springboot+echarts+freemarker+layui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 ecl ...

  6. 基于javaweb的学生课堂考勤管理系统(java+ssm+jsp+layui+mysql)

    基于javaweb的学生课堂考勤管理系统(java+ssm+jsp+layui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...

  7. 基于javaweb的水果生鲜商城系统(java+springboot+mybatis+vue+mysql)

    基于javaweb的水果生鲜商城系统(java+springboot+mybatis+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclip ...

  8. 基于javaweb的在线点餐系统(java+springboot+mybatis+vue+mysql+redis)

    基于javaweb的在线点餐系统(java+springboot+mybatis+vue+mysql+redis) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:e ...

  9. 基于JavaWeb的人才求职招聘网站设计

    文档+开题报告+外文翻译及原文+项目源码及数据库文件 [摘要] 随着科学技术的长足进步的经济条件的快速发展,人们的生活和工作都发生了很大的变化.随着时代进入21世纪,人才的重要性越来越受到相关企业的高 ...

  10. Java项目:高校学生社团活动管理系统(java+springboot+freemark+jpa+mysql)

    源码获取:博客首页 "资源" 里下载! 前台: 1.社团信息浏览搜索.社团活动风采.新闻信息浏览搜索. 2.学生注册登录. 3.登录后可自己申请创建社团,也可申请加入其他社团活动. ...

最新文章

  1. 身为java程序员你需要知道的网站(包含书籍,面试题,架构...)
  2. 20140904 atoi字符串转化为整数源码
  3. 【2012百度之星/资格赛】C: 易手机的套餐
  4. Qwtpolar的编译
  5. 解决IOS 原生项目加载html上下可滑动
  6. 2020 网易 面经
  7. html设置input透明背景,input背景透明的穿透问题_html/css_WEB-ITnose
  8. window 和虚拟机通过tftp实现文件传输
  9. px和毫米的换算_关于PX像素、PT点数、CM厘米、MM毫米之间的换算
  10. c语言基础总结代码练习(小白也看得懂) 模拟银行业务系统
  11. 可微分神经计算机DNC
  12. 离获得支付牌照还有多远?今日头条申请“字节支付”商标
  13. NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?(arvin-推荐--看评论)
  14. 在VFP中如何调用其它程序
  15. 【永磁同步电机转速环ADRC电流环ADRC双环无传感器控制】
  16. 生僻字用计算机来,二级office必备,生僻字也可以一体化注音
  17. 城市云脑,像大脑一样建设智慧城市,基于互联网云脑的新架构
  18. 计算机考研报名专业是哪个,考研报名毕业专业计算机怎么填?
  19. android 开机向导加载过程,Android开机向导构建流程
  20. 微信html字体颜色代码,微信小程序在text文本实现多种字体样式

热门文章

  1. 【已解决】更新到MacOS Catalina 10.15后,VMware Fusion 虚拟机黑屏以及无法添加辅助功能的问题
  2. DB2活动日志占用过大
  3. WORD如何使得公式居中,公式编号右对齐?
  4. anySdk的常规接入流程
  5. 用 MatLab 绘制立体心形
  6. MTK6737平台匹配设备节点的方法
  7. 跟我一起学python3(一)
  8. 连续没有空格英文或数字换行解决方案
  9. rviz点云渲染卡顿问题
  10. uni-app 页面中的背景图片高度和宽度自适应