源码获取:俺的博客首页 "资源" 里下载!

项目介绍

基于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; @Autowiredprivate 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)@ResponseBodypublic  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<Admin> 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)@ResponseBodypublic Result<Boolean> 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);}//判断有无接收到对应管理员的idif(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 {@Autowiredprivate UserService userService;@Autowiredprivate ResumeService resumeService;@Autowiredprivate WorkExperienceService workExperienceService;@Autowiredprivate WorkShowService workShowService;@Autowired private ProjectExperienceService projectExperienceService;@Autowiredprivate ExpectWorkService expectWorkService;@Autowiredprivate EducationBackgroundService educationBackgroundService;@Autowired private CompanyService companyService;@Autowiredprivate 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)@ResponseBodypublic  Map<String, Object>  userInfoList(HttpServletRequest request,Page page){Map<String, Object> ret = new HashMap<String, Object>();List<User> 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)@ResponseBodypublic Result<Boolean> 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<Resume> findResumeList = resumeService.findByCompanyId(findCompany.getId());for(Resume resume : findResumeList) {resumeService.delete(resume.getId());}//删除该用户认证的公司下所有职位List<Position> findPositionList = PositionService.findPositionByCompanyId(findCompany.getId());for(Position position : findPositionList) {PositionService.delete(position.getId());}//删除该用户所属公司companyService.delete(findCompany.getId());}}if(user.getType() == 0) {//如果用户身份是应聘者//删除该用户的所有简历List<Resume> 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 {@Autowiredprivate CompanyService companyService;@Autowiredprivate ResumeService resumeService;@Autowiredprivate 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)@ResponseBodypublic  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<Company> findCompanyList = companyService.findCompanyList(state, page.getOffset(), page.getRows());ret.put("rows", findCompanyList);ret.put("total", companyService.getCompanyTotal(state));}else {//如果state为空List<Company> 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)@ResponseBodypublic  Result<Boolean> 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)@ResponseBodypublic  Result<Boolean> delete(@RequestParam(name="id",required=true)Long id){try {List<Resume> findResumeList = resumeService.findByCompanyId(id);//先删除该公司所有的简历for(Resume resume : findResumeList) {resumeService.delete(resume.getId());}//再删除该公司所有职位List<Position> 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); }}

源码获取:俺的博客首页 "资源" 里下载!

Java项目:人才求职招聘管理系统(java+SpringBoot+FreeMarker+JPA+Mysql)相关推荐

  1. Java项目:CRM客户关系管理系统(java+Springboot+maven+mysql)

    源码获取:博客首页 "资源" 里下载! Springboot项目CRM客户关系管理系统: 系统实现了CRM客户关系系统的基本功能,主要有看板(当月参与的业务机会.当月转化情况.将要 ...

  2. Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统主要实现的功能有: 社区疫情流动人员管理系统,住户管理,出入管理,访客管理,体温录入,高风险警示等等. 二.项目运行 环 ...

  3. Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclisp ...

  4. Java项目:中小医院信息管理系统(java+Springboot+ssm+mysql+maven+jsp)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:实现了挂号收费,门诊管理,划价收 费,药房取药,体检管理,药房管理,系统维护等各个模块功能,非常不错. 二.项 ...

  5. Java项目:大学生校园帮管理系统(java+Springboot+SSM+layui+HTML+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Ecli ...

  6. Java项目:快递取件管理系统(java+SSM+JSP+jQuery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 车险理赔管理系统源码,分为两个角色,一个管理员,一个普通用户 主要功能说明: 管理员角色包含以下功能:管理员登录,个人资料修改 ...

  7. Java项目:前台+后台精品图书管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 登录注册,办理借阅.借阅记录,预约借阅,借出未还, 借阅逾期,学生管理,图书管理,书库分类查询搜索. 二.项目运行 ...

  8. Java项目:网上书城+后台管理系统(java+jsp+servlert+mysql+ajax)

    源码获取:博客首页 "资源" 里下载! 一.项目简述(附带IW文档) 功能: 前台: * 用户模块 * 分类模块 * 图书模块 * 购物车模块 * 订单模块 后台: * 管理员模块 ...

  9. Java项目:超市收银管理系统(java+SSM+HTML+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统主要实现的功能有:收银.报表.用户管理.商品管理.销售管理.进货退货管理.仓库管 理等等功能. 二.项目运行 环境配置: ...

  10. Java项目:IT设备固定资产管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 用户登录,设备管理,设备指派,贝附信息,信息公告, 信息维护,系统管理,图表统计等等功能. 二.项目运行 环境配置 ...

最新文章

  1. xilinx sg dma 注意事项
  2. a*算法的优缺点_轻松理解机器学习算法-朴素贝叶斯
  3. 对话院士成果转化基地-丰收节交易会·李喜贵:谋定精准对接
  4. 使用python画图表_利用Python绘制数据的瀑布图的教程
  5. c++申请内存空间_有没有想过:malloc分配的内存空间地址连续吗
  6. 《全栈营销之如何制作个人博客》之二:php环境安装及个人博客后台搭建 让你的博客跑起来...
  7. php生成txt文件_php 批量生成html,txt文件的实现代码
  8. 在cdh5.1.3中在mapreduce使用hbase
  9. Python3实现文件名排序
  10. template string
  11. 【shell】通过shell编写ping包及arp的监控并发送短信
  12. Python学习笔记
  13. 微信小程序源码:淘宝客外卖返利优惠券、头像 壁纸 朋友圈文案查询、古诗词技术文章查询
  14. 雷曼兄弟 算法_雷曼如何失去双腿
  15. macbook linux 双显卡,网友支招:苹果笔记本也能双显卡切换
  16. 窦唯与女儿【节选】揭秘男星与女儿之间的奇闻
  17. 2022中国汽车品牌魅力指数排名:广汽传祺、吉利、东风风行、荣威位居自主品牌前列 | 美通社头条...
  18. Unity批量刷草工具及优化
  19. 使用语音包合成你想说的话-文字转语音
  20. Shadow 腾讯插件化——深度解剖框架设计

热门文章

  1. 【计算机网络】思科实验(3):使用三层交换机实现跨VLAN间的通信
  2. Oracle的软解析(soft prase)和硬解析(hard prase)
  3. 迭代器 iter()函数与next()函数 for...in...循环的本质
  4. Entry name ‘META-INF/xxxxxxxx‘ collided 解决方法
  5. 天雁计算机TY-82MS-4说明书,怎样用天雁TY-82MS-4计算器做一次和二次函数,跪谢!...
  6. sun java system calendar 服务器拒绝服务_sun java system cale
  7. HTML期末作业-我的家乡网页作业
  8. pkusc2016滚粗记
  9. 多多情报通:拼多多推广账户金额可以通用吗?里面钱可以提出来吗?
  10. rasa_nlu踩坑经历