——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SpringBoot人才管理招聘系统(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
使用说明
- 使用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 访问的是后台管理页面
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| return Result.error(CodeMsg.RESUME_WORK_EXPERIENCE_ERROR); } }else { if(workExperienceService.save(workExperience) == null){ return Result.error(CodeMsg.RESUME_WORK_EXPERIENCE_ERROR); } } session_user.setUpdateTime(new Date()); if(userService.save(session_user) == null){ return Result.error(CodeMsg.USER_UPDATE_TIME_ERROR); } User new_session_user = userService.find(session_user.getId()); request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, new_session_user); return Result.success(true); }
@RequestMapping(value="/save_project_experience",method=RequestMethod.POST) @ResponseBody public Result<Boolean> saveProjectExperienceForm(ProjectExperience projectExperience,HttpServletRequest request) { if(projectExperience == null){ return Result.error(CodeMsg.DATA_ERROR); } if(StringUtil.isEmpty(projectExperience.getName())){ return Result.error(CodeMsg.RESUME_PROJECT_EXPERIENCE_PROJECT_NAME_EMPTY); } if(StringUtil.isEmpty(projectExperience.getPosition())) { return Result.error(CodeMsg.RESUME_PROJECT_EXPERIENCE_POSITION_NAME_EMPTY); } if(projectExperience.getStartYear() == null || projectExperience.getStartMonth() == null || "开始年份".equals(projectExperience.getStartYear()) || "开始月份".equals(projectExperience.getStartMonth())) { return Result.error(CodeMsg.RESUME_PROJECT_EXPERIENCE_START_TIME_EMPTY); } if(projectExperience.getEndYear() == null || projectExperience.getEndMonth() == null || "结束年份".equals(projectExperience.getEndYear()) || "结束月份".equals(projectExperience.getEndMonth())) {
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| 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); }
}
@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();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| private Logger log = LoggerFactory.getLogger(CpachaController.class);
@Value("${yjq.sender.email.username}") private String username;
@Value("${yjq.sender.email.password}") private String password;
@Value("${yjq.sender.email.address}") private String senderAddress;
@RequestMapping(value = "/generate_cpacha", method = RequestMethod.GET) public void generateCpacha( @RequestParam(name = "vl", defaultValue = "4") Integer vcodeLength,//vcodeLength,验证码长度 @RequestParam(name = "fs", defaultValue = "21") Integer fontSize,//fontSize,验证码字体大小 @RequestParam(name = "w", defaultValue = "98") Integer width,//width,图片宽度 @RequestParam(name = "h", defaultValue = "33") Integer height,//height,图片高度 @RequestParam(name = "method") String method,//用来调用此方法的名称,以此名称为键,存入到session中 HttpServletRequest request, HttpServletResponse response) { CpachaUtil cpachaUtil = new CpachaUtil(vcodeLength, fontSize, width, height); String generatorVCode = cpachaUtil.generatorVCode(); request.getSession().setAttribute(method, generatorVCode); log.info("验证码成功生成,method=" + method + ",value=" + generatorVCode); try { ImageIO.write(cpachaUtil.generatorRotateVCodeImage(generatorVCode, true), "gif", response.getOutputStream());
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| 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); }
@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);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| 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); }
@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);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| return Result.success(filename); } } package com.yjq.lagou.controller.admin;
@RequestMapping("/admin/position") @Controller public class PositionController {
@Autowired private PositionService positionService;
@RequestMapping(value="/list",method=RequestMethod.GET) public String list(Model model){ return "admin/position/list"; }
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=081023491103200xn
https://javayms.pages.dev?id=081023491103200xn