Java项目:125SpringBoot Vue的招聘信息管理系统
基于SpringBoot Vue的招聘信息管理系统角色:管理员、用户、企业管理员: 管理员登录系统后,可以对首页、个人中心、用户管理、企业管理、工作类型管理、企业招聘管理、投简信息管理、面试邀请管理、求职信息管理、社区留言、系统管理等功能企业:企业登录进入招聘信息管理系统,可以对首页、个人中心、企业招聘管理、投简信息管理、面试邀请管理等功能使用人群:正在做毕设的学生,或者需要项目实战练习的Java
作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
基于SpringBoot Vue的招聘信息管理系统
角色:管理员、用户、企业
管理员: 管理员登录系统后,可以对首页、个人中心、用户管理、企业管理、工作类型管理、企业招聘管理、投简信息管理、面试邀请管理、求职信息管理、社区留言、系统管理等功能
用户:主要包括首页、个人中心、跟拍预约管理、跟拍流程管理、成品信息管理、商品订单管理、评论信息管理、我的收藏管理等功能。企业:企业登录进入招聘信息管理系统,可以对首页、个人中心、企业招聘管理、投简信息管理、面试邀请管理等功能
使用人群:
正在做毕设的学生,或者需要项目实战练习的Java学习者
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;
技术栈
后端: SpringBoot+Mybaits
前端:Vue +ElementUI +Layui +HTML+CSS+JS
使用说明
项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,控制台提示运行成功后再去运行前端项目;
5. 管理员用户名密码:admin/admin
普通用户名密码:user/123456
运行截图
论文
前台界面
后管界面
相关代码
HomeCompanyController
package com.yjq.lagou.controller.home;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yjq.lagou.bean.CodeMsg;
import com.yjq.lagou.bean.Result;
import com.yjq.lagou.constant.SessionConstant;
import com.yjq.lagou.entity.common.Company;
import com.yjq.lagou.entity.common.User;
import com.yjq.lagou.service.common.CompanyService;
import com.yjq.lagou.service.common.PositionService;
import com.yjq.lagou.util.StringUtil;
/**
* 前端公司管理控制器
* @author 82320
*
*/
@RequestMapping("/home/company")
@Controller
public class HomeCompanyController {
@Autowired
private CompanyService companyService;
@Autowired
private PositionService positionService;
/**
* 公司详情页面
* @param model
* @return
*/
@RequestMapping(value="/detail",method=RequestMethod.GET)
public String companyDetail(Model model,@RequestParam(name="id",required=true)Long id){
Company findCompany = companyService.find(id);
model.addAttribute("Company", findCompany);
return "home/company/detail";
}
/**
* 我的公司页面
* @param model
* @return
*/
@RequestMapping(value="/my_company",method=RequestMethod.GET)
public String myCompany(Model model,HttpServletRequest request){
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company company = companyService.findByUserId(session_user.getId());
model.addAttribute("Company", company);
if(company != null && company.getTags() != null){
model.addAttribute("Tags", company.getTags().split(","));
}
if(company != null && company.getId() != null) {
model.addAttribute("PositionList", positionService.findPositionByCompanyIdAndState(company.getId(), "effective"));
}
return "home/company/my_company";
}
/**
* 申请公司认证
* @param id
* @return
*/
@RequestMapping(value="/apply_confirm",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> applyConfirm(@RequestParam(name="id",required=true)Long id)
{
Company findCompany = companyService.find(id);
findCompany.setState("待审核");
if(companyService.save(findCompany) == null) {
return Result.error(CodeMsg.COMPANY_APPLY_SAVE_ERROR);
}
return Result.success(true);
}
/**
* 保存公司名称、价值观和图片信息
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_detail",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyDetail(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//检测公司名称是否为空
if(StringUtil.isEmpty(company.getName())) {
return Result.error(CodeMsg.COMPANY_NAME_EMPTY);
}
//检测公司价值观是否为空
if(StringUtil.isEmpty(company.getValue())) {
return Result.error(CodeMsg.COMPANY_VALUE_EMPTY);
}
//检测公司名称长度
if(company.getName().length() > 30) {
return Result.error(CodeMsg.COMPANY_NAME_WORD_OVER);
}
//检测公司名称长度
if(company.getValue().length() > 50) {
return Result.error(CodeMsg.COMPANY_VALUE_WORD_OVER);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//进行添加操作
//检测公司名称是否重名
if(checkCompanyName(company,0l)){
return Result.error(CodeMsg.COMPANY_NAME_ALREADY_EXIST);
}
company.setUser(session_user);
if(companyService.save(company) == null){
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_SAVE_ERROR);
}
}else {
//进行修改操作
//检测公司名称是否重名
if(checkCompanyName(company,findCompany.getId())){
return Result.error(CodeMsg.COMPANY_NAME_ALREADY_EXIST);
}
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","user","tags","productPhoto","productTitle","productContent","introduction","locale","territory","scale","url","finance","founderName","founderPosition","founderPhoto");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_SAVE_ERROR);
}
}
return Result.success(true);
}
/**
* 保存公司标签
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_tags",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyTags(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//检测公司标签长度
if(company.getTags().length() > 30) {
return Result.error(CodeMsg.COMPANY_TAGS_WORD_OVER);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//先让用户填写名称和价值观基本信息
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_PRIORITY);
}else {
//进行修改操作
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","user","name","value","photo","productPhoto","productTitle","productContent","introduction","locale","territory","scale","url","finance","founderName","founderPosition","founderPhoto");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_TAGS_SAVE_ERROR);
}
}
return Result.success(true);
}
/**
* 保存公司产品
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_product",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyProduct(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//检测公司产品标题长度
if(company.getProductTitle().length() > 11) {
return Result.error(CodeMsg.COMPANY_PRODUCT_NAME_WORD_OVER);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//先让用户填写名称和价值观基本信息
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_PRIORITY);
}else {
//进行修改操作
if("".equals(company.getProductTitle())) {
company.setProductTitle(null);
}
if("".equals(company.getProductContent())) {
company.setProductContent(null);
}
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","tags","user","name","value","photo","introduction","locale","territory","scale","url","finance","founderName","founderPosition","founderPhoto");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_PRODUCT_SAVE_ERROR);
}
}
return Result.success(true);
}
/**
* 保存公司介绍
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_introduction",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyIntroduction(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//先让用户填写名称和价值观基本信息
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_PRIORITY);
}else {
//进行修改操作
if("".equals(company.getIntroduction())){
company.setIntroduction(null);
}
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","tags","user","name","value","photo","productPhoto","productTitle","productContent","locale","territory","scale","url","finance","founderName","founderPosition","founderPhoto");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_INTRODUCTION_SAVE_ERROR);
}
}
return Result.success(true);
}
/**
* 保存公司地点、领域、规模和网页信息
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_basic",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyBasic(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//检测公司地点是否为空
if(StringUtil.isEmpty(company.getLocale())) {
return Result.error(CodeMsg.COMPANY_LOCALE_EMPTY);
}
//检测公司领域是否为空
if(StringUtil.isEmpty(company.getTerritory())) {
return Result.error(CodeMsg.COMPANY_TERRITORY_EMPTY);
}
//检测公司规模是否为空
if(StringUtil.isEmpty(company.getScale())) {
return Result.error(CodeMsg.COMPANY_SCALE_EMPTY);
}
//检测公司网址是否为空
if(StringUtil.isEmpty(company.getUrl())) {
return Result.error(CodeMsg.COMPANY_URL_EMPTY);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//先让用户填写名称和价值观基本信息
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_PRIORITY);
}else {
//进行修改操作
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","user","name","tags","value","photo","productPhoto","productTitle","productContent","introduction","finance","founderName","founderPosition","founderPhoto");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_BASIC_SAVE_ERROR);
}
}
return Result.success(true);
}
/**
* 保存公司融资阶段
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_finance",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyFinance(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//先让用户填写名称和价值观基本信息
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_PRIORITY);
}else {
//进行修改操作
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","user","name","tags","value","photo","productPhoto","productTitle","productContent","introduction","locale","territory","scale","url","founderName","founderPosition","founderPhoto");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_FINANCE_SAVE_ERROR);
}
}
return Result.success(true);
}
/**
* 保存公司创始人信息
* @param company
* @param request
* @return
*/
@RequestMapping(value="/save_company_founder",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> saveCompanyFounder(Company company,HttpServletRequest request)
{
if(company == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//检测公司创始人姓名是否为空
if(StringUtil.isEmpty(company.getFounderName())){
return Result.error(CodeMsg.COMPANY_FOUNDER_NAME_EMPTY);
}
//检测公司创始人职位是否为空
if(StringUtil.isEmpty(company.getFounderPosition())){
return Result.error(CodeMsg.COMPANY_FOUNDER_POSITION_EMPTY);
}
if(company.getFounderName().length() > 10){
return Result.error(CodeMsg.COMPANY_FOUNDER_NAME_WORD_OVER);
}
if(company.getFounderPosition().length() > 15){
return Result.error(CodeMsg.COMPANY_FOUNDER_POSITION_WORD_OVER);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompany = companyService.findByUserId(session_user.getId());
if(findCompany == null) {
//先让用户填写名称和价值观基本信息
return Result.error(CodeMsg.COMPANY_NAME_AND_VALUE_PRIORITY);
}else {
//进行修改操作
company.setState("待审核");
BeanUtils.copyProperties(company, findCompany, "id","createTime","updateTime","user","name","tags","value","photo","productPhoto","productTitle","productContent","introduction","locale","territory","scale","url","finance");
if(companyService.save(findCompany) == null){
return Result.error(CodeMsg.COMPANY_FOUNDER_SAVE_ERROR);
}
}
return Result.success(true);
}
//检查有没有重复的companyName
public boolean checkCompanyName(Company company,Long id)
{
Company findByCompanyName = companyService.findByCompanyName(company.getName());
if(findByCompanyName == null)
return false; //没有重复
if(findByCompanyName.getId().longValue() == id.longValue())
return false; //没有重复
return true; //有重复
}
}
HomePositionController
package com.yjq.lagou.controller.home;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yjq.lagou.bean.CodeMsg;
import com.yjq.lagou.bean.Page;
import com.yjq.lagou.bean.Result;
import com.yjq.lagou.constant.SessionConstant;
import com.yjq.lagou.entity.common.Company;
import com.yjq.lagou.entity.common.Position;
import com.yjq.lagou.entity.common.User;
import com.yjq.lagou.entity.home.Resume;
import com.yjq.lagou.service.common.CompanyService;
import com.yjq.lagou.service.common.PositionService;
import com.yjq.lagou.service.home.ResumeService;
import com.yjq.lagou.util.StringUtil;
import com.yjq.lagou.util.ValidateEntityUtil;
/**
* 前端职位管理控制器
* @author 82320
*
*/
@RequestMapping("/home/position")
@Controller
public class HomePositionController {
@Autowired
private PositionService positionService;
@Autowired
private CompanyService companyService;
@Autowired
private ResumeService resumeService;
/**
* 职位详情页面
* @param model
* @return
*/
@RequestMapping(value="/detail",method=RequestMethod.GET)
public String positionDetail(Model model,@RequestParam(name="id",required=true)Long id){
Position position = positionService.findById(id);
model.addAttribute("Position", position);
model.addAttribute("Company", companyService.find(position.getCompany().getId()));
return "home/position/detail";
}
/**
* 职位列表页面
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public String positionList(Model model,Page page,String search_value){
if(StringUtil.isEmpty(search_value)) {
//如果search_value为空
//分页获取职位列表信息
Page p = new Page();
p.setTotalCount(positionService.getPositionTotal("effective"));
p.setRows(20);//职位列表每页20个
model.addAttribute("totalPage",p.getTotalPage()); //总页数
model.addAttribute("currentPage",page.getPage()); //当前页
List<Position> findPositionList = positionService.findPositionList("effective", page.getOffset(), 20);
model.addAttribute("PositionList", findPositionList);
model.addAttribute("PositionTotal", positionService.getPositionTotal("effective"));
}else {
//如果search_value不为空
//分页获取职位列表信息
Page p = new Page();
p.setTotalCount(positionService.getPositionTotalBySearchValue("effective", search_value));
p.setRows(20);//职位列表每页20个
model.addAttribute("totalPage",p.getTotalPage()); //总页数
model.addAttribute("currentPage",page.getPage()); //当前页
List<Position> findPositionList = positionService.findPositionListBySearchValue("effective", search_value, page.getOffset(), 20);
model.addAttribute("PositionList", findPositionList);
model.addAttribute("PositionTotal", positionService.getPositionTotalBySearchValue("effective", search_value));
model.addAttribute("SearchValue", search_value);
}
model.addAttribute("resumeTotal", resumeService.total());
return "home/position/list";
}
/**
* 招聘者发布的职位页面
* @param model
* @return
*/
@RequestMapping(value="/my_publish_position",method=RequestMethod.GET)
public String myPosition(Model model,String positionState,HttpServletRequest request){
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompanyByUserId = companyService.findByUserId(session_user.getId());
if(!StringUtil.isEmpty(positionState)) {
//如果positionState不为空
List<Position> findPositionByCompanyIdAndState = positionService.findPositionByCompanyIdAndState(findCompanyByUserId.getId(), positionState);
model.addAttribute("PositionList",findPositionByCompanyIdAndState);
model.addAttribute("positionTotal", positionService.getPositionTotalByState(findCompanyByUserId.getId(), positionState));
model.addAttribute("positionState", positionState);
}else {
//如果positionState为空
List<Position> findPositionByCompanyIdAndState = positionService.findPositionByCompanyIdAndState(findCompanyByUserId.getId(), "effective");
model.addAttribute("PositionList",findPositionByCompanyIdAndState);
model.addAttribute("positionTotal", positionService.getPositionTotalByState(findCompanyByUserId.getId(), "effective"));
}
return "home/position/my_publish_position";
}
/**
* 保存职位信息
* @param position
* @param request
* @return
*/
@RequestMapping(value="/save",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> savePosition(Position position,HttpServletRequest request)
{
if(position == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//统一表单验证
CodeMsg validate = ValidateEntityUtil.validate(position);
if(validate.getCode() != CodeMsg.SUCCESS.getCode()){
return Result.error(validate);
}
if(position.getMinMoney() > position.getMaxMoney()) {
return Result.error(CodeMsg.POSITION_MONEY_NOT_CORRECT);
}
User session_user = (User) request.getSession().getAttribute(SessionConstant.SESSION_USER_LOGIN_KEY);
Company findCompanyByUserId = companyService.findByUserId(session_user.getId());
position.setCompany(findCompanyByUserId);
CodeMsg url_way_one = new CodeMsg(1,""); //前往待处理职位页面
CodeMsg url_way_two = new CodeMsg(2,""); //前往已下线职位页面
//接下来进行添加或者更新数据库的操作
if(position.getId() != null) {
//编辑
Position findById = positionService.findById(position.getId());
if("effective".equals(findById.getState()) || "wait".equals(findById.getState())) {
position.setState("wait");
}else if("out".equals(findById.getState())) {
position.setState("out");
}
BeanUtils.copyProperties(position, findById, "id","createTime","updateTime","number");
if(positionService.save(findById) == null) {
return Result.error(CodeMsg.POSITION_SAVE_ERROR);
}
if("effective".equals(findById.getState()) || "wait".equals(findById.getState())) {
return Result.error(url_way_one); //前往待处理职位页面
}else{
return Result.error(url_way_two); //前往已下线职位页面
}
}else {
//添加
position.setState("wait");
if(positionService.save(position) == null) {
return Result.error(CodeMsg.POSITION_SAVE_ERROR);
}
return Result.error(url_way_one); //前往待处理职位页面
}
}
/**
* 删除职位信息
* @param id
* @param request
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> deletePosition(@RequestParam(name="id",required=true)Long id)
{
try {
List<Resume> findByPositionId = resumeService.findByPositionId(id);
//删除该职位下所有简历
for(Resume resume : findByPositionId)
{
resumeService.delete(resume.getId());
}
positionService.delete(id);
}catch(Exception e) {
e.printStackTrace();
return Result.error(CodeMsg.POSITION_SAVE_ERROR);
}
return Result.success(true);
}
/**
* 更改职位状态信息为下线
* @param id
* @param request
* @return
*/
@RequestMapping(value="/changeStateToOut",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> changeStateToOut(@RequestParam(name="id",required=true)Long id)
{
Position findById = positionService.findById(id);
findById.setState("out");
if(positionService.save(findById) == null){
return Result.error(CodeMsg.POSITION_CHANGE_STATE_TO_OUT_ERROR);
}
return Result.success(true);
}
/**
* 更改职位状态信息为上线
* @param id
* @param request
* @return
*/
@RequestMapping(value="/changeStateToWait",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> changeStateToWait(@RequestParam(name="id",required=true)Long id)
{
Position findById = positionService.findById(id);
findById.setState("wait");
if(positionService.save(findById) == null){
return Result.error(CodeMsg.POSITION_CHANGE_STATE_TO_WAIT_ERROR);
}
return Result.success(true);
}
}
如果也想学习本系统,下面领取。关注并回复:125springboot
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)